Bug#536644: initramfs-tools: Boot failure from software-RAID1 with debian Lenny
Subject: initramfs-tools: Boot failure from software-RAID1 with debian Lenny
Package: initramfs-tools
Version: 0.92o
Severity: critical
Justification: breaks the whole system
*** Please type your report below this line ***
On a newly built system, the boot sequence has been frequently failing as follows:
-----
initrd /initrd.img-2.6.26-2-686
[Linux-initrd @ 0x378d1000, 0x71ee7b bytes]
Decompressing Linux... Parsing ELF... done.
Booting the kernel.
[ 0.420026] PCI: Not using MMCONFIG.
Loading, please wait...
[ 5.494772] ata2: ACPI get timing mode failed (AE 0x300d)
Discovering multipaths...
mdadm: no devices found for /dev/md0
Segmentation fault
mount: mounting /dev/md1 on /root failed: No such device
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target filesystem doesn't have /sbin/init.
No init found. Try passing init= bootarg.
BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash)
:
:
(initramfs) mdadm --assemble --scan
mdadm: no devices found for /dev/md0
mdadm: /dev/md1 has been started with 1 drive (out of 2)
(initramfs)
-----
Note that the mdadm --assemble --scan works from within the initramfs.
The above sample is only one mode of failure. Sometimes, the system will come
up, but with reduced raidsets. Only once in a while does it come up OK. This is
seemingly a timing problem -- the most frequent failure mode is for md1 (the
root device) to assemble with one member and md0 to fail to assemble at all.
If I add 'debug' to the boot parameters, it introduces enough delay to come up
correctly almost every time. -- The rootdelay parameter does nothing to affect
this problem -- settings between 5 and 30 have been tried with no results.
I did find a workaround though: I have adjusted my local system to get a
reliable boot by editing /usr/share/initramfs-tools/scripts/mdadm and
/usr/share/initramfs-tools/scripts/multipath like this:
1) mdadm: right after 'maybe_break pre-mdadm'
add '/bin/sleep 1'
2) mdadm: right after 'echo 1 > /sys/module/md_mod/parameters/start_ro'
add '/bin/sleep 1'
3) multipath: after the last modprobe
add '/bin/sleep 1'
4) multipath: After the call to /sbin/multipath'
add '/bin/sleep 1'
Obviously not a good, nor a proposed solution, but perhaps a place to
start in identifying the timing problem. From here, it looks like the
mdadm --assemble --scan is fired off before device mapper has finished
stabilizing things.
For reference, my hardware configuration is:
Intel motherboard DG41RQ
Core2 quad 6700
2xST31500341AS (seagate 1.5T)
-- Package-specific info:
-- /proc/cmdline
root=/dev/md1 rootdelay=5 ro quiet
-- /proc/filesystems
ext3
-- lsmod
Module Size Used by
i915 25280 0
drm 65192 1 i915
kvm_intel 31168 0
kvm 106492 1 kvm_intel
ppdev 6500 0
parport_pc 22500 0
lp 8164 0
parport 30988 3 ppdev,parport_pc,lp
ipv6 235364 47
loop 12748 0
snd_hda_intel 325688 0
rng_core 3940 0
i2c_i801 7920 0
video 16432 0
i2c_core 19828 1 i2c_i801
button 6096 0
output 2912 1 video
snd_pcm_oss 32832 0
snd_mixer_oss 12320 1 snd_pcm_oss
intel_agp 22556 1
agpgart 28776 3 drm,intel_agp
iTCO_wdt 9508 0
snd_pcm 62596 2 snd_hda_intel,snd_pcm_oss
snd_seq_dummy 2660 0
snd_seq_oss 24992 0
snd_seq_midi 5728 0
snd_rawmidi 18528 1 snd_seq_midi
snd_seq_midi_event 6432 2 snd_seq_oss,snd_seq_midi
snd_seq 41456 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 17800 2 snd_pcm,snd_seq
snd_seq_device 6380 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd 45604 9 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
pcspkr 2432 0
soundcore 6368 1 snd
snd_page_alloc 7816 2 snd_hda_intel,snd_pcm
evdev 8000 4
ext3 105512 2
jbd 39444 1 ext3
mbcache 7108 1 ext3
dm_mirror 15104 0
dm_log 8484 1 dm_mirror
dm_snapshot 14340 0
raid1 18016 2
md_mod 67068 3 raid1
dm_round_robin 2656 1
dm_emc 4384 0
dm_multipath 14920 3 dm_round_robin,dm_emc
dm_mod 46184 18 dm_mirror,dm_log,dm_snapshot,dm_multipath
ide_cd_mod 27652 0
cdrom 30176 1 ide_cd_mod
sd_mod 22200 2
usbhid 35904 0
hid 33184 1 usbhid
ff_memless 4392 1 usbhid
ata_generic 4676 0
piix 6568 0 [permanent]
ata_piix 14180 4
libata 140416 2 ata_generic,ata_piix
scsi_mod 129324 2 sd_mod,libata
dock 8304 1 libata
uhci_hcd 18672 0
floppy 47748 0
ehci_hcd 28396 0
ide_pci_generic 3908 0 [permanent]
ide_core 96136 3 ide_cd_mod,piix,ide_pci_generic
usbcore 118224 4 usbhid,uhci_hcd,ehci_hcd
r8169 23684 0
thermal 15228 0
processor 32544 1 thermal
fan 4164 0
thermal_sys 10856 4 video,thermal,processor,fan
-- /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = update-grub
postrm_hook = update-grub
-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=y
KEYMAP=n
BOOT=local
DEVICE=eth0
NFSROOT=auto
-- System Information:
Debian Release: 5.0.2
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-2-686 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages initramfs-tools depends on:
ii cpio 2.9-13 GNU cpio -- a program to manage ar
ii findutils 4.4.0-2 utilities for finding files--find,
ii klibc-utils 1.5.12-2 small utilities built with klibc f
ii module-init-tools 3.4-1 tools for managing Linux kernel mo
ii udev 0.125-7+lenny1 /dev/ and hotplug management daemo
Versions of packages initramfs-tools recommends:
ii busybox 1:1.10.2-2 Tiny utilities for small and embed
initramfs-tools suggests no packages.
-- no debconf information
Reply to: