建议使用Chrome浏览器访问!
技术支持
互动社区
学习培训
深信服官网
合作伙伴

【KB:330417502】Linux虚拟机迁移安装性能优化工具后无法启动--重做rd文件

更新时间:2024-08-26 19:31:06
  • 下载
  • 分享
  • 收藏
描述:完成迁移的Linux虚拟机,安装性能优化工具后无法启动。
告警提示:可能出现以下三种告警信息。
  • initrd file not find!
  • Update rd file failed!
  • Current system is not support virtio! 

虚拟机配置磁盘时不勾选使用FastIO磁盘,安装性能优化工具后则可以启动。

一般是因为当前虚拟机的内核版本中有半虚拟化驱动未加载成功,需要手动对驱动进行加载。

需要检查当前虚拟机是否有半虚拟驱动,主要是virtio_pci(磁盘网卡) virtio_blk(磁盘)virtio_console(报表用),且是否支持加载版半虚拟驱动。如果有半虚拟驱动则需要手动添加rd文件。

短期规避方案
不涉及。
彻底解决方案

内核版本中的半虚拟化驱动未加载成功,需要手动添加驱动并进行加载,即重做带驱动的rd文件,具体操作如下。

为避免操作过程中出现异常以便进行回退,请提前为虚拟机创建快照,具体操作可参见手动快照 

  1. 在光驱中加载系统ISO。最好使用与当前虚拟机系统版本一样的ISO镜像。如果没有与当前系统版本相同的ISO镜像,建议优先选择CentOS镜像可自动挂载系统。

  2. 使用镜像按照提示进入救援模式,具体操作可参见Linux进入救援模式方法
  3. 执行以下命令挂载系统。
    # chroot /mnt/sysimage/​
  4. 查看虚拟机内是否有半虚拟驱动virtio。执行以下命令查看虚拟机内是否有virtio_pci(磁盘网卡) 、virtio_blk(磁盘)和 virtio_console(报表用)。
    # find /usr/lib/ -name *virtio*
    或
    # find /lib/ -name *virtio*​​

    正常情况下半虚拟化驱动会在/usr/lib目录下。

    • 如果有半虚拟驱动,如以下图片表示系统内有两个版本内核(327和957),且两个内核均有半虚拟驱动,可继续执行本文后续操作。

    • 如果没有半虚拟驱动则表示Linux系统不支持,请联系技术支持处理。
  5. 执行以下命令检查当前系统所使用的内核版本。
    Linux 6及以下版本
    # cat /boot/grub/grub.conf
    Linux 7
    # cat /boot/grub2/grub.cfg
    • 返回信息的kernel字段表示kernel字段的位置和linux虚拟机版本号。
    • initrd对应的字段(initramfs-xxx)即是系统内核所需要的全部驱动。
  6. 查看当前版本(即kernel字段对应的版本)的内核rd文件中是否加载了半虚拟化驱动。如果未加载半虚拟驱动(无返回信息)可继续执行以下操作手动添加有驱动的rd文件;如果已加载半虚拟驱动(有返回信息)请联系技术支持。
    # lsinitrd /boot/initramfs-$(uname -r).img | grep virtio​
    • -$(uname -r)就是使用uname -r命令查出的操作系统版本号添加到上述位置。例如:lsinitrd /boot/initramfs-10.0-957.21.3.el7.x86_64.img | grep virtio
    • 如果使用的镜像内核版本和当前系统内核版本不一致,则需要使用绝对路径,例如:lsinitrd /boot/initramfs-6.32-358.el6.x86_64.img | grep virtio
  7. 若rd文件未加载半虚拟化驱动,需要手动重做一个有驱动的rd文件。

    以下涉及的内核版本号信息请根据实际查询到的内核版本和文件名称进行填写。

    1. 备份现有的rd文件initramfs-xxx.img。
      # cp /boot/initramfs-2.6.32-359.el6.x86_64.img
      # cp /boot/initramfs-2.6.32-359.el6.x86_64.img.bak​
    2. 执行以下命令制作带驱动的rd文件。
      • 如果镜像版本和系统内核版本不一样,可执行以下命令制作待驱动的rd文件。
        # mkinitrd -f --with=virtio_pci --with=virtio_blk  --with=virtio_console /boot/initramfs-2.6.32-359.el6.x86_64.img 2.6.32-359.el6.x86_64​
      • 如果确认镜像版本和系统内核版本一样,可执行以下命令制作带驱动的rd文件。
        # mkinitrd -f --with=virtio_pci --with=virtio_blk  --with=virtio_console /boot/initramfs-$(uname -r).img$(uname -r)​
      • 如果是CentOS7系统重做rd文件可执行如下命令。
        # dracut -f /boot/initramfs-3.10.0-116.e17x86_64.img 3.10.0-1160.e17x86_64​

 

案例让我的问题处理变得简单了
选择标签:
更多意见:
手机号码:
如果未能解决您的问题,您可以使用 在线客服 寻求帮助
在线客服
案例让我的问题处理变得简单了
您当前处于未登录状态,资料搜索或查找可能会不全面,请登录后以查找更全面的内容注册登录