I've got a 3-disk RAID 5 array that was set up under Windows that I'd like to get working in Linux using mdadm. I've done some basic fakeraid stuff before, but this was set up with the Intel Matrix Storage utility in the BIOS, and it's not working like I expected.
Here's my disk setup:
/dev/sda - 32GB SSD, Windows boot drive.
/dev/sda1 - Windows system partition
/dev/sda2 - Windows C:, 29GB
/dev/sdb }
/dev/sdc } the RAID5 array: 3x500GB; contains one partition, a 1TB NTFS filesystem
/dev/sdd }
/dev/sde - 128GB SSD, Linux's drive
/dev/sde1 - /boot
/dev/sde2 - LVM PV
/dev/dm0 - /
/dev/dm1 - /home
/dev/dm2 - <swap>
So the first thing I did was run mdadm --assemble --scan
, which produced the following:
mdadm: /dev/sdd is identified as a member of /dev/md/imsm0, slot -1.
mdadm: /dev/sdc is identified as a member of /dev/md/imsm0, slot -1.
mdadm: /dev/sdb is identified as a member of /dev/md/imsm0, slot -1.
mdadm: added /dev/sdc to /dev/md/imsm0 as -1
mdadm: added /dev/sdb to /dev/md/imsm0 as -1
mdadm: added /dev/sdd to /dev/md/imsm0 as -1
mdadm: Container /dev/md/imsm0 has been assembled with 3 drives
So it found the IMSM info on the disks just fine and assembled a container:
# mdadm --examine /dev/md/imsm0
/dev/md/imsm0:
Magic : Intel Raid ISM Cfg Sig.
Version : 1.2.02
Orig Family : ee19d190
Family : ee19d190
Generation : 0009ab28
UUID : ab31031b:2d9f8489:5d87a6c4:e87e3826
Checksum : f09a3edc correct
MPB Sectors : 2
Disks : 3
RAID Devices : 1
Disk00 Serial : 3PM1DZBD
State : active
Id : 00010000
Usable Size : 976768654 (465.76 GiB 500.11 GB)
[NMWVolume]:
UUID : c192a859:14874bab:06ca8af9:d3e8b52e
RAID Level : 5
Members : 3
This Slot : 0
Array Size : 1953536000 (931.52 GiB 1000.21 GB)
Per Dev Size : 976768264 (465.76 GiB 500.11 GB)
Sector Offset : 0
Num Stripes : 7631000
Chunk Size : 64 KiB
Reserved : 0
Migrate State : idle
Map State : normal
Dirty State : clean
Disk01 Serial : 3PM222TL
State : active
Id : 00020000
Usable Size : 976768654 (465.76 GiB 500.11 GB)
Disk02 Serial : 3PM22GFQ
State : active
Id : 00030000
Usable Size : 976768654 (465.76 GiB 500.11 GB)
It shows the Raid5 volume, "NMWVolume" in there, but how do I get to it? That container device doesn't do me anything. I can't read anything off it, i.e. fdisk /dev/md/imsm0
just returns Unable to read /dev/md/imsm0
.
If I try to run mdadm --create --verbose --level=5 --raid-devices=3 --chunk=64 --auto=mdp /dev/md0 /dev/sd[bcd]
I get these errors:
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: super1.x cannot open /dev/sdb: Device or resource busy
mdadm: not enough space after merge (0 < 0)
mdadm: device /dev/sdb not suitable for any style of array
Replacing /dev/sd[bcd]
with /dev/md/imsm0
gives the error mdadm: not enough devices with space to create array.
.
I tried stopping the /dev/md/imsm0
array and re-running the mdadm --create
command with the sd[bcd] drives, and it gives me this:
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdb appears to be part of a raid array:
level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdc appears to be part of a raid array:
level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: layout defaults to left-symmetric
mdadm: /dev/sdd appears to be part of a raid array:
level=container devices=0 ctime=Wed Dec 31 18:00:00 1969
mdadm: partition table exists on /dev/sdd but will be lost or
meaningless after creating array
mdadm: size set to 488385408K
Continue creating array? ^C
So I'm not doing that...
I'm out of ideas. How do I assemble this array?
Ok, silly me. I figured it out.
After running
mdadm --assemble --scan
which finds and assembles the container, runningmdadm -I /dev/md/imsm0
assembles the arrays inside the container. D'oh!/dev/md126p1
has my RAID5'd 1TB NTFS volume.