Linux mdadm does not assemble array, but recreation of array does it

Maybe i'm not very clear in the title. When i'm trying to assemble my raid1 array with mdadm:

sudo mdadm --assemble /dev/md0 /dev/sdc /dev/sdd

It tells me that

mdadm: Cannot assemble mbr metadata on /dev/sdc
mdadm: /dev/sdc has no superblock - assembly aborted

If i reorder devices in command:

sudo mdadm --assemble /dev/md0 /dev/sdd /dev/sdc

It tells the same for sdd:

mdadm: Cannot assemble mbr metadata on /dev/sdd
mdadm: /dev/sdd has no superblock - assembly aborted

Here's some info about drives:

➜ ~ sudo mdadm --misc -E /dev/sdc
/dev/sdc: MBR Magic : aa55
Partition[0] : 3907029167 sectors at 1 (type ee)
➜ ~ sudo mdadm --misc -E /dev/sdd
/dev/sdd: MBR Magic : aa55
Partition[0] : 3907029167 sectors at 1 (type ee)

But! When i'm recreating array with

➜ ~ sudo mdadm --create /dev/md0 -n 2 -l 1 /dev/sdc /dev/sdd
mdadm: /dev/sdc appears to be part of a raid array: level=raid0 devices=0 ctime=Thu Jan 1 07:00:00 1970
mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array
mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90
mdadm: /dev/sdd appears to be part of a raid array: level=raid0 devices=0 ctime=Thu Jan 1 07:00:00 1970
mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

Instead of making the new array, it starts my array!

➜ ~ ls -l /dev/mapper/MisakaMirror-alldata
lrwxrwxrwx 1 root root 7 май 19 01:48 /dev/mapper/MisakaMirror-alldata -> ../dm-2

But i want to achieve this with

mdadm --assemble

To do it automatically. Thanks.

1 Answer

Resolution

𝕎𝔸ℝℕ𝕀ℕ𝔾: The instructions below delete your existing RAID setup and create a new md RAID 1 array with two entire block devices, /dev/sdc and /dev/sdd.

  1. Ensure that your kernel has the RAID 1 md module loaded with either of these commands:

    lsmod | grep 'raid1\s'
    grep 'Personalities : .*\[raid1\]' /proc/mdstat
  2. If you do not get an output above, load the RAID 1 md module:

    sudo modprobe raid1
  3. Make md forget your existing corrupt array by zapping the disks:

    sudo sgdisk -Z /dev/sdc
    sudo sgdisk -Z /dev/sdd

    Note that mdadm --zero-superblock /dev/sd{c,d} might not operate if mdadm doesn't detect an existing array properly.

  4. Recreate your RAID 1 array using the entire devices /dev/sdc and /dev/sdd:

    sudo mdadm --create /dev/md0 -n 2 -l 1 /dev/sdc /dev/sdd
  5. To make the new array assemble automatically, add the contents of the following command to the bottom of your /etc/mdadm/mdadm.conf file:

    sudo mdadm --detail --scan

    See also: How can I make mdadm auto-assemble RAID after each boot?


Explanation

Your two mdadm --misc -E commands reveal that mdadm is not seeing the metadata for your RAID devices. Your example:

➜ ~ sudo mdadm --misc -E /dev/sdc
/dev/sdc: MBR Magic : aa55
Partition[0] : 3907029167 sectors at 1 (type ee)

It looks like /dev/sdc has a partition /dev/sdc1. If you're using a whole device as the md RAID device, you would not have /dev/sdc1. (The same goes for your /dev/sdd.)

Furthermore, when you try recreating the array, mdadm detects this strange information:

mdadm: /dev/sdc appears to be part of a raid array: level=raid0 devices=0 ctime=Thu Jan 1 07:00:00 1970

You're trying to use RAID 1 with two devices today, but mdadm reports RAID 0 with no devices at epoch 0. This is clearly not right.

Maybe at some point you tried creating an array on /dev/sdc1 and /dev/sdd1 (the partitions) rather than on /dev/sdc and /dev/sdd (the entire devices), and the md superblocks got muddled while you struggled to figure out the issue.

For this reason, I believe that you should zap the disks and start over.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like