How to swap hard drive for a software RAID
Let’s say you have a two-drive raid1 and you want to replace the first drive /dev/sda.
First, fail the first drive.
mdadm /dev/md0 -f /dev/sda1
Now you can swap the hard drive.
dmesg | tail
You should see something like:
[38197155.944373] ata10.00: configured for UDMA/133
[38197155.958437] sas: --- Exit sas_scsi_recover_host: busy: 0 failed: 0 tries: 1
[38197155.970003] scsi 6:0:3:0: Direct-Access ATA HITACHI HUA72105 GK6O PQ: 0 ANSI: 5
[38197155.995394] sd 6:0:3:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB)
[38197155.995657] sd 6:0:3:0: Attached scsi generic sg0 type 0
[38197156.035535] sd 6:0:3:0: [sda] Write Protect is off
[38197156.050778] sd 6:0:3:0: [sda] Mode Sense: 00 3a 00 00
[38197156.050841] sd 6:0:3:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[38197156.099496] sda: unknown partition table
[38197156.112711] sd 6:0:3:0: [sda] Attached SCSI disk
Now let’s create the file system on /dev/sda.
First, get the partition table from /dev/sdb:
sfdisk -d /dev/sdb > test
Opens the file in vim and replace sdb
into sda
.
vim test
The file should be like this:
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start= 2048, size=976771072, Id=fd
/dev/sda2 : start= 0, size= 0, Id= 0
/dev/sda3 : start= 0, size= 0, Id= 0
/dev/sda4 : start= 0, size= 0, Id= 0
Now write this file to sda.
cat test | sfdisk /dev/sda
Okay, let’s add this to the raid
mdadm /dev/md0 -a /dev/sda1
Check the raid status:
cat /proc/mdstat
Grub:
grub-install --recheck --no-floppy /dev/sda
If you got “grub-install: command not found” use “grub2-install”.
The raid would start rebuilding on the newly added drive. Use cat /proc/mdstat
to monitor the process.