虚拟机在从物理 Red Hat 计算机转换后不引导
search cancel

虚拟机在从物理 Red Hat 计算机转换后不引导

book

Article ID: 328777

calendar_today

Updated On:

Products

VMware

Issue/Introduction


Symptoms:
免责声明:本文为 Virtual machine does not boot after being converted from a physical Red Hat machine (1002402) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

  • 运行 Red Hat 的转换后的物理机未按预期引导
  • 转换后,虚拟机无法引导
  • 引导过程暂停并出现错误
  • 您会看到类似以下内容的条目:

    No volume groups found

    Kernel panic - not syncing: Attempted to kill init!

    VFS: Cannot open root device "LABEL=/" or 00:00

    Please append a correct = "root=" boot option

    Kernel panic: VFS: Unable to mount root fs on 00:00


Environment

VMware vCenter Converter Standalone 5.0.x
VMware Converter 3.0.x
VMware vCenter Converter 4.0.x
VMware vCenter Converter Standalone 4.0.x
VMware vCenter Converter Standalone 4.3.x

Resolution

出现此问题的原因是,操作系统的 ramdisk 映像不包含适用于为虚拟机配置的虚拟 SCSI 适配器的驱动程序或模块。这些模块之所以不在 ramdisk 映像中,是因为该映像最初是在不使用此硬件的系统中创建的。必须将现有 ramdisk 映像替换为包含正确驱动程序的 ramdisk 映像。

Converter 3.0.x 不支持 Linux 操作系统热克隆,也不支持对新虚拟硬件生成的虚拟机进行配置。仅支持不进行任何配置的冷克隆。而 vCenter Converter 4.0 支持某些 Linux 操作系统的热克隆和配置,包括 Red Hat。有关支持版本的列表,请参阅相关手册。

验证下面每个故障排除步骤是否适合您的环境。每个步骤提供相关说明或文档链接,用于消除可能的原因和采取必要的补救措施。这些步骤按照最合适的顺序排序,以隔离问题并确定正确的解决方法。请勿跳过任何一个步骤。
注意: 如果您在以下任意步骤中执行补救措施,请尝试再次引导虚拟机。
  1. 如果您的物理源计算机安装了 vCenter Converter 4.0 支持的 Red Hat 版本,并且您对其具有访问权限,请执行以下操作:

    1. 升级到 vCenter Converter 4.0(如果尚未执行此操作)。
    2. 运行 Converter 并执行另一个物理机到虚拟机的转换。此虚拟机应该能够引导。

  2. 如果您无法使用 Converter 创建能够引导的新 Red Hat 虚拟机,则需要修改客户机操作系统。

    注意

    • VMware 建议您在开始之前生成虚拟机的快照。VMware 还建议您为这些步骤中编辑的文件创建备份。操作系统正常工作后,可以删除该快照和备份的文件。
    • 在这些步骤中,您需要确保操作系统具有类型正确的虚拟硬盘控制器。该控制器可以是 LSI Logic 或 BusLogic。请选择最适合您的 Red Hat 版本的控制器,并确保该控制器是要呈现给虚拟机的控制器。

    要修改客户机操作系统,请执行以下操作:

    1. 从第一个 Red Hat 安装磁盘引导虚拟机。
    2. 在第一个提示符处,键入 linux rescue 并按 Enter 键。
    3. 将 root 更改为挂载的安装。键入 chroot /mnt/sysimage 并按 Enter 键。
    4. 如果物理机基于 IDE,请将文件 /etc/fstab、/boot/grub/device.map /boot/grub/grub.conf 中文本 /dev/hda 的任意实例替换为 /dev/sda
    5. 确保 grub 已正确安装。键入 grub-install 并按 Enter 键。
    6. 如果 /etc/modules.conf 文件存在,请编辑该文件并移除所有现有条目。
    7. 编辑 /etc/modprobe.conf 文件。
      1. 查找 alias ethx module 条目,其中 x 将替换为数字,module 将替换为文本。将每个 module 条目更改为 pcnet32
      2. 如果您要使用 BusLogic:

        查找 alias scsi_hostadapterx module 条目,其中 x 将替换为数字,module 将替换为文本。将每个 module 条目更改为 BusLogic

      3. 如果使用 LSI Logic,请执行以下操作:

        查找 alias scsi_hostadapterx module 条目,其中,x 替换为数字,module 替换为文本。 将每个 module 条目更改为 mptscsih

        此外,查找 alias scsi_hostadapter module 条目,其中,module 替换为文本,而 hostadapter 后面没有数字。如果存在,请将 module 替换为 mptbase。如果不存在,请紧接在 alias scsi_hostadapter1 mptscsih 行的上方添加 alias scsi_hostadapter mptbase

    8. 确定要重建的 ramdisk 映像的完整路径。 该文件位于 /boot。键入 ls /boot 并按 Enter 键,列出该目录的内容。 其中包含名称类似于 initrd-2.6.9-42.EL.img 的文件。

      例如,ramdisk 映像的完整路径为 /boot/initrd-2.6.9-42.EL.img。记录该路径。

      注意: 如果 /boot 中存在多个 initrd- 文件,请键入 cat /etc/grub.conf 并按 Enter 键,确定正在使用的文件。

    9. 确定要用于重建 ramdisk 映像的内核版本。 键入 ls /lib/modules 并按 Enter 键。

      例如,会看到目录 2.6.9-42.EL。记录该版本。

      注意: 如果显示多个目录,请键入 cat /etc/grub.conf 并按 Enter 键,确定正在使用的内核版本。

    10. 重建 ramdisk。运行 mkinitrd -v -f /boot/initrd-2.6.9-42.EL.img 2.6.9-42.EL 命令并按 Enter 键,其中,/boot/initrd-2.6.9-42.EL.img 将替换为步骤 h. 中记录的信息,2.6.9-42.EL 将替换为步骤 I 中记录的信息。

  3. 如果您无法使用支持的 Red Hat 版本,或者步骤 2 中的过程不起作用,请执行以下操作:

    1. 将物理机修改为支持 BusLogic LSI Logic
    2. 重新转换物理机。


Additional Information

Virtual machine does not boot after being converted from a physical Red Hat machine