RAID5掉盘,恢复过程另一块硬盘出现问题处理过程

一开始故障的是sdd,我更换上去了,恢复过程我还使用迅雷下载作死,大家千万别学我。
下面是第二块硬盘有问题后RAID启动失败了。
- 阵列缺少 slot 0 和 slot 2 的设备
- 当前只有 slot 1 (/dev/sdc1) 和 slot 3 (/dev/sde1) 是活跃成员
- /dev/sdd1 被识别为备用设备 (spare, slot -1)
- 阵列无法启动因为活跃设备数量不足

fdisk -l

根据最新的 cat /proc/mdstat
和 fdisk -l
信息,你的 RAID5 阵列 /dev/md0
目前处于 inactive(非活动) 状态,并且所有成员盘(sdc1
、sdd1
、sde1
)都被标记为 spare(备用盘),这意味着 RAID 无法自动启动。
关键发现
- RAID5 原本是 4 盘阵列(
raid-devices=4
),但现在只有 3 盘在线:
/dev/sdc1
(2.7TB)
/dev/sdd1
(1.8TB)
/dev/sde1
(1.8TB)
- 缺少第 4 盘(可能是
/dev/sdb1
?)
/dev/sdb1
存在但未被加入 RAID(fdisk -l
显示它是 Linux RAID 类型)。
首先检查阵列详细信息:
root@NAS:~# mdadm --examine /dev/sd[cde]1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
Name : NAS:0 (local to host NAS)
Creation Time : Tue Dec 17 23:56:42 2024
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860265984 sectors (2.73 TiB 3.00 TB)
Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
Used Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=1953503232 sectors
State : clean
Device UUID : 79d5251b:69e987dc:acc2e560:bd1a5dc8
Internal Bitmap : 8 sectors from superblock
Update Time : Thu May 29 00:50:56 2025
Bad Block Log : 512 entries available at offset 16 sectors
Checksum : 2590a51 - correct
Events : 12096
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x9
Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
Name : NAS:0 (local to host NAS)
Creation Time : Tue Dec 17 23:56:42 2024
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : 6e87af7b:1d0f3768:6d3034f3:448a68fd
Internal Bitmap : 8 sectors from superblock
Update Time : Thu May 29 00:50:56 2025
Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
Checksum : 417ba753 - correct
Events : 12096
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
Name : NAS:0 (local to host NAS)
Creation Time : Tue Dec 17 23:56:42 2024
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
State : clean
Device UUID : a2a1c152:2c49b698:6d3034f3:448a68fd
Internal Bitmap : 8 sectors from superblock
Update Time : Thu May 29 00:50:56 2025
Bad Block Log : 512 entries available at offset 16 sectors
Checksum : 490cfb8f - correct
Events : 12096
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdd1[2](S) sde1[3](S) sdc1[1](S)
6836895744 blocks super 1.2
unused devices: <none>
备份超级块
mdadm --examine /dev/sdb1 # 替换 X 为你的磁盘(如 sdb1, sdc1 等)
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
Name : NAS:0
Creation Time : Tue Dec 17 23:56:42 2024
Raid Level : raid5
Raid Devices : 4
Super Offset : 8 sectors # 超级块偏移量(重要!)
Unused Space : before=264112 sectors, after=1953503232 sectors
使用 dd
备份超级块
方法1:超级块通常位于磁盘的 末尾(metadata=1.2) 或 开头(metadata=0.9/1.0)。
if=/dev/sdb1
:要备份的 RAID 成员盘。
of=...
:备份文件路径。
bs=512
:块大小(字节)。
count=128
:备份 128 个扇区(64KB,足够覆盖超级块)。
skip=8
:跳过前 8 个扇区(Super Offset
)。
dd if=/dev/sdb1 of=/path/to/backup/sdb1_superblock.bak bs=512 count=128 skip=8
方法2:备份整个 RAID 元数据区域
dd if=/path/to/backup/sdb1_superblock.bak of=/dev/sdb1 bs=512 seek=8
恢复超级块
dd if=/path/to/backup/sdb1_superblock.bak of=/dev/sdb1 bs=512 seek=8
验证
mdadm --examine /dev/sdb1
额外安全措施
备份所有 RAID 成员盘的超级块
mdadm --examine --scan > /etc/mdadm/mdadm.conf.backup
准备开干尝试强制重新组装 RAID
其实按顺序应该先停止阵列,但我这里阵列已经GG所以直接重组。
mdadm --stop /dev/md0
root@NAS:~# mdadm --assemble --force --run /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
直接把所有硬盘加入RAID组

如果启动成功,在webui上面重新加入硬盘进行数据恢复,然后检查 /proc/mdstat

完事!记得千万不要在数据恢复期间进行下载上传啥的操作,很容易GG。引以为戒。