文档首页/ 弹性云服务器 ECS/ 常见问题/ 操作系统相关问题/ Linux弹性云服务器怎样升级内核?
更新时间:2024-11-11 GMT+08:00

Linux弹性云服务器怎样升级内核?

操作场景

当Linux弹性云服务器的操作系统内核版本出现系统崩溃、卡顿、内存泄露等稳定性或性能问题,或需要使用新的内核功能时,可通过升级操作系统内核解决。

约束与限制

升级操作系统内核可能导致系统不稳定或出现兼容性问题。在升级前,建议您了解升级过程中可能出现的问题,备份重要数据并谨慎操作。

备份弹性云服务器的详细操作,请参见备份概述

  • 升级操作系统内核后,Linux弹性云服务器可能无法识别网卡,从而导致网络不通。
  • 升级操作系统内核后,Linux弹性云服务器可能无法识别数据盘,从而导致系统启动挂载点异常,无法正常启动。

操作步骤

本文以Huawei Cloud EulerOS、CentOS、Ubuntu、Debian为例介绍如何升级操作系统内核。

升级内核(Huawei Cloud EulerOS/CentOS)

  1. 登录弹性云服务器
  2. 执行以下命令,查看当前操作系统的内核版本。

    uname -r

  3. 执行以下命令,查看是否有可升级的操作系统内核版本。

    sudo yum list kernel

    • 如果没有可用的操作系统内核版本:

      CentOS官方已停止维护CentOS 6/7/8版本操作系统,华为云也同时停止对该操作系统的支持。更多详细内容,请参见CentOS Linux停止维护后如何应对

      建议更换操作系统至Huawei Cloud EulerOS 2.0,详细操作,请参见切换操作系统

    • 如果有可用的操作系统内核版本:
      1. 执行以下命令,确认当前系统initrd或initramfs文件中是否包含virtio-blk或xen-blkfront驱动。

        sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -E 'virtio|xen'

        若返回结果包含如下类似信息,表示包含virtio-blk或xen-blkfront驱动,否则不包含。

        -rwxr--r--   1 root     root        23888 Feb 10  2022 lib/modules/2.6.32-754.35.1.el6.x86_64/kernel/drivers/block/virtio_blk.ko
        -rwxr--r--   1 root     root        55064 Feb 10  2022 lib/modules/2.6.32-754.35.1.el6.x86_64/kernel/drivers/block/xen-blkfront.ko
      2. (可选)执行以下命令,在系统initrd或initramfs文件中中添加virtio-blk或xen-blkfront驱动。

        若当前系统initrd或initramfs文件中不包含virtio-blk或xen-blkfront驱动,需要执行本步骤。

        sudo sh -c 'echo 'add_drivers+="xen-blkfront virtio_blk"' >> /etc/dracut.conf.d/virt-drivers.conf'

  4. 执行以下命令,升级操作系统内核版本。

    sudo yum update -y

  5. 执行以下命令,更新GRUB配置文件,以便ECS在启动时选择新的内核版本。

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

  6. 执行以下命令,重启ECS。

    sudo reboot

  7. 再次执行以下命令,检查操作系统的内核版本,验证是否升级成功。

    uname -r

    如果返回新的内核版本,表示内核升级成功。

升级内核(Ubuntu/Debian)

  1. 登录弹性云服务器
  2. 执行以下命令,查看当前操作系统的内核版本。

    uname -r

  3. 执行以下命令,更新系统软件包列表,并查看是否有可升级的操作系统内核版本。

    sudo apt update

    apt-cache search linux-image

    • 如果没有可用的操作系统内核版本:

      建议更换操作系统至更高版本,详细操作,请参见切换操作系统

    • 如果有可用的操作系统内核版本:
      1. 执行以下命令,升级操作系统内核版本。

        sudo apt-get install linux-image-<目标内核包名>

      2. (可选)执行以下命令,升级操作系统内核额外模块。

        对于ubuntu系统的ECS,内核升级后还需要升级操作系统内核的额外模块。

        sudo apt-get install linux-modules-extra-<目标内核包名>

        例如,Ubuntu 20.04需要升级内核至5.15.0版本时,升级命令如下:

        sudo apt update

        apt-cache search linux-image | grep '5.15' | grep generic

        sudo apt-get install linux-image-5.15.0-122-generic

        sudo apt-get install linux-modules-extra-5.15.0-122-generic

  4. 执行以下命令,更新GRUB配置文件,以便ECS在启动时选择新的内核版本。

    sudo update-grub

  5. 执行以下命令,重启ECS。

    sudo reboot

  6. 再次执行以下命令,检查操作系统的内核版本,验证是否升级成功。

    uname -r

    如果返回新的内核版本,表示内核升级成功。