NixOS 23.11系统中删除分区表与fstab后如何恢复RAID 5阵列?
NixOS 23.11系统中删除分区表与fstab后如何恢复RAID 5阵列?
别担心,RAID5的元数据是存在每个成员磁盘的分区里的,你启动盘的分区表删除不影响RAID本身,只要成员盘的分区没被格式化,就能恢复回来。我给你一步步来操作:
让系统识别RAID阵列
首先用mdadm扫描所有磁盘上的RAID元数据,看看能不能找到你的阵列:sudo mdadm --examine --scan你lsblk里已经看到sda1是
linux_raid_member类型,UUID是4ef7e3d8-79e0-a3ac-fb9b-b2bd953f2c83,这个命令应该会输出对应这个UUID的RAID阵列信息,比如类似ARRAY /dev/md0 metadata=1.2 name=B450M:0 UUID=4ef7e3d8-79e0-a3ac-fb9b-b2bd953f2c83。组装RAID阵列
如果扫描到了阵列,就把所有成员盘的RAID分区组装起来(注意你lsblk里sdb没显示分区,大概率是没列全,先用fdisk -l或者lsblk确认sdb的RAID分区,比如应该是sdb1):sudo mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1要是扫描没自动识别到,就加
--force参数强制组装:sudo mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1组装完用这个命令确认阵列状态,确保是正常运行的RAID5:
mdadm --detail /dev/md0配置NixOS自动挂载RAID
NixOS是声明式配置,光临时挂载没用,得写到系统配置里才会永久生效:- 先拿到RAID阵列的文件系统UUID:
输出里会有类似blkid /dev/md0/dev/md0: UUID="xxxxx-xxxxx" TYPE="ext4"的内容,记下这个UUID和文件系统类型。 - 编辑你的NixOS配置文件(一般是
/etc/nixos/configuration.nix),添加挂载和mdadm服务配置:# 启用mdadm服务,让系统自动组装RAID services.mdadm.enable = true; services.mdadm.arrays = [ { name = "md0"; devices = [ "/dev/sda1" "/dev/sdb1" ]; # 替换成你的所有RAID成员分区 level = 5; } ]; # 挂载RAID阵列到指定目录,比如/mnt/raid fileSystems."/mnt/raid" = { device = "UUID=xxxxx-xxxxx"; # 替换成刚才拿到的文件系统UUID fsType = "ext4"; # 替换成你的实际文件系统类型 }; - 最后应用配置:
sudo nixos-rebuild switch
- 先拿到RAID阵列的文件系统UUID:
可选:检查文件系统完整性
如果你担心重装过程中文件系统有问题,可以先卸载阵列(sudo umount /mnt/raid),然后运行文件系统检查:sudo fsck /dev/md0
这样操作完,你的RAID5阵列应该就能正常挂载,并且下次开机也会自动识别挂载了。
备注:内容来源于stack exchange,提问作者randouser
相关产品推荐
相关产品推荐

