Bug#557473: 30_os-prober generates invalid boot entries

Harald Dunkel harald.dunkel at t-online.de
Sun Nov 22 22:09:33 UTC 2009


On 11/22/09 19:18, Felix Zielcke wrote:
> Am Sonntag, den 22.11.2009, 12:14 +0100 schrieb Harald Dunkel:
>>
>> Problem: /etc/grub.d/30_os-prober adds entries for /dev/md0p1 to
>> grub.cfg, even though /boot is on /dev/sdb1
>
> It uses /dev/md0p3 not p1
>

Of course you are right. My error.

>
> What is on /dev/md0p3 or the filesystem with this UUID
> f3f11a99-cd48-49ae-9455-189ad251b209?

% ls -al /dev/disk/by-uuid/589c1019-ecc1-48f5-b7ef-8e3c8c5ec2cb
lrwxrwxrwx 1 root root 10 Nov 22 21:45 /dev/disk/by-uuid/589c1019-ecc1-48f5-b7ef-8e3c8c5ec2cb -> ../../sda1
% ls -al /dev/disk/by-uuid/f3f11a99-cd48-49ae-9455-189ad251b209
lrwxrwxrwx 1 root root 11 Nov 22 21:45 /dev/disk/by-uuid/f3f11a99-cd48-49ae-9455-189ad251b209 -> ../../md0p3
% ls -al /dev/disk/by-uuid/e8d59336-6621-4061-96f7-fe294e58b3ce
lrwxrwxrwx 1 root root 11 Nov 22 21:45 /dev/disk/by-uuid/e8d59336-6621-4061-96f7-fe294e58b3ce -> ../../md0p1

/dev/md0p1 is the root partition. /dev/md0p3 is a manual snapshot of
/dev/md0p1 (its local /etc/fstab has been adjusted). /dev/sda1 is the
partition used for booting. Later it is mounted to /boot.

Important is that neither /dev/md0p1 nor /dev/md0p3 provide a bootable
kernel in the local /boot subdirectory. /dev/sda1 (mounted to "/boot")
does.

> The root=UUID= for the linux kernel seems to be your /dev/md0p1 because
> it's the same as in the 10_linux Linux entries.
> os-prober/linux-boot-prober (not 30_os-prober, it's a seperate Debian
> package) looks for all /etc/lilo.conf, (/boot)/grub/grub.cfg and
> (/boot)/grub/menu.lst it can find.
> And we just make in 30_os-prober from its output a proper GRUB 2
> menuentry.
>

I am not sure that this is working correctly. Since /dev/md0p1
and /dev/md0p3 are identical (except for one line in /etc/fstab
pointing to either /dev/md0p1 or /dev/md0p3 for "/"), the grub.cfg
segments generated by /etc/grub.d/10_linux and /etc/grub.d/30_os-prober
should identical, too, except for the different UUIDs for /dev/md0p1
and /dev/md0p3.

Problem is that the root=UUID=... statements generated by 30_os-prober
point to /dev/md0p1 instead of md0p3, and that the "search" lines
generated by this script point to /dev/md0p3 instead of /dev/sda1.

> The main question here is, should os-prober add these entries or not.
> If it should and the entries in the bootloader configuration for this
> other Debian system is correct from it's point of view, then it's just
> the bug with a seperate /boot partition.
> That bug is already fixed upstream by me yesterday.
>

I will try it as soon as it is in the repository. Of course I will
try to boot from the raid0 without a separate /boot partition, too.


Regards

Harri





More information about the Pkg-grub-devel mailing list