Bug#805309: grub-common: md raid superblock caching issue

Alexander Inyukhin shurick at sectorb.msk.ru
Mon Nov 16 20:16:09 UTC 2015


Package: grub-common
Version: 2.02~beta2-22
Severity: normal

Hi,

I was trying to install grub on md raid array after some reshaping and drive
rearrainging, but grub-install and grub-probe were refused to see the device
any more (error was something like "mduuid/... not found").

After some investigations I found that grub used the old version of
md superblocks from cache and it was unable to correctly determine
the new role of partitions inside array (they are changed during reshaping).
At the same time mdadm --examine on partitions works correctly, because
it opens disk bypassing cache (with O_DIRECT).

Dumping superblock with and without direct flag confirms that idea.
These commands returned different role arrays:
 dd if=/dev/sdd3 bs=512 count=1 skip=8 iflag=direct | xxd
 dd if=/dev/sdd3 bs=512 count=1 skip=8 | xxd

I suggest that overall caching behaviour might be a kernel issue,
but it would be probably a good idea to use direct access to disk
partitions in grub too.

For now, I worked this around by explicitly flushing cache with command
  echo 3 > /proc/sys/vm/drop_caches



More information about the Pkg-grub-devel mailing list