
# Linux弹性云服务器怎样升级内核？
#### 操作场景
当Linux弹性云服务器的操作系统内核版本出现系统崩溃、卡顿、内存泄露等稳定性或性能问题，或需要使用新的内核功能时，可通过升级操作系统内核解决。
#### 约束与限制
![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/caution_3.0-zh-cn.png)
升级操作系统内核可能导致系统不稳定或出现兼容性问题。在升级前，建议您了解升级过程中可能出现的问题，备份重要数据并谨慎操作。
备份弹性云服务器的详细操作，请参见[备份概述](https://support.huaweicloud.com/usermanual-ecs/ecs_03_1501.html)。
- 升级操作系统内核后，Linux弹性云服务器可能无法识别网卡，从而导致网络不通。
- 升级操作系统内核后，Linux弹性云服务器可能无法识别数据盘，从而导致系统启动挂载点异常，无法正常启动。
 
#### 操作步骤
本文以Huawei Cloud EulerOS、CentOS、Ubuntu、Debian为例介绍如何升级操作系统内核。
- [升级内核（Huawei Cloud EulerOS/CentOS）]
  1. 登录弹性云服务器。
  
  2. 执行以下命令，查看当前操作系统的内核版本。 **uname -r**
     
  
  3. 执行以下命令，查看是否有可升级的操作系统内核版本。 **sudo yum list kernel**
     - 如果没有可用的操作系统内核版本：
       建议更换操作系统至Huawei Cloud EulerOS 2.0，详细操作，请参见[切换操作系统](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0031523135.html)。
       ![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/note_3.0-zh-cn.png)
       CentOS官方已停止维护CentOS 6/7/8版本操作系统，华为云也同时停止对该操作系统的支持。更多详细内容，请参见[CentOS Linux停止维护后如何应对](https://support.huaweicloud.com/ims_faq/ims_faq_0052.html)。
       
     
     - 如果有可用的操作系统内核版本：
       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**
     - 如果没有可用的操作系统内核版本： 建议更换操作系统至更高版本，详细操作，请参见[切换操作系统](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0031523135.html)。
       
     
     - 如果有可用的操作系统内核版本：
       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**
     如果返回新的内核版本，表示内核升级成功。
     
   
