[syslinux] Booting to USB Pen Drive
franz at concertplanet.com
Thu Mar 11 13:53:34 PST 2004
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
> Then the screen clears and I get the KNOPPIX Splash screen.
> KNOPPIX V3,3
> 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
> 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/
-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