How do I boot from a USB thumbdrive without BIOS support?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
How do I boot from a USB thumbdrive without BIOS support?
I just got a 512MB USB Flash Drive for Christmas, and I want to put Puppy Linux on it. Unfortunately, my BIOS doesn't support booting from USB, and it's the latest version for my (old) computer. I have Windows 2000, Mandriva 2006, and several liveCD's. The computer is a Dell Precision 410, BIOS revision A14. It has one SCSI drive (with Windows) and one IDE drive (with Mandriva), one SCSI CD-ROM, and one IDE CD-RW. The drive is a Kingston DataTraveler 2.0. I used the CD (from a different computer) to install Puppy to the USB drive. I have GRUB on the IDE hard drive, and it does not show the USB drive as (hd2,0). I also tried starting GRUB from the Windows bootloader, and it still didn't work. Also, the computer has no floppy drive, which could be a minor issue.
Edit: Oh, yeah, two more things: the BIOS doesn't seem to be Phoenix, Award, or any other brand. It just says Dell Precision 410 revision A14. Also, I don't think any of my other computers can boot from USB, so I have no way to test the drive on another computer.
If I remember correctly the Puppy Linux site has a floppy disk image for download to make a boot floppy which will search for Puppy Linux on CD, hard drive or USB pen. Perhaps if you don't have a floppy disk, you can set GRUB to boot the disk image from your hard drive, and see whether that then picks up the USB stick.
Okay, I just got GRUB to boot from a floppy image. I used a floppy image of Smart Boot Manager, which picked up my three hard drive partitions and one of my cdrom drives (I wonder which one it is...), as well as two floppy drives which I don't have, but not the usb drive. Now that I can boot from floppy, does anyone know of any other tools that might let me boot from usb? I'm going to try wkpup11c.img and boot2pup.img again on this computer, but I don't think they will work.
I'm not familar with puppy linux but I played around with something similar a while back. I had an old machine with only a cdrom drive and external USB hard disk connected (no internal HD's). I had installed Suse 9.3 on the external USB disk and wanted the machine to run off that but the bios did not support booting from USB. In principle, here's what I had to do:
1) create a bootable CD containing the suse 9.3 kernel and a customized initrd. There's plenty of docs available on using initrd's to boot so look around on the web. This CD will boot the kernel and the initrd will switch the root filesystem to the usb disk/thumbdrive.
2) the customized initrd needs to do the following:
- load the appropriate scsi disk and usb mass storage kernel modules so you can access the external usb disk/thumbdrive. I can't remember exactly which ones but I think it included usb_storage, ohci_hcd, ehci_hcd, scsi_mod, etc...
- load any other kernel modules that may be needed, for example reiserfs
- mount the external usb disk/thumbdrive under a directory in the initial ramdrive filesystem. This directory is going to be the new root filesystem after the machine is fully booted.
- perform a 'pivot_root' to switch to the new root filesystem. Check the man page for more info.
- exec the 'init' process to continue and finish the rest of the boot process
3) once fully booted, the machine will run exclusively from the external usb disk/thumbdrive. The cdrom is not required after that.
There are quite a few hurdles involved but it's a great learning experience if you're interested in understanding in detail how a linux machine boots. Good luck!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.