The BIOS on my laptop does not support booting from USB. I would like to be able to have my Windows XP on a partition on a USB disk drive and be able to run from the USB disk using perhaps a CD or floppy to bootstrap the system. My questions: 1). Is there a way to use syslinux and friends to do this? 2). If not, is there some other boot loader that may work? 3). Is there any hope at all? Rich
On 4/12/06, Rich Mahn <rich at lat.com> wrote:> The BIOS on my laptop does not support booting from USB. > I would like to be able to have my Windows XP on a partition > on a USB disk drive and be able to run from the USB disk using > perhaps a CD or floppy to bootstrap the system. > My questions: > 1). Is there a way to use syslinux and friends to do this? > 2). If not, is there some other boot loader that may work? > 3). Is there any hope at all? > > Rich > > > > > _______________________________________________ > SYSLINUX mailing list > Submissions to SYSLINUX at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux > Please do not send private replies to mailing list traffic. > >1. Syslinux relies on the BIOS to handle actually accessing the USB/etc. I can't imagine any way in which it could manage to do what the BIOS can't in this particular respect. 2. I'm pretty sure they all have the same problem. However, some like Lilo us a lot of the linux stuff from the system you actually install on. I don't know what would happen if you tried to trick it into working somehow, but, who knows, maybe it's worth a go? 3. Well, there's another more indirect way that some do, especially with live boot discs. They load up a kernel + initrd with USB support and then proceed to mount USB drives looking for the rest of their data. Almost all live distros that support booting from a USB drive at all do it this way I think. I know all the ones I've used do. It's pretty tough to do this with a floppy. You usually have to split it up with the kernel on one disc and the initrd on another. I never studied how this was done since back then I didn't use linux much and today I can't even retain a functional floppy drive more than a few weeks before it tears up. HOWEVER, I suspect the way this is done is it first loads an absolutely minimal ramdrive with nothing extra but support for /dev/fd0 and a simple init script which loads up a real ramdrive from the next floppy. If you use a CD this should be easy to do via the live distro method since space isn't an issue. However, if you're going to use a CD, what you should probably do is set it up so that it only uses the USB drive for things that change who's changes you need to retain across reboots. No need to throw the entire filesystem on there after all.
Rich Mahn wrote:> The BIOS on my laptop does not support booting from USB. > I would like to be able to have my Windows XP on a partition > on a USB disk drive and be able to run from the USB disk using > perhaps a CD or floppy to bootstrap the system. > My questions: > 1). Is there a way to use syslinux and friends to do this? > 2). If not, is there some other boot loader that may work? > 3). Is there any hope at all? > > RichI have also wanted to do this. Googling "usb boot floppy", I see lots of disks that will boot into some flavor of MS-DOS and load USB drivers, giving you drive letter access to some USB devices and filesystems, but this won't be of any help to actually boot. I wonder if some COMBOOT program could be made, executable from SYSLINUX (or DOS directly), that would search for all USB devices and then chain-boot to them. I know that chain-booting from a floppy has been done for at least CD-ROM drives, for old BIOS's that do not understand how to boot from CD: http://btmgr.webframe.org/ I also rolled something together myself, for chain-booting from a floppy (or CD) to a network card. It uses SYSLINUX to boot the floppy and detect the PCI card, then loads Etherboot to do a PXE boot over the network: ftp://ftp.scyld.com/private/jlehan/pxe-on-a-disk.html However, I know of nothing that will do this for USB-based devices. It would be a great thing if some guru could write a COMBOOT program to detect USB devices. Then, it could be plugged into the above boot mechanisms, and we'd all be able to boot USB from any computer whose BIOS was capable of booting from a floppy (e.g. all of them)! This would be tricky, though: the program would have to scan the PCI bus for USB controllers, support at least 3 different controller *HCI standards, then dig through the USB hierarchy, discovering hubs as needed, in order to reach USB devices behind hubs. Once the device has been found, then it still needs to be commanded, and there's USB floppies, USB hard drives, USB ZIP drives, and various flavors of USB memory sticks and such! By the time you had USB booting all sorted out, you would have written about half of an operating system. And then, someone would demand you also support FireWire :) So, anybody want to take on the project of getting USB booting working...? Josh