The hardware is just fine, when I try to boot debian on same box, it loads all md arrays on boot, even if they aren't anywhere in configs and they can be mounted and I see rootfs of centos.
The problem as I see it is somewhere in initrd, this is init script in initrd, unfortunatelly I have no idea how nash works:
Code: Select all
#!/bin/nash
mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/urandom c 1 9
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/mem c 1 1
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
mknod /dev/fb0 c 29 0
/bin/fbi -f /etc/lat1-16.psfu -q /etc/background.png
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
echo "Loading ehci-hcd.ko module"
insmod /lib/ehci-hcd.ko
echo "Loading ohci-hcd.ko module"
insmod /lib/ohci-hcd.ko
echo "Loading uhci-hcd.ko module"
insmod /lib/uhci-hcd.ko
echo "Loading md-mod.ko module"
insmod /lib/md-mod.ko
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
echo "Loading sd_mod.ko module"
insmod /lib/sd_mod.ko
echo "Loading libata.ko module"
insmod /lib/libata.ko
echo "Loading ata_generic.ko module"
insmod /lib/ata_generic.ko
echo "Loading ata_piix.ko module"
insmod /lib/ata_piix.ko
echo "Loading pata_acpi.ko module"
insmod /lib/pata_acpi.ko
echo "Loading dm-mod.ko module"
insmod /lib/dm-mod.ko
echo "Loading dm-log.ko module"
insmod /lib/dm-log.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading scsi_dh.ko module"
insmod /lib/scsi_dh.ko
echo "Loading scsi_dh_alua.ko module"
insmod /lib/scsi_dh_alua.ko
echo "Loading scsi_dh_emc.ko module"
insmod /lib/scsi_dh_emc.ko
echo "Loading scsi_dh_hp_sw.ko module"
insmod /lib/scsi_dh_hp_sw.ko
echo "Loading scsi_dh_rdac.ko module"
insmod /lib/scsi_dh_rdac.ko
echo "Loading raid1.ko module"
insmod /lib/raid1.ko
echo Waiting for driver initialization.
stabilized --hash --interval 1000 /proc/scsi/scsi
mkblkdevs
echo "Scanning and configuring dmraid supported devices"
mdadm -vvAs # --auto=yes
echo "mdadm finished"
sleep 10
echo "trying recover by hand"
mdadm -A /dev/md0 /dev/sda2 /dev/sdb2
sleep 10
echo "raid autorun is here"
raidautorun /dev/md0
resume /var/swap/swap.001
sleep 10
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro /dev/md0
sleep 10
echo Mounting root filesystem.
mount /sysroot
sleep 10
echo Setting up other filesystems.
setuproot
sleep 10
echo Switching to new root and running init.
sleep 10
switchroot
The error I see during boot is simply that mdadm -As doesn't find anything, no /dev/md0 is created, raidautorun fail as well with /dev/md0 not found and when I tried to run mdadm /dev/md0 /dev/sda2 /dev/sdb2 I got error that /dev/sda2 doesn't exist. I don't even know which devices do exist, because when I did ls /dev in nash, it didn't print anything to output. How do I display contents of /dev in nash?
The disks are connected using AHCI, both sata and they are connected on motherboard in order which should make them sda sdb sdc where sda sdb are parts of array and sdc is debian recovery. When I boot to recovery, I see the disks in this order just fine. I have no idea how they look on centos because I don't get far enough to be able to examine the system.
Even if you don't know how to fix this issue I would be happy just to understand how to debug nash little bit. I would like to see contents of /dev, maybe it would help? Also being able to run autoscan on mdadm with direct feedback would be nice, is there a way to spawn a shell during boot directly from initrd?