在正常使用过程中,我的 Ubuntu 笔记本电脑会间歇性地遇到一些 I/O 错误,然后重新安装/
为只读(是的,我检查了 SMART 日志,没有显示任何内容;我还更换了驱动器,但运气不佳)。问题是我永远无法读取底层的原始错误(如果报告了任何错误),因为那时文件系统已以只读方式重新安装,因此错误不会记录到磁盘的任何位置,并且如果我运行dmesg
循环缓冲区已完全被其他进程抱怨只读文件系统发送垃圾邮件,这就是所有可见的内容。
重申一下,我无法查看,/var/log
因为那时文件系统已挂载为只读,因此rsyslog
根本无法记录任何错误。
我启动新工具的能力也有限,因为磁盘子系统此时报告一般 I/O 错误。只有缓存驻留的内容才是可运行的。
我唯一能想到的就是变成/var/log
内存中的tmpfs并重新启动rsyslog
,等待错误发生,并希望我能在/var/log
.甚至可能在循环中运行一些标准工具,如cat
、grep
、less
等,这样它们在磁盘子系统出现故障后肯定可用。
有更简单的选择吗?
答案1
设置log_buf_len=
内核参数通过 grub 到一些大的东西,比如8M
.