Linux上的fsck(8)手册包括以下退出代码表:
The exit code returned by fsck is the sum of the following conditions:
0 No errors
1 Filesystem errors corrected
2 System should be rebooted
4 Filesystem errors left uncorrected
8 Operational error
16 Usage or syntax error
32 Checking canceled by user request
128 Shared-library error 退出代码2已经分配给‘系统应该重新启动’,所以我们可能可以假设它有一定的目的。但是,原则上,fsck可以在检查某种对系统的操作不重要的外部拇指驱动器之后返回这个退出代码。这样的非必要文件系统中的错误需要重新启动,这似乎是荒谬的,特别是当文件系统只被fsck访问时。
“系统应该重新启动”退出代码实际上意味着什么?
发布于 2019-08-22 19:24:32
这意味着在执行检查时安装了所讨论的文件系统,fsck必须实际修改磁盘上的数据以修复错误,而且如果不重新启动系统,就无法手动重新安装文件系统。
这方面的主要情况是在根文件系统上发现(并修复)错误。除非您有一个非常漂亮的initramfs或正在检查文件系统的恢复环境,否则在检查根文件系统(因此它是只读的)时,您正在离开根文件系统。
出于性能原因,内核不会重新验证已装入文件系统的缓存元数据(因为除了fsck之外,没有任何东西在磁盘上更改挂载文件系统的内核),因此如果fsck必须修复其中的一些元数据,它要么需要通知内核(在大多数UNIX系统上它不能),要么告诉用户卸载文件系统,然后再挂载它,以使内核获取修改后的元数据。但是,使用根文件系统的唯一方法是实际重新启动系统本身。
https://unix.stackexchange.com/questions/536892
复制相似问题