linux-系统升级
一、linux系统及内核升级
yum update -y --exclude=kernel && reboot #以yum方式升级非内核的所有包; wget https://mirror.rackspace.com/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.13.0-1.el7.elrepo.x86_64.rpm #下载指定版本内核包; wget https://mirror.rackspace.com/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-5.13.0-1.el7.elrepo.x86_64.rpm #下载指定版本内核工具包; yum -y localinstall kernel-ml* #安装内核所有包;rpm -ivh kernel-ml-* #安装内核所有包; # yum remove -y kernel-3.10.0-957.el7.x86_64 #删除多余内核;当/boot剩余容量不足时,必须删除非运行的内核。 rpm -qa |grep kernel #查看安装的所有内核及其工具包; grubby --default-kernel #查看当前默认启动内核; uname -r #查看当前内核; awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg #查看内核启动清单及顺序; grub2-editenv list #查看清单中保存的启动内核名称; grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg #设置默认启动entry为0的内核,并将修改的配置写入grub2.cfg; # sed -i "/s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/g" /etc/default/grub;update-grub #设置默认启动内核的entry为0,并将修改的配置更新至grub2.cfg; grubby --args="user.namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
reboot #重启后使内核生效; uname -a #查看内核是否生效;
二、故障排查
问题1:内核升级后重启系统失败?
welcome to emergency mode!
原因分析:BIOS报的IO空间太少不够分配;但如果设备没用到IO空间,也没有关系,不影响使用;sdb及sdc不能挂载导致kernel崩溃。
kernel: pci 0000:00:17.7: BAR 13: no space for [io size 0x1000]
kernel: pci 0000:00:17.7: BAR 13: failed to assign [io size 0x1000]
...
[sda] Cache data unavailable
[sda] Assuming drive cache: write through
...
piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
...
Failed to mount /srv/node/sdc
...
crashkernel: memory value expected.
...
Unit srv-node-sdc.mount has failed
The result is failed.
kernel: XFS(sdc): unknown mount option [nobarrier].
...
kdump service failed
解决方法:注释挂载sdb及sdc磁盘后重启即可;即升级系统成功。