On 05/17/22 15:09, Richard W.M. Jones wrote:
> On Tue, May 17, 2022 at 01:10:32PM +0200, Laszlo Ersek wrote:
>> 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
>>>
> 
> I'd like to make this change (on top):
> 
> -    ignore (g#command [| "bash"; "-c"; "rm -f /dev/mapper/osprober-*" |])
> +    ignore (g#command [| "sh"; "-c"; "rm -f /dev/mapper/osprober-linux-*" |])
> 
> Bash might in theory not exist. I guess it's unlikely, but POSIX
> defines 'sh' so we know that must exist.  It's not as if we're using
> any bash features here.
> 
> The other part of the change is that the device nodes created by the
> old & buggy osprober were always called "osprober-linux-*", so we may
> as well be more specific about that.

Sure; both are good ideas.

> I still cannot reproduce this bug locally.  I can force grub2-mkconfig
> to run -- creating a guest like this is sufficient:
> 
> $ virt-builder rhel-8.4 --edit '/etc/sysconfig/grub: 
> s|^GRUB_CMDLINE_LINUX="|GRUB_CMDLINE_LINUX="resume=/dev/sda1 |'
> 
> However it doesn't reproduce the bug observed.

I think it's OK; you did test the fix, just on an image from someone
else. And we have confirmation from multiple independent tickets that
this symptom exists.

Thanks!
Laszlo
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to