From b08dc48a8da52e8560f1b076f823e9b2a854936c89ab0809288d8c2bf4a0bc09 Mon Sep 17 00:00:00 2001 From: Gary Ching-Pang Lin Date: Tue, 10 May 2016 02:05:30 +0000 Subject: [PATCH] Accepting request 394342 from home:rwill:branches:devel:openSUSE:Factory - shim-install : support simple MD RAID1 target devices (FATE#314829) OBS-URL: https://build.opensuse.org/request/show/394342 OBS-URL: https://build.opensuse.org/package/show/devel:openSUSE:Factory/shim?expand=0&rev=113 --- shim-install | 15 +++++++++++++++ shim.changes | 5 +++++ shim.spec | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/shim-install b/shim-install index 925ad1d..d64b4f8 100644 --- a/shim-install +++ b/shim-install @@ -281,6 +281,21 @@ if test "$removable" = no && test -n "$bootloader_id"; then efidir_disk="$("$grub_probe" --target=disk --device-map= "$efidir")" if test -z "$efidir_drive" || test -z "$efidir_disk"; then echo "Can't find GRUB drive for $efidir; unable to create EFI Boot Manager entry." >&2 + elif [[ "$efidir_drive" == \(mduuid/* ]]; then + eval $(mdadm --detail --export "$efidir_disk" | + perl -ne 'print if m{^MD_LEVEL=}; push( @D, $1) if (m{^MD_DEVICE_\S+_DEV=(\S+)$}); + sub END() {print "MD_DEVS=\"", join( " ", @D), "\"\n";};') + if [ "$MD_LEVEL" != "raid1" ]; then + echo "GRUB drive for $efidir not on RAID1; unable to create EFI Boot Manager entry." >&2 + fi + for mddev in $MD_DEVS; do + efidir_drive="$("$grub_probe" --target=drive --device-map= -d "$mddev")" + efidir_disk="$("$grub_probe" --target=disk --device-map= -d "$mddev")" + efidir_part="$(echo "$efidir_drive" | sed 's/^([^,]*,[^0-9]*//; s/[^0-9].*//')" + efidir_d=${mddev#/dev/} + efibootmgr -c -d "$efidir_disk" -p "$efidir_part" -w \ + -L "$bootloader_id ($efidir_d)" -l "\\EFI\\$efi_distributor\\$efi_file" + done else efidir_part="$(echo "$efidir_drive" | sed 's/^([^,]*,[^0-9]*//; s/[^0-9].*//')" efibootmgr -c -d "$efidir_disk" -p "$efidir_part" -w \ diff --git a/shim.changes b/shim.changes index 8b8940e..aa8d2c8 100644 --- a/shim.changes +++ b/shim.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon May 9 11:20:56 UTC 2016 - rw@suse.com + +- shim-install : support simple MD RAID1 target devices (FATE#314829) + ------------------------------------------------------------------- Wed May 4 10:40:52 UTC 2016 - agraf@suse.com diff --git a/shim.spec b/shim.spec index 6ade141..900fa85 100644 --- a/shim.spec +++ b/shim.spec @@ -1,7 +1,7 @@ # # spec file for package shim # -# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed