突然我的 ext4 文件系统变为只读模式。我卸载了这个磁盘并尝试修复它,但没有成功。
fsck
尝试修复某些问题,但最终却以FILE SYSTEM WAS MODIFIED
,结束WARNING: Filesystem still has errors
。mount
失败并显示failed: Structure needs cleaning
消息。badblocks
工具显示了几个错误。smartctl
測試狀態:read failure
。
另外,我已经通过工具制作了磁盘映像ddrescue
,但无法像从 HDD 那样修复/安装分区。
我想要的是:
- 挂载分区并复制未损坏的文件。
- 做出决定——这个硬盘是否存在物理问题,或者这只是 ext4 崩溃?
答案1
如果该badblocks
工具显示多个错误并smartctl
报告错误,则表明您的硬盘肯定存在某种问题。因此您需要先解决这个问题。
您所能做的最保守的事情是使用ddrescue
来获得两个至少与您的硬盘一样大的磁盘。我将把您的原始磁盘称为ORIG
,两个磁盘DISK_A
称为 和DISK_B
。首先使用ddrescue
从 复制ORIG
到DISK_A
。然后使用ddrescue
从DISK_A
复制到DISK_B
。为什么要立即制作副本?因为如果您的硬盘出现故障(并且badblocks
显示错误的报告强烈表明存在错误),您希望在更多扇区出现故障之前立即制作副本。(有时硬盘会出现级联故障,最初只有少数几个扇区出现故障;但是如果问题是由于磁头碰撞将碎片踢入密封腔体而导致的,那么越来越多的扇区可能会开始出现故障,然后当碎片撞击磁头时,它们会再次撞击盘片,损坏更多扇区并踢出更多碎片......重复此过程,直到磁盘彻底损坏。)
DISK_A
为什么要从到进行第二次复制DISK_B
?因为您将在 上尝试各种恢复技术DISK_B
,如果它们最终导致逻辑损坏,您可以随时返回DISK_A
,并将原始磁盘映像复制到DISK_B
(或甚至DISK_C
),这样您就可以随时进行回退,以防某种恢复技术使情况变得更糟,或者您希望其他技术可以恢复更多数据。
很可能e2fsck -fy
能够完全修复 上的文件系统映像DISK_B
。如果不能,则可能是 中的错误e2fsck
。请参阅手册REPORTING BUGS
的 部分e2fsck
,了解有关有用的错误报告所需的更多信息。(还请提供有关硬件的信息以及您为排除硬件问题所采取的措施 --- 将文件系统映像复制到新磁盘是一种很好的方法。)
答案2
我的文件恢复的解决方案:
- 通过制作磁盘映像
ddrescue
。 - 通过工具打开
DMDE
并复制文件。