diff options
author | Michael Prokop <mika@debian.org> | 2013-10-15 17:36:32 +0200 |
---|---|---|
committer | Daniel Baumann <mail@daniel-baumann.ch> | 2013-10-15 17:53:49 +0200 |
commit | 130f0d741827ba9fef3a02cc25e4ea3b619a4352 (patch) | |
tree | 39857f234689d9048cd92562b1b4533dfb0b1289 /components/9990-misc-helpers.sh | |
parent | 1f307e532397bf92fca2856ae65547531150c584 (diff) | |
download | live-boot-130f0d741827ba9fef3a02cc25e4ea3b619a4352.tar.gz live-boot-130f0d741827ba9fef3a02cc25e4ea3b619a4352.zip |
Properly boot from mdadm via findiso boot option.
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
Diffstat (limited to 'components/9990-misc-helpers.sh')
-rwxr-xr-x | components/9990-misc-helpers.sh | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh index 902ddfe..c656f23 100755 --- a/components/9990-misc-helpers.sh +++ b/components/9990-misc-helpers.sh @@ -161,7 +161,7 @@ check_dev () # 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 ;; @@ -169,10 +169,10 @@ check_dev () # 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 |