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

重启后恢复并挂载Raid-1阵列(md1)的技术咨询

重启后恢复并挂载Raid-1阵列(md1)的技术咨询

问题描述

我之前用标准的mdadm流程给两块硬盘(sde和sdf)创建了Raid-1阵列,命名为md1,挂载到了/mnt/storage。但重启后md1就找不到了,不过/mnt/plex的Raid-5阵列工作正常。我想知道是阵列丢了,还是只需要重新关联分区到正确的挂载点?

以下是相关命令输出:

lsblk 输出

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0         7:0    0  63.4M  1 loop  /snap/core20/1974
loop1         7:1    0  63.5M  1 loop  /snap/core20/2015
loop2         7:2    0  40.8M  1 loop  /snap/snapd/19993
loop3         7:3    0 111.9M  1 loop  /snap/lxd/24322
loop4         7:4    0  40.8M  1 loop  /snap/snapd/20092
sda           8:0    1   7.3T  0 disk
└─md0         9:0    0  21.8T  0 raid5 /mnt/plex
sdb           8:16   1   7.3T  0 disk
└─md0         9:0    0  21.8T  0 raid5 /mnt/plex
sdc           8:32   1   7.3T  0 disk
└─md0         9:0    0  21.8T  0 raid5 /mnt/plex
sdd           8:48   1   7.3T  0 disk
└─md0         9:0    0  21.8T  0 raid5 /mnt/plex
sde           8:64   0   3.6T  0 disk
sdf           8:80   0   3.6T  0 disk
nvme0n1     259:0    0 931.5G  0 disk
├─nvme0n1p1 259:1    0     1G  0 part  /boot/efi
└─nvme0n1p2 259:2    0 930.5G  0 part  /

blkid 输出

/dev/nvme0n1p1: UUID="255C-50C9" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="26565297-8615-4534-88b8-a160ab111fe4"
/dev/nvme0n1p2: UUID="ac32d63a-e8dc-4f58-b677-507491ed46de" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="25fa09fa-6781-49bf-927c-89e721f71154"
/dev/sdd: UUID="8051a9fa-3272-6a40-3950-5897a2b600f4" UUID_SUB="cb838ac3-6c2a-bfb0-fd0d-f7c63c447aa3" LABEL="tron:0" TYPE="linux_raid_member"
/dev/sdb: UUID="8051a9fa-3272-6a40-3950-5897a2b600f4" UUID_SUB="e4209087-7804-1e66-c3d2-dfef0f898b73" LABEL="tron:0" TYPE="linux_raid_member"
/dev/md0: UUID="f81c3ae4-363f-453a-ab49-1e716b27fc3b" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sdc: UUID="8051a9fa-3272-6a40-3950-5897a2b600f4" UUID_SUB="f8da02fe-22e3-6f55-880d-c1d52c78167e" LABEL="tron:0" TYPE="linux_raid_member"
/dev/sda: UUID="8051a9fa-3272-6a40-3950-5897a2b600f4" UUID_SUB="d6bfc2f7-056d-441a-023f-25d73804c456" LABEL="tron:0" TYPE="linux_raid_member"
/dev/loop1: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop0: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/sdf: PTUUID="e6979b33-6f82-11ea-96f0-0026b98cb28a" PTTYPE="gpt"
/dev/sde: PTUUID="e6a40000-6f82-11ea-96f0-0026b98cb28a" PTTYPE="gpt"

/etc/fstab 内容

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p2 during curtin installation
/dev/disk/by-uuid/ac32d63a-e8dc-4f58-b677-507491ed46de / ext4 defaults 0 1
# /boot/efi was on /dev/nvme0n1p1 during curtin installation
/dev/disk/by-uuid/255C-50C9 /boot/efi vfat defaults 0 1
/swap.img       none    swap    sw      0       0
/dev/md0 /mnt/plex ext4 defaults,nofail,discard 0 0
#UUID=489c654c-58e8-4187-b478-b37bc6af81f9 /mnt/storage auto defaults,x-parent=f87a9a2f:b87b822b:60dc9e96:9d59d84f 0 0
#UUID=489c654c-58e8-4187-b478-b37bc6af81f9 /mnt/storage auto defaults,x-parent=f87a9a2f:b87b822b:60dc9e96:9d59d84f 0 0

注:我把最后两行注释掉了,因为之前会导致启动超时,注释后就不卡了,但这应该是问题的一部分。如果不注释的话,会出现“timed out waiting for device”的错误。


解决方案

先别慌,你的Raid-1阵列大概率没丢,只是重启后系统没自动识别并组装它而已,咱们一步步来恢复:

1. 检查硬盘上的Raid元数据

首先确认sde和sdf上是否还保留着Raid-1的元数据,运行以下命令:

mdadm --examine /dev/sde /dev/sdf

如果输出里能看到Raid相关的信息(比如Raid级别、阵列UUID等),说明阵列数据还在,只是没被组装。

2. 手动组装Raid-1阵列

如果上面的命令确认有元数据,就手动组装阵列:

mdadm --assemble /dev/md1 /dev/sde /dev/sdf

执行完后,再用lsblk或者mdadm --detail /dev/md1检查一下,应该能看到md1已经存在了。

3. 临时挂载阵列验证

组装成功后,先临时挂载到/mnt/storage,确认数据没问题:

mount /dev/md1 /mnt/storage

然后可以进入/mnt/storage看看文件是否都在,确认阵列正常工作。

4. 配置系统重启时自动组装阵列

为了避免下次重启又出现同样的问题,需要把阵列信息保存到mdadm的配置文件里:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

这样系统启动时,mdadm会自动扫描并组装这个阵列。

5. 修复fstab配置,实现自动挂载

接下来修正/etc/fstab里的配置,首先获取md1的正确UUID:

blkid /dev/md1

找到输出里的UUID字段,比如类似UUID="xxxx-xxxx"的内容。

然后打开/etc/fstab,把之前注释的两行替换成正确的配置(把下面的xxx-xxxx换成你实际的UUID):

UUID=xxx-xxxx /mnt/storage ext4 defaults,nofail 0 0

这里用defaults,nofail参数,nofail可以避免阵列没组装成功时导致系统启动超时,和你之前解决的问题对应上。

6. 验证配置并重启测试

最后运行以下命令,验证fstab配置是否正确:

mount -a

如果没有报错,说明配置没问题,现在可以重启系统,看看md1是否会自动组装并挂载到/mnt/storage了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 13:34:31