For example grml-rescueboot uses findiso for booting the ISO.
When booting from a software RAID using mdadm then
/scripts/local-top/mdadm being used inside
/scripts/boot/9990-misc-helpers.sh leaks its output to the
environment, causing invalid data used inside the
mount_images_in_directory function. Because the invalid data
results in a failing mount_images_in_directory execution we end
up with failed boot and error message:
"No supported filesystem images found at ...."
So instead redirect output of /scripts/local-top/mdadm to
/boot.log. Also make sure to check for existence of
/conf/conf.d/md before accessing it (the file doesn't always
exist).
While at it also make sure the same logic is used for
/scripts/local-top/lvm2.
See http://bts.grml.org/grml/issue1270
# Adding lvm support
if [ -x /scripts/local-top/lvm2 ]
then
- ROOT="$device" resume="" /scripts/local-top/lvm2
+ ROOT="$device" resume="" /scripts/local-top/lvm2 >>/boot.log
fi
;;
# Adding raid support
if [ -x /scripts/local-top/mdadm ]
then
- cp /conf/conf.d/md /conf/conf.d/md.orig
+ [ -r /conf/conf.d/md ] && cp /conf/conf.d/md /conf/conf.d/md.orig
echo "MD_DEVS=$device " >> /conf/conf.d/md
- /scripts/local-top/mdadm
- mv /conf/conf.d/md.orig /conf/conf.d/md
+ /scripts/local-top/mdadm >>/boot.log
+ [ -r /conf/conf.d/md.orig ] && mv /conf/conf.d/md.orig /conf/conf.d/md
fi
;;
esac