**
在现有系统上实现软RAID1 (CentOS 7.6-GRUB2)
本文介绍如何在现有系统上加装一块硬盘,实现软RAID1,无论哪块硬盘损坏,系统都能启动。
1. 现有系统
现有系统为CentOS 7.6,配有一块硬盘/dev/sda,/dev/sda安装有正在运行的系统,其分区信息如下:
/dev/sda1 /boot Ext2
/dev/sda2 / Ext4
/dev/sda3 /home Ext4
/dev/sda4 保留
/dev/sda5 swap Ext4
准备加装一块相同的硬盘/dev/sdb。下面是实现RAID1之后的分区信息:
/dev/md1 /dev/sda1 /dev/sdb1 /boot Ext4
/dev/md2 /dev/sda2 /dev/sdb2 / Ext4
/dev/md3 /dev/sda3 /dev/sdb3 /home Ext4
/dev/sda4 /dev/sdb4 保留
/dev/md5 /dev/sda5 /dev/sdb5 swap Ext4
2. 准备/dev/sdb
先在/dev/sdb上创建RAID1,再把/dev/sda的内容拷贝到RAID1,最后将/dev/sda加到RAID1阵列。
- 将/dev/sda的分区表拷贝到/dev/sdb,保证两块硬盘布局完全相同。
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
- 将/dev/sdb的分区类型改为Linux raid autodetect
fdisk /dev/sdb
Command (m for help): <-- p
Command (m for help): <-- t
Partition number (1-4): <-- 1,2,3,5
Hex code (type L to list codes): <-- L
Hex code (type L to list codes): <-- fd
Command (m for help): <-- wq
- 清空/dev/sdb
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3
mdadm --zero-superblock /dev/sdb5
如果/dev/sdbX以前没有安装过RAID,会显示如下错误信息:
[root@localhost ~]# mdadm --zero-superblock /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdb1
[root@localhost ~]# mdadm --zero-superblock /dev/sdb2
mdadm: Unrecognised md component device - /dev/sdb2
[root@localhost ~]# mdadm --zero-superblock /dev/sdb3
mdadm: Unrecognised md component device - /dev/sdb3
[root@localhost ~]# mdadm --zero-superblock /dev/sdb5
mdadm: Unrecognised md component device - /dev/sdb5
否则不显示任何信息。
3. 在/dev/sdb上创建RAID
-
在/dev/sdb上创建RAID阵列,此时还不能加入/dev/sda,命令如下:
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md2 --level=1 --r