LIS 升级后,Linux VM 无法使用内核 3.10.0-514.16 正确启动

适用于:✔️ Linux VM

原始 KB 数: 4022897

本文提供了在 Linux Integration Services (LIS) 升级后 Linux VM 无法正确启动内核 3.10.0-514.16 的问题的解决方法。

现象

如果在使用内核 3.10.0-514.16.1 的 Linux 虚拟机(VM)上安装 Linux Integration Services (LIS) 4.1.3 驱动程序,则 VM 不会正确重启,并且会收到如下所示的错误消息:

depmod: WARNING: /lib/modules/3.10.0-514.16.1.el7.x86_64/weak-updates/microsoft-hyper-v/hv_netvsc.ko 需要未知符号vmbus_setevent depmod: WARNING: /lib/modules/3.10.0-514.16.1.el7.x86_64/weak-updates/microsoft-hyper-v/hv_sock.ko 需要未知符号vmbus_send_tl_connect_request depmod:WARNING: /lib/modules/3.10.0-514.16.1.el7.x86_64/weak-updates/microsoft-hyper-v/hv_sock.ko 需要未知符号vmbus_set_chn_rescind_callback depmod: WARNING: /lib/modules/3.10.0-514.16.1.el7.x86_64/weak-updates/microsoft-hyper-v/hv_sock.ko 需要未知符号vmbus_hvsock_device_unregister

原因

由于对内核应用程序二进制接口(kABI)进行了更改,因此会出现此问题。 由于这些更改,内核 3.10.0-514.16.1 上的 LIS 驱动程序 (4.1.3) 升级失败。

解决方法

提示

如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。

建议不要在使用内核 3.10.0-514.16.1 的 VM 上升级 LIS 驱动程序 4.1.3。 相反,如果使用内核 3.10.0-514.16.1,建议安装 LIS 4.2.0 或更高版本。

如果 Linux 分发包管理系统中没有 LIS 版本 4.2.0 或更高版本,则可以手动下载 LIS 4.2.0

LIS 4.2.0 中的已知问题

安装 LIS 4.2.0 驱动程序时,可能会遇到以下问题:只能在最新内核中启动 VM。

Microsoft正在努力在即将进行的 LIS 更新中解决此问题。

卸载 LIS 4.1.3

如果已安装 LIS 4.1.3,并且无法启动 VM,请按照以下步骤删除适用于设置的 LIS 4.1.3。

对于具有控制台访问权限的 Linux Hyper-V 来宾

  1. 使用救援媒体在救援模式下启动 VM。

  2. 在命令提示符处运行以下命令,将根目录更改为系统映像:

    chroot /mnt/sysimage
    
  3. 运行以下命令以删除 LIS 包:

    packages=($(rpm -qa *microsoft-hyper-v*))
    rpm -e ${packages[@]}
    

对于在 Azure 中运行的 Linux VM

  1. 按照以下文章中的步骤创建恢复 VM 并装载受影响的磁盘:

    使用 Azure CLI 2.0 将 OS 磁盘附加到恢复 VM 对 Linux VM 进行故障排除

  2. 运行以下命令,将根目录更改为系统映像:

    chroot /mnt/troubleshootingdisk
    
  3. 运行以下命令以删除 LIS 包:

    packages=($(rpm -qa *microsoft-hyper-v*))  
    rpm -e ${packages[@]}
    

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区