root@host [/]# fsck -cc /dev/sdb1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
/dev/sdb1: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 11/18317312 files (0.0% non-contiguous), 1198478/73258400 blocks
它说文件系统被修改。所以呢?我只是格式化它。哪里不对了?
答案1
看起来好像什么也没发现。然后用它的结果更新坏块inode,这没什么。
FILE SYSTEM WAS MODIFIED
被吐出fsck
任何写入文件系统的时间。更改一个坏块 inode 即可。
特别是,尽管您没有指定只修复任何问题而不询问您 ( -y
) 如果磁盘上出现需要更正的问题,那么它会说一些话。
答案2
我会再次运行它。发现-cc
坏块并调用程序badblocks
修复它们。您可能只想将其运行为:
$ fsck /dev/sdb1
摘自 fsck.ext3 手册页
-C
此选项使 e2fsck 运行 badblocks(8) 程序来查找文件系统上的任何坏块,然后通过将它们添加到坏块 inode 来将它们标记为坏块。如果指定该选项两次,则将使用非破坏性读写测试来完成坏块扫描。
更新#1:后续问题
fsck 是否发现坏块?什么是无损读写测试?
fsck
是一个前端工具,它对文件系统的整体运行状况进行各种检查。交换机还-cc
指示fsck
进行呼叫badblocks
,以便执行更彻底的检查。
非破坏性读/写需要首先备份该位置的内容,然后使用模式来测试该位置,最后返回原始内容。
参考
答案3
别担心,当您有一个错误的文件时,例如名称或 unicode 名称错误的文件,或者发生了错误的文件,此消息会出现,它与您的文件系统无关。
答案4
显然你可以运行dumpe2fs -b
查看坏块列表,例如。dumpe2fs -b /dev/sdb1
。我想如果输出为空,则没有坏块(但我现在没有可用的带有坏块的驱动器,因此无法测试它)。