Bug#682993: grub-pc: grub-probe reports wrong UUID for md raid1 device

moe debian-bugs at mbox.bz
Fri Jul 27 19:47:58 UTC 2012


Package: grub-pc
Version: 1.99-22.1
Severity: critical
Tags: squeeze
Justification: breaks the whole system

Summary:

grub-pc 1.98+20100804-14+squeeze1 (the version that ships with squeeze)
detects duplicate/wrong UUIDs when two mdadm arrays are present.

grub-pc 1.99-22.1 (wheezy) behaves correctly for me.


Description of the erratic behaviour (in 1.98 / squeeze):

When 2 arrays are present (md0, md1) then grub-probe reports the same
UUID for both. Also on boot only one of the two arrays is detected
(shown as (md/1) in 'ls'). If the detected array is not the bootable
array then grub-rescue kicks in ("File not found") and there's no way
to proceed booting without external help (USB-stick / rescue disk).

Here's a transcript of grub-probe reporting the wrong UUIDs:

# root ~ # uname -a
Linux 3.2.0-0.bpo.2-amd64 #1 SMP Fri Jun 29 20:42:29 UTC 2012 x86_64 GNU/Linux

### Two arrays are present

# root ~ # cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdc1[0]
      125024952 blocks super 1.2 [2/1] [U_]
      
md0 : active raid1 sdb1[2] sda1[4]
      1953510841 blocks super 1.2 [2/2] [UU]

### blkid shows correct UUIDs for md0, md1:

# root ~ # blkid /dev/md0
/dev/md0: UUID="32e38502-191f-40fd-885c-682589dcccd7" TYPE="ext3" SEC_TYPE="ext2" 

# root ~ # blkid /dev/md1
/dev/md1: UUID="5fe832e7-3fcf-4fe4-8e50-f397941414e0" TYPE="ext4" 

### grub-probe shows same UUID for both arrays:

# root ~ # grub-probe --version
grub-probe (GRUB) 1.98+20100804-14+squeeze1

# root ~ # grub-probe --device /dev/md0 --target=drive
(md/1)

# root ~ # grub-probe --device /dev/md1 --target=drive
(md/1)

# root ~ # grub-probe --device /dev/md0 --target=fs_uuid
5fe832e7-3fcf-4fe4-8e50-f397941414e0

# root ~ # grub-probe --device /dev/md1 --target=fs_uuid
5fe832e7-3fcf-4fe4-8e50-f397941414e0


### grub-probe remains confused also when the array is stopped.
### Note how it still shows the UUID of /dev/md1 when it is queries
### for /dev/md0.

# root ~ # mdadm --stop /dev/md1
mdadm: stopped /dev/md1

# root ~ # grub-probe --device /dev/md0 --target=fs_uuid
5fe832e7-3fcf-4fe4-8e50-f397941414e0

# root ~ # grub-probe --device /dev/md1 --target=fs_uuid
grub-probe: error: cannot stat `/dev/md1'.


### correct UUID is reported for md0 again when
### the (only) raid-member of md1 is destroyed.

# root ~ # mkfs.ext4 /dev/sdc1
<...snipped...>

# root ~ # grub-probe --device /dev/md0 --target=fs_uuid
32e38502-191f-40fd-885c-682589dcccd7


-- Package-specific info:

Package-info omitted because I've backported 1.99-22.1 from
wheezy which doesn't have this bug, and this is now installed.

Sorry, I'm not rolling my system back to the broken state
for the purpose of this bug-report. ;-)

-- debconf information excluded



More information about the Pkg-grub-devel mailing list