Author Topic: [RESOLVED] Trouble booting VL from external USB drive  (Read 3424 times)


  • Member
  • *
  • Posts: 9
[RESOLVED] Trouble booting VL from external USB drive
« on: October 26, 2007, 07:07:44 pm »
I have installed VL 5.9 Beta2 on my external usb HD. I also have Ubuntu installed on the external drive and I have a /boot(sda1) partition. I initially installed VL entirely into the /sda6 partition, including / and /boot. I then copied the contents of /sda6/boot to /sda1/VectorLinuxBoot. My menu.lst entry for VectorLinux is:

title           VectorLinux, kernel
root            (hd1,0)
kernel          /VectorLinuxBoot/vmlinuz- root=/dev/sda6 splash
initrd          /VectorLinuxBoot/initrd

When I boot up the computer and select VectorLinux it starts to boot up but ends up looking like it couldnĀ“t find the external drive.
It says it can t find /sda6, it gives a list of partitions that it has found and they are all on my internal hd.
Is usb support included in the vmlinuz- kernal? Are there some extra modules that I need to include? How would I go about including them?

Thanks for any help you can give me.
« Last Edit: November 12, 2007, 02:37:41 pm by JohnB316 »


  • Member
  • *
  • Posts: 9
Re: Trouble booting VL from external USB drive
« Reply #1 on: November 11, 2007, 06:33:21 pm »
I finally got it to work!!!
After reading this:
article on booting Linux off of an external firewire or usb drive I see that the author was doing something pretty similar to what I was trying to do.
In method 2 he already had all the modules compiled into the kernel just as VL does. He uses a custom initrd file. The problem ened up being that there needs to be a certain delay in order for the SCSI bus to be scanned and the root device to be found.

Also my partitioning sceme is a little more complicated than usual. I had at one time been booting Ubuntu directly off the external usb drive(set the BIOS to boot off the external drive first). I created a /boot partition on the external drive for that purpose. I finally switched back to booting off of the internal ide drive and I had also installed Kubuntu on it as well so I created a /boot partition on it as well.
So now if I'm booting up Kubuntu on the internal drive the vmlinuz kernel file for it is in /dev/hda2 and if I'm booting up either Ubuntu or VectorLinux the vmlinuz kernel files for these are at /dev/sda1. The menu.lst file that is used is in /dev/hda2/grub.

I booted up VL which I had installed on my internal ide drive(on /dev/hda11). After booted up I then did the following:
1. cd /boot
2. As root: mkinitrd -c -k
3. This creates a file named initrd.gz which is the compressed version of the directory "initrd-tree" which is also created.
4. cd /boot/initrd-tree
5. Edit the file "rootdev" and change "/dev/hda11" to "/dev/sda6"         (/dev/sda6 is the external usb drive partition that I want VL to reside on)
6. Edit the file "wait-for-root" and change the value "1" to "10"            This gives 10 seconds for the usb drive to become available.
7. cd /boot
8. As root: mkinitrd                     (No options, this compresses the initrd-tree directory into the file initrd.gz file)
9. I then copied the initrd.gz file over to my boot partition /media/sda1/VectorLinux
10. I then edited my menu.lst file which is located on the internal ide drive in hda2
     Here is the VectorLinux entry:

# VectorLinux
title           VectorLinux, kernel
root            (hd1,0)
kernel          /VectorLinuxBoot/vmlinuz- root=/dev/sda6
initrd          /VectorLinuxBoot/initrd.gz

After saving the menu.lst file I shutdown VL which was running from /dev/hda11.
Once my grub menu came back up I selected VL again and this time it booted right up from the external usb drive!

So it looks like my first approach to trying to compile modules was totally unnecessary as they were already in the kernel. All that was needed was a new initrd file with an extra delay added.
« Last Edit: November 11, 2007, 06:35:52 pm by ted1959 »