请帮我抢救出现故障的硬盘

Ler*_*ssa 1 ext4 data-recovery fsck 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 误认为选项 f 所以我已经完成了

fsck -fy /dev/sdc2
Run Code Online (Sandbox Code Playgroud)

它搞砸了一些事情并删除了一些节点,在安装它后列出了一半应该是的文件,幸运的是这是损坏硬盘驱动器的副本,所以这次我会更加谨慎。

你能告诉我一些好的做法吗?我的所有数据现在都在赌博,所以请准确。

lsblk 是否对分区进行了任何更改?我可以挂载一个分区而不对其进行任何更改吗?顺便说一句,我有这个链接方便:https : //www.sans.org/blog/how-to-mount-dirty-ext4-file-systems/

如何安全地进行 fsck 以便我可以在这里赢得一些时间?fsck -n 是否仍然对分区进行更改?磁盘中分区副本的位置有什么区别吗?

有没有办法在不处理文件系统的情况下恢复文件?我已经阅读了 photorec,但我有很多它无法识别的大胆文件。难道没有更通用的东西吗?

Pou*_*rko 5

如果您的磁盘出现物理故障,那么对其进行更多的写操作(如 fsck)只会让事情变得更糟。为了增加从该磁盘恢复数据的机会,您应该立即停止使用该磁盘。现在卸载它。订购新的磁盘,当你的新盘到达时,启动一个普通的Linux发行版到命令提示符,然后ddrescue将旧盘到新的一个,如所描述这里。记住:不要从旧磁盘挂载任何文件系统,以免造成进一步的损坏。