Josip Rodin
Wed, 03 Feb 2010 20:06:31 -0800
On Sat, Jan 02, 2010 at 03:00:39PM +0100, Josip Rodin wrote: > On Sat, Jan 02, 2010 at 02:29:36PM +0100, Josip Rodin wrote: > > I've got two disks and a software RAID setup on the partition that holds > > the /boot directory. I have several Linux software RAID partitions, based > > on this scheme: > > > > sda2+sdb2 -> Linux amd64 / > > sda3+sdb3 -> Linux i386 / > > sda5+sdb5 -> Linux swap > > sda6+sdb6 -> Linux /home > > > > The first two become md0, differentiated by old GRUB menu entries - > > Linux parameters raid=noautodetect and md0=first,second ... settings. > > The second two become md1 and md2, respectively, and the fourth array > > is simply left unassembled on the non-applicable architecture. > > my autogenerated menu entry for the amd64 root partition seemed to have > the wrong UUID in the 'search' command. That sounds like a userland issue, > because: > > % sudo grub-probe -d /dev/sda1 -t fs_uuid > 1460509560508002 > % sudo grub-probe -d /dev/sda2 -t fs_uuid > 18515dea-973e-473b-bddf-74d1cb58e15a > % sudo grub-probe -d /dev/sda3 -t fs_uuid > 7e6cdce7-8136-41f0-8a66-997b89ea00fe > > And yet after running the update-grub command on the amd64 machine > I still get: > > % grep search /boot/grub/grub.cfg | sort -u > search --no-floppy --fs-uuid --set 1460509560508002 > search --no-floppy --fs-uuid --set > 7e6cdce7-8136-41f0-8a66-997b89ea00fe > > It's supposed to detect the amd64 partition (sda2) at least once :) > but it seems to be fixating on the i386 one (sda3).
This behaviour seems to be a problem with grub-probe and its usage by the
default config scripts, because the simple most straightforward test fails
for one of the RAID devices:
% sudo tune2fs -l /dev/md0 | grep UUID
Filesystem UUID: 18515dea-973e-473b-bddf-74d1cb58e15a
% sudo grub-probe --device /dev/md0 --target=fs_uuid
7e6cdce7-8136-41f0-8a66-997b89ea00fe
% sudo tune2fs -l /dev/md2 | grep UUID
Filesystem UUID: 222e0fc1-800d-4be4-89fa-96a876aca441
% sudo grub-probe --device /dev/md2 --target=fs_uuid
222e0fc1-800d-4be4-89fa-96a876aca441
What it thinks to be /dev/md0 isn't actually what the rest of the system
knows to be /dev/md0 (nor is it actually what grub sees as md0 on boot time,
as it happens).
The --device option is used by /usr/lib/grub/grub-mkconfig_lib's
prepare_grub_to_access_device() function, invoked in turn by
/etc/grub.d/10_linux's linux_entry() function.
When I omit that parameter, I get:
% sudo grub-probe /dev/md0 --target=fs_uuid
grub-probe: error: cannot find a device for /dev/md0.
I'm not really sure what to make of util/grub-probe.c's usage of
util/getroot.c' grub_guess_root_device() at least under Linux...
is it supposed to resolve canonical names out of input device names?
--
2. That which causes joy or happiness.
_______________________________________________
Bug-grub mailing list
Bug-grub@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-grub