[lfs-support] Grub 2.0 problem

Bruce Dubbs bruce.dubbs at gmail.com
Tue Nov 13 09:08:21 PST 2012


Tobias Gasser wrote:
> Am 13.11.2012 03:20, schrieb Bruce Dubbs:
>
> what i missed in my original message:
> /sda1 is ext2
> /sda2 and /sda3 are ext3 (first attempt was with ext4, but as grub
> didn't work i made backups, reformatted with ext3 and restored).

insmod ext2 is supposed to be able to handle ext2/3/4.

>> If /boot is a separate partition, then the linux lines should look like:
>>
>> linux /kernel-3.4.18-t64 root=/dev/sda3 ro
>>
>> note the you don't specify /boot there.  From the viewpoint of grub,
>> there is no /boot directory.
>
> there is, as i have a symlink.

What symlink?  I don't know if grub understands symlinks, especially 
from one filesystem to another.

> i've removed the /boot and added the ro, but as expected no change.
> grub does not find the disk.
>
>
>> I suspect that you installed grub from ubuntu without /boot mounted as a
>> separate partition.
> from the live-cd i mounted /dev/sda2 (or sda3) to /mnt and then
> /dev/sda1 to /mnt/boot.
>
> grub-install --boot-directory=/mnt/boot /dev/sda
> installs ubuntus grub with success - and the boot-loader starts my kernel(s)
>
> from within on of my systems (32 or 64bit), i use
> grub-install /dev/sda
> ( i even tried with --boot-direcory=/boot with /boot mounted, but as
> expected no change as /boot is default for --boot-directory)
>
>> One thing to do is to drop to the grub command line and do:
>>
>> grub>  ls (hd0,1)
> just empty.
>
> ls => empty
> ls (hd0,1) => error: disk 'hd0,1' not found
> ls (hd0,msdos1) => error: disk 'hd0,msdos1' not found
>
> hitting TAB after typing "ls (" does nothing. i guess the disk can't be
> found at all.
>
> with ubuntus grub i get what i expect: hd0,msdos{1,2,3}
>
> the main problem is, the boot-loader does not see the disk!
>
>> For the ubuntu instances, try:
> i don't have any intalled ubuntu, i just use the livecd to get grub
> installed.
>
>> linux (hd0,2)/boot/kernel-3.4.18-t32 root=/dev/sda2
>> linux (hd0,3)/boot/kernel-3.4.18-t64 root=/dev/sda3
> no. there are just empty (hd0,x)/boot as /dev/sda1 will be mounted
> later. the kernels are at (hd0,1)/ (or as i have a symlink) (hd0,1)/boot
>
>
>> The trick is to know which version of the grub configuration file is
>> being used.  A simple 'grub install /dev/sda' will assume that it is
>> using /boot/grub/grub.cfg from where /boot is located when the install
>> is run.
>
> i have grub.cfg in (hd0,1)/ (hd0,1)/grub and (hd0,1)/grub/i386-pc
> no symlinks but copies.

That's correct.

> as grub does not see the disk, the question where grub.cfg should be
> found is not yet of interest ;) - first grub has to find the disk.
>
> first thing to solve is to make the disk available to the boot-loader, i
> don't want to see the grub-console rescue mode:
>
> GRUB loading.
> Welcome to GRUB!
>
> error: disk 'hd0,msdos1' not found.
> Entering rescue mode...

I agree that there is a problem between the BIOS and GRUB.  When you 
install the ubuntu system, what are the contents of grub.cfg.  Also what 
is the output of 'mount'.

   -- Bruce




More information about the lfs-support mailing list