--- pyanaconda/bootloader.py | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py index db0626f..68c2795 100644 --- a/pyanaconda/bootloader.py +++ b/pyanaconda/bootloader.py @@ -1520,22 +1520,27 @@ class EFIGRUB(GRUB): def add_efi_boot_target(self): boot_efi = self.storage.mountpoints["/boot/efi"] if boot_efi.type == "partition": - boot_disk = boot_efi.disk + boot_disks = [ boot_efi.disk ] boot_part_num = boot_efi.partedPartition.number elif boot_efi.type == "mdarray": # FIXME: I'm just guessing here. This probably needs the full # treatment, ie: multiple targets for each member. - boot_disk = boot_efi.parents[0].disk + boot_disks = [ boot_efi.parents[0].disk ] boot_part_num = boot_efi.parents[0].partedPartition.number + elif boot_efi.type == "dm-multipath": + boot_disks = [ d.disk for d in boot_efi.parents ] + boot_part_num = boot_efi.parents[0].partedPartition.number + boot_part_num = str(boot_part_num) - rc = self.efibootmgr("-c", "-w", "-L", productName, - "-d", boot_disk.path, "-p", boot_part_num, - "-l", "\\EFI\\redhat\\grub.efi", - root=ROOT_PATH, - stdout="/dev/tty5", stderr="/dev/tty5") - if rc: - raise BootLoaderError("failed to set new efi boot target") + for boot_disk in boot_disks: + rc = self.efibootmgr("-c", "-w", "-L", productName, + "-d", boot_disk.path, "-p", boot_part_num, + "-l", "\\EFI\\redhat\\grub.efi", + root=ROOT_PATH, + stdout="/dev/tty5", stderr="/dev/tty5") + if rc: + raise BootLoaderError("failed to set new efi boot target") def install(self): self.remove_efi_boot_target() -- 1.7.4.4 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list