How-to: Installing Ubuntu Linux on a usb pendrive
This tutorial will show how-to install Ubuntu on a usb stick. Even though this tutorial uses Ubuntu as its base distribution, you could virtually use any type of Linux liveCD distribution.Being able to run Linux out of a usb bar is a great way to enjoy the live CD experience (being able to use Linux on any computer you might get by) and the big advantage of being easier to carry around than a CD.
1. Requirements
In order to reproduce this tutorial, you will need a few items such as:- a ubuntu liveCD
- a usb bar of at least 1G
- a running Linux operating system
2. Setting up the USB disk
2.1. Finding the device
In the first place, you need to plug your usb drive and check under which device it is associated. To find out the device, run:Once you found your device, you are going to create the partitions.
2.2. Making the partitions
Make sure every of your already mounted partition are unmounted:At fdisk prompt type d x where x is the partition number (you can simply type d if you only have one partition), then:
- n to create a new partition
- p to make it primary
- 1 so it is the first primary partition
- Accept the default or type 1 to start from the first cylinder
- +750M to make it 750 Meg big
- a to toggle the partition active for boot
- 1 to choose the 1 partition
- t to change the partition type
- 6 to set it to FAT16
- n to create yet again a new partition
- p to make it primary
- 2 to be the second partition
- Accept the default by typing Enter
- Accept the default to make your partition as big as possible
- Finally, type w to write the change to your usb pendrive
2.3. Formatting the partitions
The first partition is going to be formated as a FAT filesystem of size 16 and we are going to attribute it the label "liveusb".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: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).$ sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd
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:$ sudo mount /dev/sdb1 /tmp/liveusb
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'
$ 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/
Now let's go to the first partition of your usb disk and rename isolinux.cfg to syslinux.cfg:
$ sudo mv isolinux.cfg syslinux.cfg
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.txtWoof, 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 umount /tmp/liveusb
$ sudo syslinux -f /dev/sdb1