How can I make mdadm auto-assemble RAID after each boot?
Solution 1
NB: You either need to be logged in as root, or use sudo to do all this...
- Use your favourite editor to create or edit /etc/mdadm/mdadm.conf file as follows:
If the file does not even exist, paste the following into the new, empty file:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
Save the file
Run the following command to add a reference to your array config at the end of the file:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
This should add a line like the following to the end of mdadm.conf:
ARRAY /dev/md0 level=raid5 num-devices=3 metadata=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c
If the mdadm command has added any other stuff above the ARRAY line, remove it. For example, on one of my machines, the command returns 'mdadm: metadata format 00.90 unknown, ignored.' before the ARRAY line.
Your array should now auto-build on boot and thus you can add an entry to /etc/fstab to mount it (if it's not already there)
Solution 2
I realize this is an older question, but I had a frustrating time with this on the 32-bit version of Ubuntu Server 12.04.
Running mdadm --detail --scan >> /etc/mdadm/mdadm.conf
appended the line
ARRAY /dev/md0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e
After a reboot I could never see /dev/md0. Running the mdadm --detail --scan
again (without putting the result in a file) I would see
ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e
and manually mounting /dev/md/ubuntu:0
would work. In the end, that was what I put in the fstab file too.
I am not sure what I got wrong, if this is how it works in Ubuntu 12.04, or if this is a bad practice. Just wanted to share what worked for me.
Solution 3
On Debian wheezy one more step is required:
in /etc/default/mdadm
set autostart from false to true
#AUTOSTART: # should mdadm start arrays listed in /etc/mdadm/mdadm.conf automatically # during boot? AUTOSTART=true
Also I had to use mdadm -Es >>/etc/mdadm/mdadm.conf
instead of the --scan
option, as that did not work for me.
Solution 4
sudo mdadm -Es >> /etc/mdadm/mdadm.conf
Now edit lines added to /etc/mdadm/mdadm.conf in the following way. Delete everything, but the basic parts. It should look like
ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643
Note: you can choose X in mdX to your convenience.
Now reboot
sudo update-initramfs -u
sudo reboot
EDIT: command corrected.
Related videos on Youtube
BreakPhreak
Updated on September 18, 2022Comments
-
BreakPhreak almost 2 years
I successfully created a RAID (mirroring) by utilizing
mdadm
. However, I must run the following commands after each boot:mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from mdadm --assemble --scan // to start /dev/md0
What am I doing wrong/why do I need to run these commands at boot? What is the right way to auto-start RAID with each (re)boot?
-
Pablo Montepagano over 11 yearsI would maybe add: you should also update your initramfs with
update-initramfs -u
-
Lennart Rolland over 10 yearsmdadm --detail --scan does not print anything on my system, although I know for sure that I have two partitions that are part of a raid0 (mirror). Any general advice on this is welcome.
-
slm over 9 years@LennartRolland - try
mdadm -Es
instead. -
gorn about 9 yearsI wrote thi because Linker3000's answer did not work for me.
-
Rodney about 9 yearsNote that uname -r in the above is supposed to be in back-ticks but I can't figure out how to escape them so they're printed here...
-
Christophe De Troyer over 8 yearsSame "problem" here. Not sure if it is a problem, though..
-
nwaltham over 8 yearsWhich version of raspbian was this? I had it working fine on Wheezy, but ugrading to Jessie broke the assemble on boot.
-
gorn about 8 yearsthis did not work for me, I had to do
grub-install /dev/sda
to make it work (replace sda for anything appropriate for you) -
Pryftan over 4 yearsAlternatively you can just use the kernel option:
md.auto=1
... I haven't actually tested this thoroughly but supposedly it detects them and assembles them (or at least tries to do so). But then kernel.org/doc/html/v4.15/admin-guide/md.html is a bit ambiguous on that: When md is compiled into the kernel (not as module), partitions of type 0xfd are scanned and automatically assembled into RAID arrays. [...] As of kernel 2.6.9, only drives with a type 0 superblock can be autodetected and run at boot time. And it doesn't refer to md.auto (or whatever it was) so I'm not sure now. -
Alexander Pacha almost 4 yearsJust another sidenote, which took us two days to figure out: Disks must have a UUID before creating the RAID, otherwise the created IDs will change and the RAID won't be assembled. So we 1.) formated the individual disks, 2.) created the mdadm raid 3.) formatted the raid 4.) mounted the raid 5.) configured the raid to auto-mount it on startup
-
Soth about 3 yearsOn reboot my device had changed from
/dev/md0
to/dev/md127