0

I'm trying to create a RAID0 from two identical hard disks but running into an error from mdadm when I try to create the array, mdadm: RUN_ARRAY failed: Invalid argument. Here's what I'm doing that leads up to the error:

The disks are /dev/sdc and /dev/sdg. I partitioned each disk with gdisk. This is the partition table print from gdisk (for /dev/sdc but similar for both disks):

Disk /dev/sdc: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 34188C22-446D-4BE5-9E25-A03A9603EC33
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       976773134   465.8 GiB   FD00  Linux RAID

Zero superblock on each disk:

# mdadm --zero-superblock /dev/sdc1
# mdadm --zero-superblock /dev/sdg1

Create the array:

# mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=2 /dev/md1 /dev/sdc1 /dev/sdg1

But mdadm reports errors:

mdadm: chunk size defaults to 512K
mdadm: RUN_ARRAY failed: Invalid argument

dmesg:

[2312487.125558] md: bind<sdc1>
[2312487.125786] md: bind<sdg1>
[2312487.128886] md: personality for level 0 is not loaded!
[2312487.128900] md: md1 stopped.
[2312487.128905] md: unbind<sdg1>
[2312487.157311] md: export_rdev(sdg1)
[2312487.157335] md: unbind<sdc1>
[2312487.190623] md: export_rdev(sdc1)

I do still end up with a device at /dev/md1 (doesn't seem like I can activate it) so in between attempts I remove it:

# mdadm --stop /dev/md1
# mdadm --remove /dev/md1

The only advice I can find online is:

If you receive an error, such as:

"mdadm: RUN_ARRAY failed: Invalid argument"

make sure your kernel supports (either via a module or by being directly compiled > in) the raid mode you are trying to utilize.

I'm using a 'stock' arch kernel and I believe it does support RAID0 but I don't know how to verify that.

If I check /proc/config.gz, it contains this line:

CONFIG_MD_RAID0=m

I'm not familiar with kernel configuration. Does that line confirm that my kernel has RAID0 support?

The system has a working RAID5 that was set up with mdadm.

Thoughts? Other info I should share?

1

CONFIG_MD_RAID0=m means your raid0 support is built as a module (m for module), and md: personality for level 0 is not loaded! says the module isn't loaded. To load it:

modprobe raid0

Then you should be able to create the array. Remember that you'll need to load the module every boot before assembling the array (you can and should have your boot scripts do this).

  • Thanks. Somehow my /lib/modules/ was missing the directory corresponding to uname -r. A reboot change my uname -r, automatically loaded the module and fixed this, so maybe my package manager deleted a directory it shouldn't have as part of a kernel update. – Praxeolitic Apr 4 '17 at 16:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.