我的系统也经常会不定期死机,折腾内核日志终于找到罪魁祸首panic卡死。
死机现象复现:
SSH下执行
确认SysRq启用
echo 1 | sudo tee /proc/sys/kernel/sysrq
触发panic
echo c | sudo tee /proc/sysrq-trigger
注意,这时候系统会自动重启,如果你的机器自动重启成功,请绕道。你的死机原因绝不是这个。
如果系统直接卡死,不会自动重启。那么99%,你的死机原因就是这个。
下面是解决方法:
检查acpi
dmesg | grep -i "acpi" | grep -i "error|fail|warning" | tail -10
如果输出有大量错误,代表当前的acpi于bios固件存在兼容性问题。可以先禁用。
添加acpi=off内核参数
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&acpi=off /' /etc/default/grub
sudo update-grub
sudo reboot
重启之后,再次确认
确认SysRq启用
echo 1 | sudo tee /proc/sys/kernel/sysrq
触发panic
echo c | sudo tee /proc/sysrq-trigger
如果触发panic,系统能正常重启,那么问题就解决了,如果还是触发就卡死。
需要卸载看门狗
1. 卸载看门狗模块
sudo modprobe -r iTCO_wdt
2. 防止自动加载
echo "blacklist iTCO_wdt" | sudo tee /etc/modprobe.d/blacklist-watchdog.conf
3. 禁用NMI watchdog
echo 0 | sudo tee /proc/sys/kernel/nmi_watchdog
4. 检查是否禁用成功
lsmod | grep -i watchdog
最后,在进行一次重启测试
echo 5 | sudo tee /proc/sys/kernel/panic
echo c | sudo tee /proc/sysrq-trigger
重启正常,故障排除。如果你的是这个问题,可以找我要永久禁用的方法。避免下次内核升级之后又打开。