[TriLUG] booting an external disk with grub 0.97

Joseph Mack NA3T via TriLUG trilug at trilug.org
Tue Apr 21 10:45:57 EDT 2015


On Mon, 20 Apr 2015, Alan Porter via TriLUG wrote:

> On 4/20/15 9:38 PM, Joseph Mack NA3T via TriLUG wrote:
>> I boot and the machine boots off the 3.5.3 kernel on the external disk 
>> (as I expect), and then mounts the internal disk (which I don't want), 
>> which also has an /dev/sda3, as the root partition.
>
> It sounds to me like grub is doing its job.  However, there
> is some ambiguity about which disk is sda.  That's not unexpected
> in cases like this... you can't count on the enumeration provided
> by the storage drivers.  Can you change the kernel command line
> so that it uses a UUID or a label to identify the intended root
> partition?

hmm. I can't even do this for my internal disk.

As a test, I tried booting my internal disk, by-label and by-uuid. It failed 
with "Unable to mount root fs on unknown-block(0,0)".

This is supposed to work.

https://wiki.archlinux.org/index.php/GRUB_Legacy#By_UUID

ie I haven't even got to trying the external sisk yet.

As a check, I mouse-swiped the disk location in my menu.lst and fed it to ls to 
correctly find the disk by-label and by-uuid, so I have the correct strings in 
the menu.lst file.

It appears then that grub isn't working. Looking with google I found someone 
with a bad initrd file. I don't even have an initrd file, as the code for the 
rootfs (ext3) is built into the kernel. Once I have the rootfs mounted, I can 
load everything else as modules. At least that's how I've been doing it for the 
last couple of decades.

Any idea why grub 0.97 can't boot an internal disk by-label or by-uuid, when it 
can boot by device name? Do I need an initrd?

As for my original problem of not being able to mount the rootfs on the external 
disk, it occurs to me that when I'm booting, I'm booting off a kernel that 
doesn't have the usb drivers in it; they're modules. I assume there's some 
trickery going on that the BIOS can read the kernel on the external usb disk, 
but then as soon as the kernel is loaded, the machine doesn't know what usb is 
anymore, at least till the kernel loads the usb drivers. I expect I'm going to 
need a different kernel or an initrd to get further here.

Joe

-- 
Joseph Mack NA3T EME(B,D), FM05lw North Carolina
jmack (at) austintek (dot) com - azimuthal equidistant
map generator at http://www.wm7d.net/azproj.shtml
Homepage http://www.austintek.com/ It's GNU/Linux!


More information about the TriLUG mailing list