#861053 grub2: grub doesn't fully honor GRUB_LINUX_DISABLE_UUID; UUIDs cannot work here

Package:
grub2
Source:
grub2
Description:
GRand Unified Bootloader, version 2 (dummy package)
Submitter:
Joshua
Date:
2019-12-21 23:33:03 UTC
Severity:
normal
#861053#5
Date:
2017-04-24 04:11:45 UTC
From:
To:
Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

apt-get dist-upgrade ignored the fact that grub2 is pinned to never and
installed grub2 anyway. update-grub promptly installed a bad configuration
file. The pin file is still present.

It is not possible to use UUID search on this system as this will not
result in a sane configuration. There are multiple paths to /, only 1
of which may be used, and the first choice on the list is not it.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

apt-get remove grub2
lilo -t && lilo

I know from experience that editing /boot/grub/grub.cfg is futile.

   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***

#861053#10
Date:
2019-12-21 23:23:04 UTC
From:
To:
So the real problem is grub.cfg contains lines that look like this:

	  search --no-floppy --fs-uuid --set=root  d847c628-aa10-4bef-92b6-72ebacc07d7b

The probe tries to activate builtin protected-mode drivers, and the
drivers "work", so the probe finds two paths to the disk. Both of them
are wrong. In fact this error would be harmless, except for grub will
later write to the disk (the grub environment block). This desyncs the
RAID array.

The correct solution is to explicitly specify the driver is to be used.

#861053#15
Date:
2019-12-21 23:31:40 UTC
From:
To:
The problem is /boot/grub/grub.cfg contains lines that look like:

	  search --no-floppy --fs-uuid --set=root  d847c628-aa10-4bef-92b6-72ebacc07d7b

search doesn't work because it starts the protected mode driver, which
finds multiple copies of the disk (because it's a full-disk RAID
array), selects one of them to try to use, and access it. Besides the
fact that this won't work very well if one of the disks were to
develop bad sectors, this is wrong because grub will later write to
the environment block, which resets the NVRAM flip-flop, causing the
automatic RAID resync to not work anymore.

The solution is to specify the device (hd0,1) explicitly everywhere
and never use any search directive anywhere in the config file. Device
hd0 uses bios 0x13 calls to access the disk, allowing the boot-time
RAID driver to do its job until the kernel is loaded.