How-to change the name of an MD device (mdadm)

Warning: Please make a backup before following any advise given here :-)

Option #1:

Edit /etc/mdadm.conf:

ARRAY /dev/md1 level=raid0 num-devices=2 UUID=d89d9d45:9a420812:c44c77eb:7ee19756 devices=/dev/sdb8,/dev/sda8

I just entered your own output and changed 127 to 1. Reboot and it should be md1 now.

Option #2:

If you don't have mdadm.conf, and want it to assemble to md1 automagically, you can do this:

mdadm has a concept of a "preferred minor". E.g. once a certain minor number is assigned to an array, and stored in the superblock, it will be used each time this array is auto-assembled. Verify this:

mdadm --detail /dev/md127

If it says "Preferred Minor : 127" this this is your problem. You need to update the preferred minor. How to do this:

You cannot just change the preferred minor. You need to boot into recovery or single user-mode if this is your root device, unmount the filesystem, after that:

mdadm --stop /dev/md127
mdadm --assemble --update=super-minor /dev/md1 /dev/sdb8 /dev/sda8

Then you'll have your md127 assembled as md1. And it should stay this way in the future too.

With 1.x arrays:

Newer arrays don't store a 'Preferred Minor' number and do not support "--update=super-minor". Instead they store a name which can be changed with:

mdadm --stop /dev/md127
mdadm --assemble --update=name --name=2 /dev/md1 /dev/sdb8 /dev/sda8

Or you can specify 'hostname:2' to keep everything consistent with other arrays (lookup the current name with --detail).


Just to add to haimg's excellent answer. It may happen that even with a mdadm.conf, the system (at least for Ubuntu) may still auto-assemble the arrays prior to reading mdadm.conf. So when it finds it it just ignores the arrays that have just been assembled anyway.

To account for that, run sudo update-initramfs -u to regenerate the proper initrd.

Relevant links: http://ubuntuforums.org/showthread.php?t=1764861%29%3a


None of the other answers worked for me but in Centos I used the following guide. The issue is that /etc/mdadm.conf is not really used at boot time and only gets updated when a new kernel is installed or initramfs is manually recreated. So essentially you just need:

dracut --force

source: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles