服务器宕机,查看带外日志,发现存在CPU告警和内存告警,尝试重启系统,系统进入紧急模式,控制台有报错,提供dracut:/# 虚拟控制台交互
dracut-initqueue[427]:Warning : /dev/rhel/swap does not exist
1、尝试后发现,直接输入exit退出可以正常进入系统,所以可能是配置文件有误或启动顺序有误
2、依据报错,查找对应的分区,发现并没有/dev/rhel/swap 分区存在
3、查看启动引导/etc/default/grub,发现引导文件中是有写这个不存在的swap分区的,奇怪,按理说这个挂载一般可以写到/etc/fstab 里面的,而且有两份就离谱
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rd.lvm.lv=rhel/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
4、检查lv ,确实没有这个rhel的逻辑卷
5、修改/etc/default/grub ,删除多余的rd.lvm.lv=rhel/swap 参数
6、执行如下命令,使grub修改生效(网上说用update-grub 可以生效,发现没有这个命令,等效操作如下)
grub2-mkconfig -o /boot/grub2/grub.cfg
7、重启验证异常已被解决
1、/dev/rhel/swap 分区 出现原因不明
2、操作前先备份,尽量给回退留下可能,特别是如果没有控制台的就更加得小心了
3、只修改grub文件,必须执行命令才能生效,否则重启也不会使用新的引导配置文件
当系统重启后,如果出现
dracut
命令行提示符,这通常意味着系统正在使用dracut
作为其初始 RAM 磁盘(initramfs)的生成工具,并且在启动过程中进入了紧急模式或者维护模式。
dracut
会生成一个包含必要的二进制文件、驱动程序和启动脚本的 initramfs,以便在系统启动时加载内核并挂载根文件系统。
ls 列出当前环境中的文件
df 查看文件系统的挂载情况
mount 查看或修改文件系统的挂载点
ping 检查网络连接
journalctl 查看系统日志(如果可用)
fsck 检查和修复文件系统
exit 退出紧急 shell,尝试继续启动
1、检查/etc/fstab 是否能通过mount -a ,/boot/grub2/grub.cfg 是否有可能存在影响的变更
2、检查 /var/log/messages 和 journalctl
以及 systemctl 是否有Failed 的服务,可能会影响
3、可能存在硬件故障
4、文件系统可能损坏,可以通过fsck 修复,比如如下的报错
/dev/sda1 contains a file system with errors, check forced.
inode 625047 has illegal block(s).
# 强制检查,并自动回答yes
fsck -f /dev/sda1 -y
# 结束会打印
FILE SYSTEM WAS MODIFIED
REBOOT LINUX