Bug#398312: INITRDSTART='none' doesn't work
dean gaudet
dean at arctic.org
Mon Nov 13 11:07:46 CET 2006
On Mon, 13 Nov 2006, martin f krafft wrote:
> severity 398312 important
> tags 398312 unreproducible moreinfo
> thanks
>
> > even though i have INITRDSTART='none' in my /etc/default/mdadm and rebuilt >
> the initrd, it still goes and does array discovery at boot time.
>
> piper:/tmp/cdt.d.Ns8889# grep '^INITRD' /etc/default/mdadm
> INITRDSTART='none'
> piper:/tmp/cdt.d.Ns8889# update-initramfs -c -b . -k $(uname -r)
> update-initramfs: Generating ./initrd.img-2.6.18-2-amd64
> W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
> I: mdadm: using configuration file: /etc/mdadm/mdadm.conf
> I: mdadm: no MD arrays will be started from the initial ramdisk.
> I: mdadm: use `dpkg-reconfigure --priority=low mdadm` to change this.
try again with VERBOSE=false...
which causes the is_true() in info() to return 1 which causes the set -e
to terminate the script.
perhaps this bug report should be titled "set -e considered harmful" :)
set -e would be better if it actually caused sh to complain when the
error occured... instead it's the worst of both worlds: scripts exit
due to programming errors and then you have no idea they exited early.
> > this is marked grave because it can cause dataloss if drives with
> > stale superblocks are put together in an unexpected manner
> > resulting in an array rebuild. (i.e. same reasoning as #398310)
>
> Again, I don't see this as a grave bug but human error. I agree that
> mdadm should do something against it, but it's not a grave problem
> every time that it fails to prevent human error.
i dunno, it's not really a human error to not know anything at all about
the superblocks.
with the default settings of INITRDSTART='all' it's impossible for a
person to stick some old PATA disks (which happen to be part of an old
array) into their box. because it requires a reboot and then initrd
will make an array and md might start trying to rebuild the disks. i
can't even stick them in to do --zero-superblock...
unless i change INITRDSTART setting and rebuild initrd.
is it really that hard to start only the root array? i suppose it is a
challenge on an upgrade... because you don't have the helpful sysfs
features that newer 2.6.x kernels provide for finding dependencies.
blah.
-dean
--- /var/tmp/mdadm.orig 2006-11-13 01:28:46.000000000 -0800
+++ /usr/share/initramfs-tools/hooks/mdadm 2006-11-13 01:51:37.000000000 -0800
@@ -23,14 +23,6 @@
;;
esac
-is_true()
-{
- case "${1:-}" in
- [Yy]es|[Yy]|1|[Tt]rue|[Tt]) return 0;;
- *) return 1;
- esac
-}
-
write()
{
local PREFIX; PREFIX=$1; shift
@@ -39,7 +31,9 @@
info()
{
- is_true ${VERBOSE:-false} && write I "$@"
+ if [ "$VERBOSE" = "true" ]; then
+ write I "$@"
+ fi
}
warn()
More information about the pkg-mdadm-devel
mailing list