How-to: Installing Ubuntu Linux on a usb pendrive — page 2
3. Installing Ubuntu on the USB stick
3.1. Mounting Ubuntu liveCd image
In the first place we need to mount our ubuntu iso. Depending if you have the .iso file or the CD, there is 2 different ways of mounting it.
3.1.1. Mounting from the CD
People using Ubuntu or any other user-friendly distro, might just have to insert the cd and it will be mounted automatically. If this is not the case:
sudo mount /media/cdrom
should mount it.
3.1.2. Mounting from an .iso image file
We will need to create a temporary directory, let say /tmp/ubuntu-livecd and then mount our iso (I will be using a feisty fawn iso).
mkdir /tmp/ubuntu-livecd
sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd
Once the cd image is ready, it is time to mount the newly created usb bar partitions:
3.2. Mounting the usb bar partitions
Same here, you might be able to get both your partition by simply replugging the usb pendrive, partition might appears as: /media/liveusb and /media/casper-rw. If this is not the case, then you will need to mount them manually:
mkdir /tmp/liveusb
sudo mount /dev/sdb1 /tmp/liveusb
All the partitions we need are now mounted, let’s copy the files.
3.3. Copying the files to the usb bar
Let positionned yourself on the CD image directory (in my case: /tmp/ubuntu-livecd , but it might be /media/cdrom , and copy at the root of your usb first partition:
- the directories: ‘casper’, ‘disctree’, ‘dists’, ‘install’, ‘pics’, ‘pool’, ‘preseed’, ‘.disk’
- The content of directory ‘isolinux’
- and files ‘md5sum.txt’, ‘README.diskdefines’, ‘ubuntu.ico’
- as well as files: ‘casper/vmlinuz’, ‘casper/initrd.gz’ and ‘install/mt86plus’
cd /tmp/ubuntu-livecd
sudo cp -rf casper disctree dists install pics pool preseed \
.disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico \
casper/vmlinuz casper/initrd.gz install/mt86plus \
/tmp/liveusb/
It might complain about symbolic links not being able to create, you can ignore this.
Now let’s go to the first partition of your usb disk and rename isolinux.cfg to syslinux.cfg:
cd /tmp/liveusb
sudo mv isolinux.cfg syslinux.cfg
change /tmp/liveusb according to your settings
Edit syslinux.cfg so it looks like:
DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL persistent
menu label ^Start Ubuntu in persistent mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL xforcevesa
menu label Start Ubuntu in safe ^graphics mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL check
menu label ^Check CD for defects
kernel vmlinuz
append boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL memtest
menu label ^Memory test
kernel mt86plus
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0x80
append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt
Woof, finally we have our usb disk almost usuable. We have a last thing to do: make the usb bootable.
3.4. Making the usb bar bootable.
in order to make our usb disk bootable, we need to install syslinux and mtools:
sudo apt-get install syslinux mtools
And finally unmount /dev/sdb1 and make it bootable:
cd
sudo umount /tmp/liveusb
sudo syslinux -f /dev/sdb1
Here we are 😀 , reboot, set your BIOS to boot from the usb bar and enjoy Ubuntu linux from a pendrive
4. Troubleshooting
If you are having trouble booting on the usb bar, this might be due to your MBR being corrupted. In order to fix it up, you can use lilo (I installed lilo on my box only for thid purpose).
lilo -M /dev/sdb
will fix the MBR on device /dev/sdb