我在我的主目录中发现了一些损坏的用户文件,该目录是根分区的一部分。
当我运行时,e2fsck -nf /dev/sda2
我得到以下信息:
e2fsck 1.43.3 (04-Sep-2016)
Warning! /dev/sda2 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 3540701 has zero dtime. Fix? no
Inodes that were part of a corrupted orphan linked list found. Fix? no
Inode 3540770 was part of the orphaned inode list. IGNORED.
Inode 3543800 was part of the orphaned inode list. IGNORED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(12097070--12097071) -(12702285--12702286) -(12704775--12704776)
Fix? no
Free blocks count wrong (14619606, counted=14663655).
Fix? no
Inode bitmap differences: -3540701 -3540770 -3543800
Fix? no
Free inodes count wrong (3909036, counted=3921813).
Fix? no
/dev/sda2: ********** WARNING: Filesystem still has errors **********
/dev/sda2: 285268/4194304 files (0.2% non-contiguous), 2157610/16777216 blocks
但是,当我重新启动并将分区挂载为只读时,e2fsck 没有报告任何错误。然后我正常重新启动,发现 ext4 文件系统仍然损坏。
有人知道会发生什么事吗?
答案1
当然,它就在那里告诉你:
Warning! /dev/sda2 is mounted.
请参阅手册页以了解更多信息:
请注意,一般来说,在已挂载的文件系统上运行 e2fsck 并不安全。唯一的例外是指定了 -n 选项,而未指定 -c、-l 或 -L 选项。但是,即使这样做是安全的,如果文件系统已挂载,则 e2fsck 打印的结果无效。 如果 e2fsck 询问你是否应该检查已挂载的文件系统, 唯一正确的答案是“不”。 只有真正了解自己在做什么的专家才会考虑以其他方式回答这个问题。
使用实时 ISO 来检查根文件系统而无需挂载它们是一种很好的方式。
而且,您的磁盘可能已经损坏,请进行备份并尝试e2fsck
使用-c
(只读)或-cc
(非破坏性读写)进行安全/卸载根据手册页) 选项来检查坏块。