我正在测试卡利Linuxv2.0,我无法找到fsck
扫描日志文件。
在乌班图v14我在这里找到了它:
luis@Terminus:~$ locate mountall.log
/var/log/upstart/mountall.log.1.gz
/var/log/upstart/mountall.log.2.gz
/var/log/upstart/mountall.log.3.gz
/var/log/upstart/mountall.log.4.gz
/var/log/upstart/mountall.log.5.gz
/var/log/upstart/mountall.log.6.gz
/var/log/upstart/mountall.log.7.gz
但 Kali 上似乎不存在:
luis@Midnighter:~$ sudo locate mountall
/etc/init.d/mountall-bootclean.sh
/etc/init.d/mountall.sh
/etc/rcS.d/S11mountall.sh
/etc/rcS.d/S12mountall-bootclean.sh
/lib/systemd/system/mountall-bootclean.service
/lib/systemd/system/mountall.service
命令结果find
:
luis@Midnighter:~$ sudo find / -name "mountall.log*"
luis@Midnighter:~$ sudo find / -name "mountall*"
/lib/systemd/system/mountall.service
/lib/systemd/system/mountall-bootclean.service
/run/systemd/generator/mountall-bootclean.service.d
/run/systemd/generator/mountall.service.d
/etc/init.d/mountall.sh
/etc/init.d/mountall-bootclean.sh
它位于哪里?
答案1
fsck 扫描的日志文件
从技术上讲,“日志文件”fsck
是标准输出/标准错误。这可以被重定向和捕获,但不一定如此。
麻烦的是,请记住,当fsck
运行该文件时,文件系统不可写,因此这不仅仅是&> /var/log/mountall.log
.必须捕获其输出,然后在某个时刻进行记录。
使用/forcefsck
或等效的内核参数(例如,fsck.mode=force
),实际的 fsck 由以下命令运行在里面(在内核参数的情况下,它是通过的,所以这在形式上可能不是通用的)。 init 如何处理这个问题取决于 init;显然,在 Ubuntu 上,暴发户保存了输出并记录它(也许,继续阅读)。 Systemd 似乎通过 syslog 报告一些详细信息(如果启用,可能还有它自己的日志)。
我不确定基于 8 (systemd) 之前的 Debian 的系统是否会记录此信息,甚至不确定它是如何处理的。 SysV 脚本/etc/init.d/mountall.sh
不引用 fsck,但mount
如果最近没有足够检查文件系统,当然会自动调用它(这可能是您实际上习惯在 upstart 的 mountall.log 中看到的内容,这就是为什么我写“也许”较早)。
因此,“forcefsck”的处理可能直接内置到 SysV init 可执行文件中。它确实在控制台上产生输出,但我从未注意到在 Debian 上的任何地方都有记录。
如果您想检查文件系统上次 fsck 的时间,请使用:
dumpe2fs -h /dev/[node]| grep "Mount count"
其中 [node] 是一个真实的分区。这是自上次检查以来 fs 已安装的次数(如果当前已安装,则最少为 1 次)。