error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
+set -x
+# do only execute for Debian and similar distros
+if ! ifclass DEBIAN ; then
+ exit 0
+fi
+
set -a
# do not set up grub during dirinstall
# disable os-prober because of #802717
ainsl /etc/default/grub 'GRUB_DISABLE_OS_PROBER=true'
+# efivars may still be mounted from the host system during fai-diskimage
+if [ -d $target/sys/firmware/efi/efivars ]; then
+ umount $target/sys/firmware/efi/efivars
+fi
+
# skip the rest, if not an initial installation
if [ $FAI_ACTION != "install" ]; then
$ROOTCMD update-grub
# Check if RAID is used for the boot device
if [[ $BOOT_DEVICE =~ '/dev/md' ]]; then
+ GROOT=$($ROOTCMD grub-probe -tdrive -d $BOOT_DEVICE)
raiddev=${BOOT_DEVICE#/dev/}
# install grub on all members of RAID
for device in $(LC_ALL=C perl -ne 'if(/^'$raiddev'\s.+raid\d+\s(.+)/){ $_=$1; s/\d+\[\d+\]//g; s/(nvme.+?)p/$1/g; print }' /proc/mdstat); do
# remove last ,
mbrdevices=${mbrdevices%, }
else
- mbrdevices=$(get_stable_devname $BOOT_DEVICE)
+ for dev in $BOOT_DEVICE; do
+ mbrdev=$(get_stable_devname $dev)
if [ -z "$mbrdevices" ]; then
- # if we cannot find a persistent name (for e.g. in a VM) use old name
- mbrdevices=$BOOT_DEVICE
+ # if we cannot find a persistent name (for e.g. in a VM) use old name
+ mbrdevices+="$dev, "
fi
- echo "Installing grub on $BOOT_DEVICE = $mbrdevices"
- $ROOTCMD grub-install --no-floppy "$mbrdevices"
+ echo "Installing grub on $dev = $mbrdev"
+ $ROOTCMD grub-install --no-floppy "$mbrdev"
+ done
+ # remove trailing ,
+ mbrdevices=${mbrdevices%, }
fi
echo "grub-pc grub-pc/install_devices multiselect $mbrdevices" | $ROOTCMD debconf-set-selections