我目前正在从损坏的——和垂死的——硬盘驱动器中恢复数据(检查这个问题的背景信息)。驱动器在系统运行时掉落;当我愚蠢地试图跑testdisk
过去时,我开始听到——我认为是——“死亡的咔嗒声”。
现在我已经在几个地方读到了关于“冷冻技巧”的内容(例如在 AskDifferent 上,在 Unix SE 上,在 AskUbuntu 上)。它的关键如下(但请阅读完整说明!):
(根据现已删除的帖子,冰箱中的硬盘驱动器对您有用吗?在超级用户上,冷冻前尝试的两种替代药物疗法是:(1)“将硬盘驱动器放在光滑的表面上。抓住末端并物理旋转整个装置”、“只是沿着叶片的轴急剧旋转装置”和 (2)“在磁头坠毁的情况下,您可以通过将驱动器倒置来暂时启动和运行。保持驱动器备份文件时倒置。”)
问题:冻结是从垂死的硬盘驱动器中拯救数据的合法策略吗?或者这只是一种绝对让磁盘变砖的奇特方式?
如果这是合法的,应一次尝试它之前尝试ddrescue
,经过努力ddrescue
,或者我应该结合“冷冻绝招”与ddrescue
(和关联的日志文件)?
我存储所有数据的两个硬盘都出现故障。我的系统突然拒绝加载磁盘和安装分区。我将一个硬盘驱动器移到另一台计算机,在那里它被识别的麻烦较少,但分区有很多错误,并且我仍然在该驱动器的 dmesg 上收到 E/S 错误。
用于启动的分区有一个坏的超级块,但可以用另一个超级块读取它,在那里它显示更多错误,所以我首先在外部硬盘驱动器上对该分区进行了主备份。由于这个原因,我对 ddrescue 进行了两次传递,根据日志,它退出时只有一个 512 字节的错误,我认为这是有希望的。
使用 lsblk 列出备份看起来更有希望:
损坏分区的 lsblk 显示:
$lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
...
sda
??sda1
...
Run Code Online (Sandbox Code Playgroud)
现在主人显示的地方:
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
Run Code Online (Sandbox Code Playgroud)
现在我从这个主分区到同一个驱动器的末尾做了另一个备份,所以 lsblk 的实际输出将是:
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
loop0 squashfs /snap/anbox-installer/25
loop2 squashfs /snap/core/9669
loop3 squashfs /snap/core/10911
sda
??sda1
sdb
??sdb1 ext4 Debian_copia ce2c8e8f-f3ef-4005-9cb1-0bb9d5870f43 /
??sdb2 swap d60a8ad0-5528-4bbc-af5e-092b96282df4 [SWAP]
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
??sdc2 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
sr0
Run Code Online (Sandbox Code Playgroud)
现在这里是遗漏的地方,我把 fsck 的选项 p 误认为选项 …