我最近注意到一个奇怪的现象。我无法重新启动运行了一年多的生产性 Web 服务器,因为配置无效:
# /etc/init.d/apache2 restart Syntax error on line 161 of /etc/apache2/apache2.conf:
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration Action 'configtest' failed.
The Apache error log may have more information.
...fail!
经过进一步调查,我发现有几个文件的/etc/apache2/mods-availabe
大小为零字节
...
-rw-r--r-- 1 root root 0 Jun 15 15:14 authz_host.load
....
这是否表明文件系统已损坏?我害怕卸载文件系统以运行 fsck。当然系统已备份,但我们以后如何发现类似情况?
答案1
不,零字节文件并不表示文件系统损坏。
文件系统损坏的可能症状包括:
- 内核日志中显示文件系统的错误消息
- 尝试读取/写入文件系统时发生 I/O 错误
- 目录列表中出现虚假的文件属性、所有者、大小和名称。
识别文件系统损坏的最可靠方法是运行文件系统检查。
在某些时候,ext4 开发人员决定以与早期文件系统和大量应用程序预期不同的方式更改某些系统调用的语义。结果是,ext4 代码和应用程序的某些组合可能会导致文件更新时数据丢失。这通常会导致文件为空 - 但不会导致文件系统损坏。