LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (http://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   How do I boot from a USB thumbdrive without BIOS support? (http://www.linuxquestions.org/questions/linux-hardware-18/how-do-i-boot-from-a-usb-thumbdrive-without-bios-support-396584/)

ninjabob7 12-26-2005 12:05 PM

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.

rjwilmsi 12-27-2005 08:04 AM

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.

ninjabob7 12-27-2005 05:45 PM

Nope. I've been trying to get GRUB to boot a floppy image for a while with no luck. On another computer (with a floppy drive) neither boot disk works.

ninjabob7 01-08-2006 11:32 AM

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.

brianbdl 01-08-2006 10:48 PM

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!


All times are GMT -5. The time now is 01:51 AM.