SUSE 11重建内核镜像并加载RAID驱动

文章目录
  1. 环境
  2. 检查
  3. 通过 rpm 方式
  4. 通过 zypper 方式
  5. 省略步骤
  6. 验证
  7. 回退
  8. 总结
  9. 发表评论

环境

  • 操作系统:SUSE Linux Enterprise Server 11 (x86_64)
  • 服务器型号:HP DL系列 G7/G8

检查

  • 检查RAM Disk文件中的模块:lsinitrd /boot/initrd-3.0.76-0.11-default | grep ko$
  • 手动挂载RAM Disk文件:mount -o loop -t sysfs /boot/initrd-3.0.76-0.11-default /mnt
  • 查看系统模块信息:lspci -v; lsmod; modinfo
  • 检查模块的依赖性:depmod -a
  • 检查当前系统分区:df -Th
  • 当前内核引导参数:cat /boot/grub/menu.lst | grep -i hpsa
  • 系统内核配置参数:cat /etc/sysconfig/kernel| grep -v ^# | grep -v ^$
  • 配置zypper库(Yast源):mount /dev/sr0 /media && zypper ar file:///media SLE11
  • 查看zypper库及软件更新:zypper lr && zypper lu

通过 rpm 方式

  1. 安装新版本内核包(保留多个版本内核):
    [root@SLE ~]# rpm -ivh kernel-default-3.0.101-0.47.86.1.x86_64.rpm \
    kernel-default-base-3.0.101-0.47.86.1.x86_64.rpm
  2. 升级或安装新内核包(覆盖当前系统内核):
    [root@SLE ~]# tar zcvfpP /kernel_3.0.76.tar.gz /boot/ \
    /lib/firmware/3.0.76-0.11-default/ \
    /lib/modules/3.0.76-0.11-default/

    [root@SLE ~]# rpm -Uvh kernel-default-3.0.101-0.47.86.1.x86_64.rpm \
    kernel-default-base-3.0.101-0.47.86.1.x86_64.rpm
  3. 安装旧版本内核包(保留多个版本内核):
    [root@SLE ~]# rpm -ivh --oldpackage kernel-default-3.0.76-0.11.1.x86_64.rpm \
    kernel-default-base-3.0.76-0.11.1.x86_64.rpm
  4. 降级或安装旧内核包(覆盖当前系统内核):
    [root@SLE ~]# tar zcvfpP /kernel_3.0.101.tar.gz /boot/ \
    /lib/firmware/3.0.101-0.47.86-default/ \
    /lib/modules/3.0.101-0.47.86-default/

    [root@SLE ~]# rpm -Uvh --oldpackage kernel-default-3.0.76-0.11.1.x86_64.rpm \
    kernel-default-base-3.0.76-0.11.1.x86_64.rpm

通过 zypper 方式

  1. 升级安装系统内核(覆盖当前系统内核,挂载SLE 11 SP4光盘):
    [root@SLE ~]# tar zcvfpP /kernel_3.0.76.tar.gz /boot/ \
    /lib/firmware/3.0.76-0.11-default/ \
    /lib/modules/3.0.76-0.11-default/

    [root@SLE ~]# zypper clean && zypper ref
    [root@SLE ~]# zypper lu | grep kernel-default
    [root@SLE ~]# zypper up kernel-default kernel-default-base
    [root@SLE ~]# zypper pa | grep kernel-default
  2. 移除并安装旧内核包(覆盖当前系统内核,挂载SLE 11 SP3光盘):
    [root@SLE ~]# tar zcvfpP /kernel_3.0.101.tar.gz /boot/ \
    /lib/firmware/3.0.101-0.47.86-default/ \
    /lib/modules/3.0.101-0.47.86-default/

    [root@SLE ~]# zypper clean && zypper ref
    [root@SLE ~]# zypper rm kernel-default kernel-default-base
    [root@SLE ~]# zypper in kernel-default kernel-default-base
    [root@SLE ~]# zypper pa | grep kernel-default

省略步骤

  1. 更改内核引导参数:vim /boot/grub/menu.lst
    # 添加 hpsa.hpsa_allow_any=1, 引导时加载hpsa内核模块以解决引导失败问题
  2. 更改内核配置参数:vim /etc/sysconfig/kernel
    # 在INITRD_MODULES参数中添加 hpsa 以加载HP RAID模块, 封装initrd时会加载此配置
  3. 安装RAID控制器驱动:rpm -ivh hpsa-kmp-default-3.4.18-105.sles11sp3.x86_64.rpm
    升级RAID控制器驱动:rpm -Uvh hpsa-kmp-default-3.4.18-105.sles11sp3.x86_64.rpm

    说明:可以在搜索引擎中输入关键字" HP DL380 G8 Drivers site:hpe.com "来获得HP DL380 G8服务器的驱动下载页面,此驱动安装过程包含了initrd重封装步骤。

  4. 手动封装initrd镜像:mkinitrd

验证

重启前验证:lsinitrd /boot/initrd-3.0.76-0.11-default | grep hpsa
重启后验证:lsmod | grep hpsa

回退

  1. 无法正常启动时通过系统安装光盘引导后进入救援模式
  2. 救援模式下需要执行“挂载与切换根分区操作”:
    Rescue:~ # mkdir /sysroot
    Rescue:~ # mount /dev/sda2 /sysroot
    Rescue:~ # chroot /sysroot
  3. 解压备份的旧内核引导包:tar zxvf /kernel_3.0.76.tar.gz -C /
  4. exit退出当前所在根,shutdown -r now 重启服务器;
  5. 降级或御载内核安装包(执行失败时使用 --force 参数):
    [root@SLE ~]# rpm -Uvh --oldpackage kernel-default-3.0.76-0.11.1.x86_64.rpm \
    kernel-default-base-3.0.76-0.11.1.x86_64.rpm

    [root@SLE ~]# rpm -e kernel-default-3.0.101-0.47.86.1 \
    kernel-default-base-3.0.101-0.47.86.1

总结

  1. 物理服务器kernel升级建议是重新安装kernel和硬件驱动,避免kernel与module兼容问题;
  2. 上述步骤可用于kernel升级和raid驱动升级过程的操作及故障排查。
文章出自: 本站技术文章均为原创,版权归 "Desen往事 - 个人博客" 所有;部分图片来源于 Yandex ,转载本站文章请注明来源。

5 comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code

ˆ Back To Top