大乌龙大无语事件---fstab弄崩系统的又一案例

一、问题描述

某次一线反馈某云主机异常,查看后发现主机莫名重启过,且重启后报的异常,启动后多数功能加载失败;报错:systemd-modules-load[437]: sh: line 1: /sbin/sysctl: No such file or directory

在这里插入图片描述
关联资源:系统启动流程

二、分析处理

1)查看启动日志
在这里插入图片描述

执行:journalctl -b | grep nf_conntrack,发现如下报错:

systemd-modules-load[426]:Error running install command '/sbin/modprobe --ignore-install nf_contrack&&/sbin/sysctl --quiet --pattern 'net[.]netfilter[.]nf_comtrack.*" --system' for module nf_conntrack: retcode 127
systemd-modules-load[426]: Failed to insert module 'nf_comtrack': Invalid argument

上面是说:在加载模块过程中,尝试执行modprobe 用于加载 nf_conntrack 模块,–ignore-install 选项忽略安装状态,&& 是逻辑与操作符,表示只有当 modprobe 成功执行后才执行后面的 sysctl 命令。sysctl 用于设置内核参数。retcode 127:是命令执行返回的代码。在shell中,retcode 127 通常表示命令未找到或无法执行,这可能意味着 modprobe 或 sysctl 命令不存在或无法在当前环境中运行。最后结论就是: nf_conntrack 模块未能成功加载,释放启动任务暂停启动。nf_conntrack 作为用于跟踪网络连接状态的内核模块,通常与网络过滤和NAT功能相关,如果未启用相关功能,可忽略,现场是使用着的。

在这里插入图片描述
在这里插入图片描述
执行:modinfo nf_conntrack #检查nf_conntrack模块是否存在

在这里插入图片描述
执行:lsmod | grep nf_conntrack #检查当前释放加载到内存中
在这里插入图片描述

#nf_defrag_ipv4 是 Linux 内核中的一个内核模块,它是 Netfilter 框架的一部分,专门用于处理 IPv4 数据包碎片。在网络通信中,有时数据包可能会因为大小超过网络的最大传输单元(MTU)而被分片。nf_defrag_ipv4 模块负责重新组装这些分片,以恢复原始的数据包
modinfo nf_conntrack | grep -i depends  #依赖如下
Module			Size  Used by
nf_defrag_ipv6 24576   1 nf_conntrack
nf_defrag_ipv4 16384   1 nf_conntrack
cat /proc/sys/net/netfilter/nf_conntrack_count
lsof/fuser /proc/sys/net/netfilter
zcat /proc/config.gz | grep CONFIG_NF_CONNTRACK  #确认内核配置支持网络连接跟踪

2)因中间被其他人尝试完成恢复,这里直说结论

在这里插入图片描述

修改人反馈/etc/fstab挂载的数据盘没有指定文件系统和启动选项,注释后启动正常。尴尬呀!但是启动验证时还是会报错:

在这里插入图片描述
启动日志dmesg依然可看到报错信息:dmesg | grep nf_conntrack
在这里插入图片描述
在这里插入图片描述
执行:journalctl -u systemd-modules-load;
在这里插入图片描述
通过以上信息发现一个问题,即:systemd-modules-load脚本执行时(已编译成二进制文件了),使用的还是旧的主机名,而下文显示的是新主机名,很奇怪。
在这里插入图片描述

之前因内核漏洞升级过内核,本次重启加载了新内核,也与新内核兼容性有关;具体原因待进一步分析,待续!另请路过的同学,有相关经验不吝指教一二。

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/140697002