On 05/17/22 12:59, Richard W.M. Jones wrote:
These devices can be left around by grub2 when it runs the osprober
tool after we run “/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg”.
They are read-only mirrors of existing filesystems. These confuse
later steps in conversion, specifically fstrim.
Reported-by: Ming Xie
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=2003503
---
convert/linux_bootloaders.ml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/convert/linux_bootloaders.ml b/convert/linux_bootloaders.ml
index a70b65a41c..7c5fb0be3f 100644
--- a/convert/linux_bootloaders.ml
+++ b/convert/linux_bootloaders.ml
@@ -345,7 +345,14 @@ object (self)
method remove_console = self#grub2_update_console ~remove:true
method update () =
- ignore (g#command [| grub2_mkconfig_cmd; "-o"; grub_config |])
+ ignore (g#command [| grub2_mkconfig_cmd; "-o"; grub_config |]);
+
+ (* Grub2 runs osprober which sometimes leaves around read-only
+ * device-mapper maps covering existing filesystems. These
+ * confuse later steps (especially fstrim). So just delete
+ * any if found. (RHBZ#2003503).
+ *)
+ ignore (g#command [| "bash"; "-c"; "rm -f
/dev/mapper/osprober-*" |])
method get_config_file () =
grub_config
Hmm... I'm not sure why this is better than "dmsetup remove", but it
does not really matter. We need these nodes to disappear only for the
remainder of the conversion -- so command that effects that suffices!
Reviewed-by: Laszlo Ersek <lersek(a)redhat.com>
Thanks!
Laszlo