![我丢失了数据吗?我可以将 MD 超级块从一个驱动器复制到另一个驱动器吗?](https://linux22.com/image/750517/%E6%88%91%E4%B8%A2%E5%A4%B1%E4%BA%86%E6%95%B0%E6%8D%AE%E5%90%97%EF%BC%9F%E6%88%91%E5%8F%AF%E4%BB%A5%E5%B0%86%20MD%20%E8%B6%85%E7%BA%A7%E5%9D%97%E4%BB%8E%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%90%97%EF%BC%9F.png)
我朋友的 RAID5 丢失了两个磁盘 —— 一个显然在几个月前就坏了,但是另一个也掉线了,而且相信数据没有问题。
mdadm --examine
我可以在两个幸存磁盘(的克隆)以及由此产生的(停止的)阵列上运行mdadm --detail
。当我尝试检查第三个磁盘(的克隆)时,我收到“mdadm:在 /dev/sdc6 上未检测到 md 超级块”。
我如何才能绝对、绝对地确认 sdc6 包含数据,而不是浪费时间?我如何重新创建或克隆 MD 超级块?
我正在使用 Debian Buster。
我刚刚尝试了 --assemble --force,结果我的克隆上的数据丢失了。在它们重新映像时,这是来自另一个分区的数据,用于另一个具有相同症状的阵列(这个是 RAID1,因此我不关心 sdc2)。
# mdadm -E /dev/sda2
/dev/sda2:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 91910024:5720fb37:1542f8c1:fd297f0c
Name : LS-QVL-EM727:1
Creation Time : Wed Oct 31 15:01:52 2007
Raid Level : raid1
Raid Devices : 4
Avail Dev Size : 9998336 (4.77 GiB 5.12 GB)
Array Size : 4999156 (4.77 GiB 5.12 GB)
Used Dev Size : 9998312 (4.77 GiB 5.12 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=24 sectors
State : clean
Device UUID : 14cbe7a9:15c0a00d:f27af23f:a36c631c
Update Time : Fri Apr 3 17:08:10 2020
Checksum : 5bfc17c4 - correct
Events : 1052191
Device Role : Active device 2
Array State : .AA. ('A' == active, '.' == missing, 'R' == replacing)
答案1
回想一下,驱动器字母可能会发生变化。阵列仅通过 UUID 组装。您无法复制超级块,因为设备 UUID 会有所不同。
最好使用 mdadm 和 smartmontools 设置监控,并在驱动器出现故障时向您发送电子邮件。
是否可以恢复数据取决于是否只有超级块受损。您可以尝试使用 --assume-clean 在克隆上创建阵列(写入新的超级块)并查看,但您需要确保所有驱动器都位于正确的插槽中,并且另一个损坏的驱动器设置为“丢失”。