[syslinux] Booting to USB Pen Drive

Franz Henning franz at concertplanet.com
Thu Mar 11 13:53:34 PST 2004

-----Original Message-----
From: syslinux-bounces at zytor.com [mailto:syslinux-bounces at zytor.com] On
Behalf Of Franz Henning
Sent: Thursday, March 11, 2004 2:18 PM
To: 'James Courtier-Dutton'
Cc: syslinux at zytor.com
Subject: RE: [syslinux] Booting to USB Pen Drive

Franz Henning wrote:
> I am trying to use Syslinux as my boot loader for a stripped down
> version of Knoppix (DSL) on a USB Pen Drive. I followed the
> verbatim on
> http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/knoppix-usb.html, but
> no luck. The system will start to boot to the USB, but gives a Kernel
> Panic. I will give all information that shows on the screen.
> After I select Boot from USB (which on my system works for windows
> boot keys)
> SPB2: dx=0080  intl3,8:cxE7E0 dx=0702 mbr=8001 0100 0604 F2FF 3200
> CEE7 0300 int13,2:cx0013 dx=0180
> SYSLINUX 2.06 2003-08-22 (then some copyright info flashes up here
> quickly)
> Then the screen clears and I get the KNOPPIX Splash screen.
> F2 for Help
> boot: Loading vmlinuz......
> Loading miniroot.gz.......
> Screen clears again
> There is a Penguin picture in the top left corner
> Kernel Panic: VFS: Unable to mount root fs on 01:01
> I have never been past this point.
> This is the ls -lR of my usbkey. All usb modules are in the
> I have tried this with 2 USB keys a 1.1 and a 2.0, both exhibit the
> problem on multiple systems, which all are Dell Computers.
> total 1576
> dr-xr-xr-x    2 root     root         4096 Mar 11 05:29 KNOPPIX
> -r-xr-xr-x    1 root     root           54 Mar 11 05:29 autorun.bat
> -r--r--r--    1 root     root           47 Mar 11 05:29 autorun.inf
> -rwxr--r--    1 root     root          107 Mar 11 05:30 boot.msg
> -rwxr--r--    1 root     root         1791 Mar 11 05:30 f2
> -rwxr--r--    1 root     root          256 Mar 11 05:30 german.kbd
> -r--r--r--    1 root     root          343 Mar 11 05:29 index.html
> -rw-r--r--    1 root     root         3262 Mar 11 05:30 knoppix.ico
> -r-xr--r--    1 root     root         7836 Mar 11 05:30 ldlinux.sys
> -rwxr--r--    1 root     root        21429 Mar 11 05:30 logo.16
> -rwxr--r--    1 root     root       613227 Mar 11 05:30 miniroot.gz
> -rwxr--r--    1 root     root         2424 Mar 11 05:30 syslinux.cfg
> -rwxr--r--    1 root     root       921593 Mar 11 05:30 vmlinuz
> /home/franz/usbkeyboot/KNOPPIX:
> total 49040
> -r--r--r--    1 root     root     48673005 Mar 11 05:29 KNOPPIX
> -r--r--r--    1 root     root         2048 Mar 11 05:29 boot.cat
> -r--r--r--    1 root     root      1474560 Mar 11 05:29 boot.img
> -r-xr-xr-x    1 root     root           27 Mar 11 05:29 mkfloppy.bat 
> Any Help would be GREATLY appreciated.
> Thanks you,
> Franz Henning

In linux most USB devices appear as sdaX where X is the partition
Are you sure that when linux comes to mount the USB root partition, that

the kernel has all the correct kernel modules loaded so that it can 
access the USB.
Up until that point, all access to the USB device has been done via the 
BIOS disk read routines. The "mount" is done using the linux kernel 
drivers, so for the mount to work, the linux kernel drivers have to be 
working. Either make an initrd with them on, and force them to load, or 
compile them into the kernel.


I think you make an excellent point regarding the support for the USB.
The OS level support for usb in this case is loaded as modules by the
linuxrc.gz file which is contained in the miniroot.gz file. Linuxrc is
the KNOPPIX General startup script. Also contained in the miniroot.gz
file is a modules/usb directory where I have copied all of my USB

root at akebono miniroot # ls -l modules/usb/
total 268
-rw-r--r--    1 root     root        19984 Mar 11 08:06 ehci-hcd.o
-rw-r--r--    1 root     root        33824 Mar 11 08:06 uhci.o
-rw-r--r--    1 root     root        24860 Mar 11 08:06 usb-ohci.o
-rw-r--r--    1 root     root        69971 Mar 11 08:06 usb-storage.o
-rw-r--r--    1 root     root        28684 Mar 11 08:06 usb-uhci.o
-rw-r--r--    1 root     root        87035 Mar 11 08:06 usbcore.o

However, in my troubleshooting that I have done so far, I deleted all of
the USB modules and restarted with the exact same results I originally
described. So that is why I say you make an excellent point. Clearly the
OS is not loading support for USB. I just don't understand why.

Here is a section of my linuxrc where I attempt to install USB support.
# load usb-modules first (so that memory-stick becomes /dev/sda1)
# uncomment for USB 2.0 support (experimental)
insmod -f /modules/usb/ehci-hcd.o
insmod -f /modules/usb/usbcore.o
#insmod -f /modules/usb/uhci.o
insmod -f /modules/usb/usb-uhci.o
insmod -f /modules/usb/uhci.o
insmod -f /modules/usb/usb-ohci.o
insmod -f /modules/usb/usb-storage.o
# need to sleep because it takes some time to register things
ash -c "sleep 4"

I tried increasing my sleep time to give more time for these modules to
load, but the symptoms do not change.

Thank you for your input.


I have much more pertinent information now. This time at the boot:
prompt I typed expert. Now I get verbose screen output with the same
error, but a possible cause. The last few lines of output are...

Freeing initrd memory: 599k freed
EXT2-fs warning: checktime reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
FAT: bogus logical sector size 65280
Kernel panic: VFS: Unable to mount root fs on 01:01

As per the instructions the USB Key was formatted with mkfs.vfat. So
perhaps the panic is because it is mounting my root file system as ext2
rather than vfat. Is there a way to specify that the bootloader use vfat
to mount the Filesystem??

I created the partition on the USB key with cfdisk, I chose type 06
which is FAT16, set the bootable flag then wrote the changes. Made the
filesystem with mkfs.vfat, then mounted it and copied over the files.
Unmounted the key and then ran syslinux /dev/sda1 ...

More information about the Syslinux mailing list