I think there is a better "solution" (involving disabling recordfail in
the affected cases, which is LVM for me).
I believe that the correct thing to use to check for LVM or RAID is
grub-probe's "abstraction" target. This returns a list of possible
abstractions below the filesystem level (or an empty string if there are
none). For instance, on a system with just LVM here (hardware RAID is
transparent to the system), it returns that:
# grub-probe --target=abstraction /boot/
lvm
On an older system with mdadm RAID1 and boot outside of LVM, it returns
this:
# grub-probe --target=abstraction /boot
raid mdraid1x
grub-probe --target=abstraction /
raid mdraid1x lvm
Also note that older versions of grub-probe output an additional space
at the end of the list if the list is non-empty, so mind that when
parsing the output. There's no such superfluous space on trusty, tho.
So what I do is check the list for possible candidates that would fail
with "recordfail". In my case, this is just "lvm" and I don't have a
system here to test it with md RAID in practice, but I guess you would
just need to extend the "for i in x y z" list with "raid".
The reason while the case statement inside the for loop looks as bit
convoluted is that you could find the culprit at 4 possible places:
making up the whole list, just at the beginning of the list, just at the
end of the list or somewhere in the middle of the list.
** Patch added: "Patch to /etc/grub.d/00_header to account for /boot on LVM"
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1274320/+attachment/4293379/+files/grub_00_header.patch
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1274320
Title:
Error: diskfilter writes are not supported
To manage notifications about this bug go to:
https://bugs.launchpad.net/grub/+bug/1274320/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs