每一个修改配置后不测试的蠢比都该被枪毙
最近干了几个活,令人提心吊胆的大活除了熬夜之外都挺顺利,唯独在个中途冒出来的小事上翻了车。
事情本身很简单,就是一台x86的PC服务器换个网卡,关机后拔掉旧网卡插上新网卡,用户再调一下bond配置就完事了。结果换完之后开机,RedHat就进了emergency模式,报找不到lv_swap。我纳闷了,换个网卡和它完全无关啊。现场还有另一块备件,于是尝试再次更换第二块备件。
这次更6,换完之后直接找不到raid了,启动页面看不到raid信息,排查之后发现是BIOS配置丢了(SB浪潮),经过对BIOS配置的调整,成功识别到array,进入系统引导步骤。
然后:还是亲爱的emergency。
联系用户主机组人员,商议解决方案,结合故障现象,用户提议临时修改grub引导参数,在grub中找到并删除rd.lvm.lv=vg_root/lv_swap
,之后Ctrl+x进行引导,可以正常进入系统。
进入系统后查挂载项,查看lsblk,发现没有找到swap文件。查看/etc/fstab文件时发现了一件事:
......
#/dev/mapper/vg_root-lv_swap swap swap defaults 0 0
......
好好好你干的好啊!/dev/mapper/vg_root-lv_swap
被注释掉了,与此同时grub中仍保留有rd.lvm.lv=vg_root/lv_swap
。
这就冲突了。GRUB配置中的rd.lvm.lv=vg_root/lv_swap
选项告诉initramfs在启动过程中激活并挂载指定的逻辑卷vg_root/lv_swap。如果这个逻辑卷在/etc/fstab中被注释掉,系统在启动过程中将无法找到并激活该逻辑卷,导致进入emergency模式。/etc/fstab中被注释的swap条目:/etc/fstab文件负责定义系统启动时需要挂载的文件系统和swap分区。如果某个条目被注释掉,系统将不会尝试挂载或启用该文件系统或swap分区。
经用户确认,同组其它主机均未对fstab文件作此修改,都有swap文件。这台机器上的文件应当是业务组修改且未重启设备,导致一个雷就这样埋下,就等一个重启设备的倒霉蛋来触发。
用户表示不需要重建swap,保留fstab中的注释,仅对grub进行修改:
编辑 /etc/default/grub
文件:
sudo nano /etc/default/grub
找到 GRUB_CMDLINE_LINUX
行,移除 rd.lvm.lv=vg_root/lv_swap
选项,改为:
GRUB_CMDLINE_LINUX=""
更新 GRUB 配置:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统: sudo reboot
拉倒,完事
每一个修改配置后不测试的蠢比都该被枪毙。