On Thursday, 10 November 2016 14:59:59 CET Richard W.M. Jones wrote: > From: Pavel Butsykin <pbutsykin virtuozzo com> > > This patch improves the search of grub config on EFI partition. This > means that the config will be found not only for rhel but also for > many other distributions. Tests were performed on the following > distributions: centos, fedora, ubuntu, suse. In all cases, the config > path was /boot/efi/EFI/*distname*/grub.cfg > > The main purpose of the patch is to improve support for converting of > vm with UEFI for most distributions. Unfortunately this patch does not > solve the problem for all distributions, for example Debian does not > store grub config on the EFI partition, therefore for such > distributions another solution is necessary. > > Signed-off-by: Pavel Butsykin <pbutsykin virtuozzo com> > Signed-off-by: Richard W.M. Jones <rjones redhat com> > --- Mostly LGTM, just one thing it can be improved. > class bootloader_grub1 (g : G.guestfs) inspect grub_config = > + let () = > + if grub_config = "/boot/efi/EFI/redhat/grub.conf" then > + g#aug_transform "grub" "/boot/efi/EFI/redhat/grub.conf" in Augeas < 1.7.0 does not like adding a transformation for a file with the same lens it is handled already . As workaround, we can first try to list the configuration file: if there are no results, then the transformation is applied. Something like: let () = (* Apply the "grub" lens if it is not handling the file * already -- Augeas < 1.7.0 will error out otherwise. *) if g#aug_ls grub_config = [||] then g#aug_transform "grub" grub_config in This way it will: - pick configuration files for any distro, not just redhat-based ones (fixing what Pavel reported) - work fine (by doing nothing) with Augeas >= 1.7.0  https://www.redhat.com/archives/augeas-devel/2016-November/thread.html -- Pino Toscano
Description: This is a digitally signed message part.