[syslinux] How to make a bootable USB flash drive manually?

Paul Bolle pebolle at tiscali.nl
Fri Jan 28 21:33:40 PST 2011


On Fri, 2011-01-28 at 22:29 -0500, Gene Cumm wrote:
> On Fri, Jan 28, 2011 at 20:33, Martin T <m4rtntns at gmail.com> wrote:
> > I would like to boot Ubuntu 8.04 i386 from my USB flash drive. I was
> > guided by this tutorial:
> > http://syslinux.zytor.com/wiki/index.php/HowTos#How_to_Create_a_Bootable_USB:_For_Linux
> 
> 2) Any reason to not use the current release (10.10) or current LTS
> release (10.04.1)?

I recently did just that: make a bootable USB flash drive from Ubuntu's
current LTS release (10.04.1). The steps to do that are basically:
0) make a USB flash drive that boots syslinux (ie, that loads
ldlinux.sys, wich is installed in the root of a FAT filesystem
on /dev/sdb1). Martin described how he did that in full detail;
1) loop mount ubuntu-10.04.1-desktop-i386.iso somewhere;
2) mount /dev/sdb1 somewhere else;
3) copy, recursively, all files found in that iso image to the FAT
filesystem on /dev/sdb1;
4) rename $USB_DRIVE_MOUNT_PATH/isolinux to
$USB_DRIVE_MOUNT_PATH/syslinux;
5) rename $USB_DRIVE_MOUNT_PATH/syslinux/isolinux.cfg to
$USB_DRIVE_MOUNT_PATH/syslinux/syslinux.cfg;
6) unmount the iso image and /dev/sdb1.

Now the USB flash drive should boot Ubuntu Live. (qemu can boot that USB
flash drive too, which helps a lot with quickly discovering the mistakes
one makes.)

The main problem I ran into was that Ubuntu Live uses a Syslinux 3.63
derivative and I used Syslinux 4.0x (as shipped by a current Fedora) to
make the USB flash drive bootable. Solution: replace
$USB_DRIVE_MOUNT_PATH/syslinux/vesamenu.c32 (a 32-bit COMBOOT file) with
a recent copy of vesamenu.c32 (ie, a COM32R file).


Paul Bolle




More information about the Syslinux mailing list