我正准备用 ddrescue 恢复五个故障 RAID 磁盘中的第二个,突然我的脑海里出现了一个奇怪的转折,我输入了
sudo ddrescue --verbose --idirect --no-scrape -f /dev/sda /dev/sdc disk1.logfile
而应该有 /dev/sdc /dev/sda。这运行了大约 28 秒:
GNU ddrescue 1.23
About to copy 6001 GBytes from '/dev/sda' to '/dev/sdc'
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 sectors Initial skip size: 117248 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
ipos: 5961 MB, non-trimmed: 0 B, current rate: 59375 kB/s
opos: 5961 MB, non-scraped: 0 B, average rate: 205 MB/s
non-tried: 5995 GB, bad-sector: 0 B, error rate: 0 B/s
rescued: 5961 MB, bad areas: 0, run time: 28s
pct rescued: 0.09%, read errors: 0, remaining time: 8h 6m
time since last successful read: n/a
Copying non-tried blocks... Pass 1 (forwards)^C
Interrupted by user
有什么方法可以撤消该操作,创建的地图文件有帮助吗?
答案1
您已将 的初始 5961 MB 复制/dev/sda
到/dev/sdc
,并覆盖了 的前 5961 MB 中的任何数据/dev/sdc
。
没有办法简单地撤消。mapfile 只能告诉您覆盖片段的确切大小。
根据 RAID 的类型以及所涉及的文件和/或文件系统的布局,您可能能够使用或/dev/sdc
等工具来挽救一些文件甚至整个文件系统。根据 RAID 的类型,您可能需要在某种只读模式下强制重新组装 RAID,忽略您现在可能看起来不像 RAID 成员的事实;或者您可以使用 等低级工具“手动”重新组装 RAID 。testdisk
photorec
/dev/sdc
dmsetup
不要期待奇迹。将近 6 GB 的“随机”数据写入任何磁盘的开头几乎肯定会对存在的文件系统造成致命打击。就您而言,一些数据丢失了,它已被覆盖,它不再存在。如果您能恢复任何东西,那您就很幸运了。
在一个极其幸运的是,你的磁盘的开头/dev/sdc
负责保存未被任何文件系统使用的扇区,或者某些文件系统中标记为空闲的块(这些可能因为 RAID 而实现;在非 RAID 设置中,磁盘的开头始终很重要)。所以或许你的事故并无大碍。然而这是一个你不应该想到的奇迹。
完全存在的文件系统(如果有)超过被覆盖的部分不会受到你的失误的影响,恢复它们可能就像找到它们的签名并构建一个分区表使它们对操作系统可见一样“简单”(这是可以testdisk
做的);也可能不是。或者或许分区表位于另一个磁盘上,一旦您重新组装 RAID(这本身可能很容易,也可能不容易),您就会看到它。如果没有关于 RAID 及其数据结构(分区、文件系统)的详细信息,我无法判断您是否有机会如此幸运。请注意,在某些多设备设置(如 LVM)中,无法立即清楚哪些(哪些部分)文件系统属于哪些(哪些部分)磁盘。
我写了“可能”和“可以”是因为上面是为了从物理上健康但包含逻辑上损坏的数据的磁盘中进行拯救。
如果你怀疑或者知道这/dev/sdc
是物理故障,即磁盘本身不健康(与逻辑故障相反,逻辑故障是指某些(元)数据损坏,这是您造成的),您应该将ddrescue
驱动器转向正确的方向并使用副本。因此,基本上您应该做您要做的事情,然后使用副本来克服逻辑损坏:可能之前发生的损坏加上可能因从物理上不健康的源读取而导致的损坏,加上您用其他内容覆盖源的一部分而导致的损坏。
由于 RAID 意味着多余的独立磁盘阵列,或许您可以从其他成员重建 RAID,而您/dev/sdc
一开始并不需要(并且也不需要)。这显然取决于 RAID。
“五个发生故障的 RAID 磁盘中的第二个”这个短语很模糊,我真的不知道:
- 如果你指的是“RAID 失败”,那么可能从逻辑上讲是失败的,
- 或者如果你指的是“磁盘故障”,可能是物理故障,
- 如果有,那么有多少人中“五人不及格”?
- 这是什么类型的 RAID;
所以我真的无法判断你是否能在其他 RAID 成员的帮助下从不幸的遭遇中恢复过来。
一般情况下,会丢失一些数据。RAID 的参与可能会允许某些方法增加(部分或全部)恢复的机会;也可能不允许某些其他方法。如果没有关于 RAID 及其数据结构(分区、文件系统)的详细信息,此时无法为您提供最佳指导;有太多的如果和太多的“切入点”需要运气。如果您需要进一步的帮助,请提出一个新问题,您应该向我们提供有关 RAID 的详细信息。即使这样,也不要指望奇迹。