You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NixOS 23.11系统中删除分区表与fstab后如何恢复RAID 5阵列?

NixOS 23.11系统中删除分区表与fstab后如何恢复RAID 5阵列?

别担心,RAID5的元数据是存在每个成员磁盘的分区里的,你启动盘的分区表删除不影响RAID本身,只要成员盘的分区没被格式化,就能恢复回来。我给你一步步来操作:

  1. 让系统识别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。

  2. 组装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
    
  3. 配置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
      
  4. 可选:检查文件系统完整性
    如果你担心重装过程中文件系统有问题,可以先卸载阵列(sudo umount /mnt/raid),然后运行文件系统检查:

    sudo fsck /dev/md0
    

这样操作完,你的RAID5阵列应该就能正常挂载,并且下次开机也会自动识别挂载了。

备注:内容来源于stack exchange,提问作者randouser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:43:16