我最近自己组装了一台机甲A4,默认安装了2块2T的SSD,然后我发现我有2块1T的2.5寸机械盘,于是把这2块盘又塞进了机箱,想到盘分散效果也不好,于是打算用这2个1TB的盘组成raid1。

组装过程比较顺利,我使用的命令是:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

查看到盘后:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

输入Y ,可以通过:

cat /proc/mdstat

去查看进度,如果到100%后可以开始格式化,挂载和更新系统标志:

sudo mkfs.ext4 -F /dev/md0
sudo mkdir -p /mnt/md0
sudo mount /dev/md0 /mnt/md0
df -h -x devtmpfs -x tmpfs

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

关于组装raid的文章我觉得这一篇就写的比较好,可以参考:

https://cloud.tencent.com/developer/article/1346533

一切正常,最后把挂载信息写入 /etc/fstab也正常,但是我重启的时候发现电脑进不去,卡住,看了下日志问题是:

GPT header corruption has been detected,please check SATA mode setting in BIOS Setup,or you can use [ Boot Sector  (MBR/GPT) Recovery Policy ]  item under [Boot Configuration] page to recovery GPT header.Press F1 to run SETUP

于是我把【Boot Sector】,从User control 切换成了Auto Recovery, 能进入系统。

经过多次测试,确定是重启之后,/dev/md0 设备就直接消失了,也就是组建的raid在重启后并没有重新还原。

查了很久的资料,尝试过修改 /etc/mdadm/mdadm.conf 文件,在里面增加 ARRAY /dev/md0……的方法,但是并没有效果。

后来我感觉应该是和 GPT 分区表有关,先尝试了一个简单的方法,进 PE 把两块硬盘从 GPT 转成 MBR,然后重新创建 raid,重启后就没有消失了,但是这个简单的方法并不完美,因为 MBR 最大只支持 2TB 的硬盘。

这个问题主要原因是用于组阵列的硬盘没有正确清除原始的信息,导致磁盘被首先认作 GPT 磁盘而非 MDADM 成员。
解决方法也很简单,就是清除掉 GPT 分区表,即清除掉头部的数个扇区和尾部的数个扇区,就行了。
也可以先转换成 MBR (转换过程中会自动清除 GPT 分区表),然后再清除 MBR 分区表(第一个扇区)即可。
没有必要先分区再组阵列。

使用gdisK分区的时候需要指定格式:fd00

root@teamelchan:~# gdisk /dev/sda
Command (? for help): n
Partition number (1-128, default 1):
First sector (2048-3907029134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): p
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Model: ST2000DM001-1ER1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): F81E265F-2D02-864D-AF62-CEA1471CFF39
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 2048, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)

Number Start (sector) End (sector) Size Code Name
1
2048 3907029134 1.8 TiB FD00 Linux RAID

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

然后再用分区创建,而不是直接选择磁盘。

这样创建出来的raid就不会消失了。


扫码手机观看或分享: