How to repair a Software RAID in easy way

You may please use the following  steps to repair a software raid. Let us assume the server have two HDD’s /dev/sda and /dev/sdb  .  The  second HDD  got corrupted and replaced. Now  you need to rebuild the array and start sync process.

step 1 :  Build the partition table same as the first disk,

# sfdisk -d /dev/sda > partition.txt
# replace 'sda' 'sdb' -- partition.txt
# sfdisk /dev/sdb < partition.txt --force

Now the new HDD /dev/sdb have the same partition  scheme. Let us check the current RAID status from  /proc/mdstat

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sda1[0]
20971456 blocks [2/1] [U_]

md2 : active raid1 sda2[0]
955260864 blocks [2/1] [U_]

unused devices: <none>

See here  there are two raid partitions /dev/md1   using   sda1   as raid1  and  /dev/md2  using sda2 as raid1 too. Raid one need two partitions . So let us add the  new partitions to the raid as follows,

step : 2 – Add new HDD’s to software raid ,

# mdadm /dev/md1 -a /dev/sdb1
# mdadm /dev/md2 -a /dev/sdb2

Now let us again check the status,

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[2] sda1[0]
20971456 blocks [2/1] [U_]
[=================>...]  recovery = 88.8% (18625152/20971456) finish=0.5min speed=70875K/sec

md2 : active raid1 sdb2[2] sda2[0]
955260864 blocks [2/1] [U_]
resync=DELAYED

unused devices: <none>

Now you can see that the mirroring started.