我有一个外部驱动器,它只有一个分区和 ext4 文件系统,但有一些损坏。之前的 fsck 因意外断电而中止,现在 lost+found 中有一个坏目录,fsck 现在每次运行时都会尝试修复它。运行时,使用 fsck v1.43.3,fsck -pv /dev/sda2
显示:hydra contains a file system with errors, check forced.
然后是长时间检查,然后:
hydra: Directory inode 18, block #0, offset 0: directory has no checksum. FIXED. Warning... fsck.ext4 for device /dev/sda2 exited with signal 9.
当我挂载分区并查找该目录时,它在 lost+found 内,但任何访问它的尝试都失败了。ls: cannot access #18: Bad message
,rm: cannot remove ‘#18’: Bad message
。关于如何删除它有什么想法吗?似乎这个目录导致 fsck 过早中止。
答案1
信号 9 表示您使用 kill -9 终止了该进程。您这样做了吗?
保存原始的、压缩的 e2image(参见 e2image 手册页)以及保存运行“e2fsck -fn /dev/sda2”的完整消息集会很有用,这样您就可以使用它来发送错误报告给[电子邮件保护]。
如果您想要清除 inode #18,可以使用 debugfs 命令执行此操作:
# debugfs -w /dev/sda2
debugfs: clri <18>
debugfs: quit