If you have an LVM setup with a VG that contains a raidintegrity=y volume, and
two other volumes that form a BTRFS raid1 filesystem, and the BTRFS filesystem
is the root filesystem, then update-grub2 will generate grub.cfg with:
linux [...] root=/dev/lvm/btrfs1
/dev/lvm/btrfs2 [..]
instead of:
linux [...] root=/dev/lvm/btrfs1 [..]
or
linux [...] root=UUID=[...] [..]
Note: that is a newline in the configuration file, so the config file is broken
When doing this, update-grub2 will spit out several errors about unknown nodes
(listing the raidintegrity volumes) and disks (the id's for the first LV in the
VG)
To create a LVM system that fails in this way, first assemble a VG called
myGrubBreakingVG with two PVs in it. Then run:
lvcreate -L 128MiB -n theRaidVol --mirrors 1 --type raid1 --raidintegrity y
myGrubBreakingVG
lvcreate -L 5GiB -n btrfsSideA myGrubBreakingVG
lvcreate -L 5GiB -n btrfsSideB myGrubBreakingVG
mkfs.btrfs -m raid1 -d raid1 /dev/myGrubBreakingVG/btrfsSideA
/dev/myGrubBreakingVG/btrfsSideB
Then you can mount the btrfs volumes, and debootstrap a system into it, chroot,
and inside that chroot update grub will fail as described