Using mdadm instead of dmraid for BIOS-RAID root volume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a number of systems with Ubuntu 12.04 and Intel BIOS-RAID mirrored pairs for the boot disk. These come up as dmraid, with the root filesystem on /dev/mapper/isw_XXXXXXXXXX_Volume0p1.

I would like to convert them to use mdadm instead (so for example I can monitor them with /proc/mdstat)

The mdadm version is 3.2.5, and the manpage says that dff and imsm metadata is supported. mdadm --examine confirms this:

|# mdadm --examine /dev/sda
/dev/sda:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.1.00
    Orig Family : 8bc6b015
         Family : 8bc6b015
     Generation : 00000010
     Attributes : All supported
           UUID : 2ff8e106:XXXXXXXX:XXXXXXXX:XXXXXXXX
       Checksum : b92d117e correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk00 Serial : S14CNEAXXXXXXXX
          State : active
             Id : 00000000
    Usable Size : 234435342 (111.79 GiB 120.03 GB)

[Volume0]:
           UUID : a7fb0d20:XXXXXXXX:XXXXXXXX:XXXXXXXX
     RAID Level : 1
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 0
     Array Size : 222715904 (106.20 GiB 114.03 GB)
   Per Dev Size : 222716168 (106.20 GiB 114.03 GB)
  Sector Offset : 0
    Num Stripes : 869984
     Chunk Size : 64 KiB
       Reserved : 0
  Migrate State : idle
      Map State : uninitialized
    Dirty State : clean

  Disk01 Serial : S14CNEAXXXXXXXX
          State : active
             Id : 00000001
    Usable Size : 234435342 (111.79 GiB 120.03 GB)

|(ditto for /dev/sdb)

Since this machine is going to need a reinstall for an unrelated reason anyway, I thought as an experiment I'd first try to convert it to use mdadm at boot.

What I did was:

1. apt-get remove dmraid; apt-get autoremove

This gets rid of:

/lib/udev/rules.d/97-dmraid.rules
/usr/share/initramfs-tools/scripts/local-top/dmraid
/usr/share/initramfs-tools/hooks/dmraid

but we still have:

/lib/udev/rules.d/64-md-raid.rules
/usr/share/initramfs-tools/hooks/mdadm
/usr/share/initramfs-tools/scripts/mdadm-functions
/usr/share/initramfs-tools/scripts/local-premount/mdadm
/usr/share/initramfs-tools/scripts/init-premount/mdadm

2. /usr/share/mdadm/mkconf >/etc/mdadm/mdadm.conf

ARRAY metadata=imsm UUID=2ff8...
ARRAY /dev/md/Volume0 container=2ff8... member=0 UUID=...


However, after a reboot, the machine came up with /dev/sdb1 as its root. I was hoping for /dev/md/Volume0

3. Reboot with "raid=autodetect md=1"

No difference, although it did come up with /dev/sda1 as its root (possibly coincidental change)

4. After a few more failed experiments with kernel command line options, I tried to put it back using "apt-get install dmraid". However after that, further boots failed - the kernel panicked because it couldn't find the root partition with the given UUID. I guess this means that neither dmraid nor mdadm was able to assemble the volume.

The screen shows:

md: Scanned 0 and added 0 devices.
md: autorun ..
md: ... autorun DONE.
VFS: Cannot open root device "UUID=..." or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions
(then shows sda, sda1, sdb, sdb1 and a backtrace)

Unfortunately I cannot scroll back to see previous lines. I *can* boot the system in a crippled way with root=/dev/sda1 though.

Back at the shell, it looks like the dmraid volume is still present:

# dmraid -r
/dev/sdb: isw, "isw_XXXXXXXXXX", GROUP, ok, 234441646 sectors, data@ 0
/dev/sda: isw, "isw_XXXXXXXXXX", GROUP, ok, 234441646 sectors, data@ 0
# dmraid -s
*** Group superset isw_XXXXXXXXXX
--> Subset
name   : isw_XXXXXXXXXX_Volume0
size   : 222716160
stride : 128
type   : mirror
status : ok
subsets: 0
devs   : 2
spares : 0
# ls /dev/mapper
control
#

The machine is probably toast anyway, as it has written to /dev/sdb1 and /dev/sda1 independently.

Anyway, I'm not so worried about having broken this machine, as it needed a reinstall anyway, but I do wonder what would have been the correct way to get mdraid instead of dmraid at boot time for this root volume?

Thanks,

Brian.
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux