--- orig/dracut-initramfs-restore.sh 2014-10-24 13:19:58.000000000 +0200 +++ new/dracut-initramfs-restore.sh 2015-03-28 21:59:14.001373195 +0100 @@ -10,6 +10,17 @@ [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id +ESTATUS=0 +BOOT_MNT=$(findmnt -T /boot -s -n -o SOURCE) +BOOT_UMOUNT=0 + +if [ -n "${BOOT_MNT}" ]; then + if ! grep -q "${BOOT_MNT}" /proc/mounts; then + BOOT_UMOUNT=1 + mount "${BOOT_MNT}" /boot -o ro + fi +fi + if [[ $MACHINE_ID ]] && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then IMG="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd" fi @@ -28,7 +39,11 @@ # something failed, so we clean up echo "Unpacking of $IMG to /run/initramfs failed" >&2 rm -f -- /run/initramfs/shutdown - exit 1 + ESTATUS=1 +fi + +if [ ${BOOT_UMOUNT} -eq 1 ]; then + umount "${BOOT_MNT}" fi -exit 0 +exit ${ESTATUS}