How to make software RAID in Linux

Quick How To Guide

Add new partition on the first physical disc:

 fdisk /dev/sda

Using the same option add new partition on the second physical disc:

 fdisk /dev/sdb

Create new RAID volume md0 type of RAID1 (raid level1):

 mdadm --create /dev/md0 --level=1 --raiddevices=2 /dev/sda7 /dev/sdb2

Check and verify addition:

 watch cat /proc/mdstat

Format the new RAID volume to ext3 filesystem:

 mkfs -t ext3 /dev/md0

Verify created RAID:

 mdadm --query /dev/md0

For more details enter:

 mdadm --query --detail /dev/md0

Create directory for mounting RAID volume:

 mkdir /mirror

Mount RAID volume md0:

 mount /dev/md0 /mirror


 df -hT

Let's try to create directory /etc and file numbers.txt:

 cp –a /etc /mirror
 seq 10000000 > /mirror/cisla.txt


 ls –ltr /mirror
 tail /mirror/subor.txt

You can anytime can monitor volume [UU]:

 cat /proc/mdstat

We need to configure automatic mounting volume md0 after system starts:

 cat /etc/mtab | grep md0
 joe /etc/fstab

Append next lines at the end of file /etc/fstab:

/dev/md0 /mirror ext3 defaults 0 0

Append next lines at the end of file /etc/mdadm.conf. If any error occured, system will send a email about it.

DEVICE /dev/sd[a-z]*
ARRAY /dev/md0 level=raid1 devices=/dev/sda7,/dev/sdb2
MAILADDR root@localhost

Turn the monitoring service on:

 service mdmonitor start

Try to make disc down:

 yes “We love linux.“ > /mirror/linux.txt

If you pull out disc during yes command you should get email with error message:


We can see one disc is not available [_U]:

 cat /proc/mdstat

Removing paritions that physicaly don't exist:

 mdadm /dev/md0 –r detached

Removing paritions that physicaly exist:

 mdadm --manage /dev/md0 --remove /dev/sdb2

Connect physical disc and monitor how it is being synchronized:

 mdadm --manage /dev/md0 --add /dev/sdb2
 watch cat /proc/mdstat

Test RAID functionality. We should see "active raid1":

 cat /proc/mdstat

verify RAID:

 mdadm --detail /dev/md0

Disable RAID:

 umount /dev/md0
 mdadm --manage --stop /dev/md0

Test RAID functionality again, we should not see "active raid1":

 cat /proc/mdstat

RAID: removing

Unmount mounted partition:

 umount /mirror

Stop RAID (to start it again use --assemble --scan):

 mdadm --stop /dev/md0

Remove RAID:

 mdadm --remove /dev/md0

A RAID partitions are readable, we can mount it:

 mount /dev/sdb2 /mnt

We should see details about RAID:

 ls –ltrh /mnt

Unmount RAID partition:

 umount /dev/sdb2

Was this information helpful to you? You have the power to keep it alive.
Each donated € will be spent on running and expanding this page about UNIX Shell.