我想象了一个失败的SSD,我可以使用ddrescue
或dd
(已经太久记不起来了)。对于生成的 .img,我烧录了一个无法识别为可安装的磁盘。
在磁盘上使用后e2fsck -fyvC 0
,我可以随后安装它,恢复一些(但肯定不是全部)最初在 SSD 上的文件。
这是我进行数据检索的最佳选择,还是有更好的工具可以恢复更多数据?
e2fsck
使用上述标志运行时,我收到有关孤立或删除的 inode 的各种警告,这些警告要么已修复,要么已删除。不幸的是,这些似乎与我最想从磁盘中寻找的数据相对应。
输出为 227,000 行,以下是一些重点内容:
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
Superblock has an invalid journal (inode 8).
Clear? yes
*** journal has been deleted ***
Superblock has_journal flag is clear, but a journal is present.
Clear? yes
Truncating orphaned inode 6302578 (uid=1000, gid=1000, mode=0100664, size=3600)
Pass 1: Checking inodes, blocks, and sizes
[...]
Inode 1048618 was part of the orphaned inode list. FIXED.
Inode 1048634 was part of the orphaned inode list. FIXED.
Deleted inode 1048662 has zero dtime. Fix? yes
[...]
Entry '..' in <6291748>/<9965526> (9965526) has deleted/unused inode 6291748. Clear? yes
[...]
Unattached inode 9712327
Connect to /lost+found? yes
Inode 9712327 ref count is 2, should be 1. Fix? yes
[...]
Free blocks count wrong for group #740 (32768, counted=3012).
Fix? yes
[...]
Directories count wrong for group #4593 (0, counted=114).
Fix? yes
[...]
Padding at end of inode bitmap is not set. Fix? yes
Recreate journal? yes
Creating journal (262144 blocks): Done.
*** journal has been regenerated ***
/dev/sdc: ***** FILE SYSTEM WAS MODIFIED *****
2205797 inodes used (4.52%, out of 48807936)
20864 non-contiguous files (0.9%)
1884 non-contiguous directories (0.1%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 2154021/1685/13
128999150 blocks used (66.08%, out of 195210139)
0 bad blocks
18 large files
1869601 regular files
282774 directories
10 character device files
1 block device file
5 fifos
4294963048 links
53513 symbolic links (50169 fast symbolic links)
14 sockets
------------
2164179 files
这里有更明智的数据恢复方法吗?预先感谢您的任何帮助。
答案1
我过去曾以这种方式恢复过文件。
使用ddrescue
(FreeBSD 中调用的类似程序recoverdisk
)制作磁盘映像。在尝试恢复之前执行此操作。如果fsck
出现提示,只需说“不”并制作图像即可。
使用VM(VMWare或带有快照的东西)并将此映像作为HDD磁盘加载到VM中。这避免了修剪问题。
- 快照,然后运行
fsck
并复制所有可以保存的文件。要求fsck
删除无法修复的文件。 - 恢复快照,然后
fsck
使用该e2undel
工具尝试之前和之后。 - 再次恢复并尝试
ext4magic -M
选项。 - 最后恢复并
less -f /dev/sdb
找到已知的文本字符串。注意:随着时间的推移,您可能会发现这些内容有多个修订版。这将全部是手动的。