操作系统适配错误和警告

本文档介绍了如何排查 Migrate to Virtual Machines 操作系统适配错误和警告。

错误是阻止执行操作系统适配的严重问题。它们表明根本问题,您需要立即加以关注并解决,然后才能继续该流程。警告虽然不严重,但可以提供有价值的信息,帮助您提高认知度。它们强调了在适配过程中检测到的潜在问题或不一致,即使克隆成功也是如此。

每个适配过程都会生成适配报告,其中详细说明了在此过程中遇到的任何错误或警告。

虽然大多数操作系统适配都是自动执行的,但在某些情况下,您必须排查并解决错误和警告才能完成克隆过程。以下错误和警告强调了需要进行此类修改的情况。

操作系统适配错误

下表列出了您在操作系统适配过程中可能会遇到的错误,以及每个错误的问题排查信息。

消息 操作项
虚拟机磁盘上找不到操作系统。 验证虚拟机磁盘是否包含有效的操作系统,以及是否未使用 BitLocker 等进行加密。对来源虚拟机所做的更改会在后续复制周期生效。
在虚拟机磁盘上找到了多个操作系统。 标记您要适配的操作系统。在 Windows 上运行 mkdir %SystemDrive%\Google\Migrate,在 Linux 上运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints。对来源虚拟机所做的更改会在后续复制周期生效。
多个根文件系统标记有提示目录。 确保提示目录仅存在于单个根文件系统上。 在 Windows 上:%SystemDrive%\Google\Migrate;在 Linux 上:/etc/google/migrate。对来源虚拟机所做的更改会在后续复制周期生效。
{mount_point} 文件系统上的 inode 不足。 确保 {mount_point} 文件系统上至少有 {required_free_inodes} 个 inode。对来源虚拟机所做的更改会在后续复制周期生效。
{mount_point} 卷上的磁盘可用空间不足。 确保 {mount_point} 卷上至少有 {required_free_space_mb} MB 的可用空间。我们建议您先截取来源快照,然后再更改 {mount_point} 卷。对来源虚拟机所做的更改会在后续复制周期生效。
Linux 内核中缺少 VirtIO 驱动程序。 验证来源虚拟机上是否安装了支持 VirtIO 驱动程序(virtio_scsivirtio_net)的 Linux 内核。在 Compute Engine 上运行迁移后的虚拟机需要使用这些驱动程序。对来源虚拟机所做的更改会在后续复制周期生效。
/etc/fstab 文件包含易失性关键条目,例如非永久性块存储设备名称。 在来源虚拟机上运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints。对来源虚拟机所做的更改会在后续复制周期生效。
{file_path} 文件包含易失性关键条目,例如非永久性块存储设备名称。 在来源虚拟机上运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints。对来源虚拟机所做的更改会在后续复制周期生效。
找不到 {directory} 或 {directory} 为空。 验证 {directory} 是否存在、不为空,并且不是指向缺失卷的软链接。对来源虚拟机所做的更改会在后续复制周期生效。
找不到 {file}。 验证 {file} 是否存在,并且不是指向缺失卷的软链接。对来源虚拟机所做的更改会在后续复制周期生效。
无法从 /etc/fstab 装载关键条目,例如,fstab 条目重复或缺少设备。错误:{error_details} 检查来源虚拟机中的 /etc/fstab 设置,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
不支持的操作系统:{os_description}。 请参阅产品文档以查看支持的操作系统列表 - 支持的操作系统
不支持的操作系统:amazonlinux2.0。 您尝试迁移了运行 Amazon Linux 2 操作系统的虚拟机,Google Cloud 不支持该操作系统。如需迁移虚拟机,您必须将该操作系统转换为支持的操作系统。将该操作系统转换为支持的操作系统的这一功能作为预览版计划的一部分提供。如需了解详情并参与预览版计划,请参阅将 Amazon Linux 2 虚拟机迁移到 Google Cloud
{os_description} 不支持 BIOS 到 UEFI 的转换。 请参阅产品文档以查看支持 BIOS 到 UEFI 的转换的操作系统列表 - 支持的操作系统
{os_description} 不支持 BIOS 到 UEFI 的转换。 您尝试迁移了运行 Amazon Linux 2 操作系统的虚拟机,Google Cloud 不支持该操作系统。如需迁移虚拟机,您必须将该操作系统转换为支持的操作系统。将该操作系统转换为支持的操作系统的这一功能作为预览版计划的一部分提供。如需了解详情并参与预览版计划,请参阅将 Amazon Linux 2 虚拟机迁移到 Google Cloud
不支持的操作系统:{os_description}。 请参阅产品文档以查看支持的操作系统列表 - 支持的操作系统。 或者,考虑使用磁盘迁移来迁移数据磁盘,请参阅迁移虚拟机磁盘
{os_description} 不支持 BIOS 到 UEFI 的转换。 请参阅产品文档以查看支持 BIOS 到 UEFI 的转换的操作系统列表 - 支持的操作系统。 或者,考虑使用磁盘迁移来迁移数据磁盘,请参阅迁移虚拟机磁盘
{os_type} 操作系统不支持架构 {architecture}。 请参阅产品文档以查看支持的架构列表 - 支持的操作系统
架构为 {architecture} 的 {os_type} 操作系统不支持 BIOS 到 UEFI 的转换。 请参阅产品文档以查看支持 BIOS 到 UEFI 的转换的架构列表 - 支持的操作系统
无法检测支持的 Linux 引导加载程序,例如 Grub。在较早的操作系统中,或者如果已安装的操作系统不支持所选的启动类型 (BIOS/UEFI),则可能会发生这种情况。 请参阅产品文档以查看支持的操作系统列表,并确保正确设置操作系统的启动类型 (BIOS/UEFI) - 支持的操作系统
无法安装软件包 google-compute-engine:{error_message} 尝试解决根本问题并手动安装该软件包,或与支持团队联系。如果您想在不安装这些软件包的情况下继续操作,请在来源虚拟机上运行 mkdir -p /etc/google/migrate/skip_failed_install。请注意,如果没有客机环境,某些 Compute Engine 功能可能无法使用。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 {package_name}:{error_message} 请尝试解决根本问题,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 {package_name}:{error_message} 尝试解决根本问题并手动安装该软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 {package_name}:{error_message} 尝试解决根本问题并手动安装该软件包,或与支持团队联系。如果您想在不安装这些软件包的情况下继续操作,请在来源虚拟机上运行 mkdir -p /etc/google/migrate/skip_failed_install。对来源虚拟机所做的更改会在后续复制周期生效。
无法在不破坏依赖项的情况下安装或更新关键软件包 {packages}:{error_message} 尝试在来源虚拟机上手动安装软件包 {packages},或与支持团队联系。如需在迁移后修复损坏的软件包,请在来源虚拟机上运行 mkdir -p /etc/google/migrate/skip_broken_packages。如需跳过安装,请在来源虚拟机上运行 mkdir -p /etc/google/migrate/skip_failed_install。请注意,跳过安装可能会导致后续步骤失败。对来源虚拟机所做的更改会在后续复制周期生效。
DISM 安装 {driver} 失败,并显示退出代码: {exit_code} 请与支持团队联系或参阅 Microsoft 文档 - 调试系统错误代码,以修复错误。对来源虚拟机所做的更改会在后续复制周期生效。
DISM 安装 {driver} 失败,并显示退出代码:2 停用任何杀毒软件或其他可能会阻止 DISM 访问文件系统的安全软件。如果问题仍然存在,请运行 sfc /scannowdism /online /cleanup-image /restorehealth 命令来解决问题。对来源虚拟机所做的更改会在后续复制周期生效。
无法加载此虚拟机的 Windows 注册表。{hive_name} hive 可能存在不一致。 重试复制周期、测试克隆、割接。如果问题仍然存在,请尝试使用 Scanregw.exe 修复注册表,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
加载 Windows 注册表 hive 时超时。 请参阅 Microsoft KB #2498915 以压缩可能膨胀的注册表 hive,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法使用 utf-8 编解码器对 /etc/google/migrate/disk-mappings-hints 进行解码。 重新运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints 并验证写入的输出是否为有效的 utf-8。对来源虚拟机所做的更改会在后续复制周期生效。
未能将文件系统装载到 {mountable} 上。这通常表示文件系统不一致。 尝试使用 {tool_name} 等工具修复文件系统。如果问题仍然存在,请与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
由于 {line_number}:{line_content} 一行中的尾随英文逗号,无法解析 /etc/fstab 移除尾随英文逗号,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
由于 {line_number}:{line_content} 一行中的路径中有空格,无法解析 /etc/fstab 将空格替换为 \040,并通过运行 mount -a 进行验证,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法解析 /etc/fstab,因为引号未在 {line_number}:{line_content} 一行中终止或关闭 移除未终止的引号或关闭引号并通过运行 mount -a 进行验证,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法解析 {line_number}:{line_content} 一行中的 /etc/fstab 运行 mount -a 并修复生成的错误,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法解析 {line_number}:{line_content} 一行中的 {path} 尝试修复格式,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
/boot 下找不到任何内核。 验证 /boot 是否包含有效的 Linux 内核可执行文件 (vmlinuz),或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
/boot 下找不到任何 initrdinitramfs 映像。 验证 /boot 是否包含有效的初始 RAM 磁盘映像(initrdinitramfs),或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
/etc/fstab 文件包含缺少卷的关键条目:{specs}。 验证指定的卷是否存在,更新 /etc/fstab 文件,尝试修复逻辑卷配置,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
未能清空 {volumes_or_disks}。某些卷被 Windows 标记为“脏”。 在来源虚拟机的所有可用驱动器上运行 chkdsk /f。 如果问题仍然存在,请与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
找不到 grub-mkconfiggrub2-mkconfig 安装 grub2-common 软件包。 对来源虚拟机所做的更改会在后续复制周期生效。
{devices} 的分区表无效。 使用 FixParts 等工具修复分区表。如果问题仍然存在,请与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
设置 force_skip_verifications 标志时适配操作系统失败。 通过在来源虚拟机上运行以下命令来移除 force_skip_verifications 标志。在 Windows 上:运行 rmdir %SystemDrive%\Google\Migrate\force_skip_verifications,在 Linux 上:运行 rmdir /etc/google/migrate/force_skip_verifications
不支持 tboot 从引导加载程序配置中移除 tboot。对来源虚拟机所做的更改会在后续复制周期生效。
未能更新 /etc/sudoers。必须执行此操作,客机环境才能根据 IAM 角色为用户添加 sudo 权限。 确保可以在来源虚拟机上修改 /etc/sudoers,或运行 touch /etc/google/migrate/skip_editing_sudoers 以跳过修改 /etc/sudoers。请注意,如果不进行这些更改,则通过 IAM 角色授予 sudo 访问权限不适用于虚拟机。对来源虚拟机所做的更改会在后续复制周期生效。
未能更新 /etc/sudoers:权限遭拒。必须执行此操作,客机环境才能根据 IAM 角色为用户添加 sudo 权限。 确保可以在来源虚拟机上修改 /etc/sudoers,或运行 touch /etc/google/migrate/skip_editing_sudoers 以跳过修改 /etc/sudoers。 请注意,如果不进行这些更改,则通过 IAM 角色授予 sudo 访问权限不适用于虚拟机。对来源虚拟机所做的更改会在后续复制周期生效。
此映像已进行泛化(已执行 sysprep.exe /generalize)。 在不选择 generalize 选项的情况下重试。对来源虚拟机所做的更改会在后续复制周期生效。
由于 dpkg 配置不正确的软件包,未能安装软件包:{packages} 通过运行 rm /var/cache/debconf/config.dat && dpkg --configure -a 重新构建 dpkg 配置。如果此操作失败或错误仍然存在,请移除失败的软件包,再次重新构建 dpkg 配置,然后在需要时重新安装软件包。对来源虚拟机所做的更改会在后续复制周期生效。
配置 dpkg 时超时。 通过运行 rm /var/cache/debconf/config.dat && dpkg --configure -a 重新构建 dpkg 配置。如果此操作失败或错误仍然存在,请移除失败的软件包,再次重新构建 dpkg 配置,然后在需要时重新安装软件包。对来源虚拟机所做的更改会在后续复制周期生效。

操作系统适配警告

下表列出了您在操作系统适配过程中可能会遇到的警告,以及每个警告的问题排查信息。

消息 操作项
以下软件包已损坏,必须将其移除才能安装关键软件包:{packages} 移除损坏的软件包,并验证您的虚拟机和应用是否按预期工作。对来源虚拟机所做的更改会在后续复制周期生效。
无法将 {requested_license} 许可应用于 {os_info}。 从 {applicable_licenses} 中选择适用的许可。
/etc/fstab 文件包含易失性条目,例如非永久性块存储设备名称。 在来源虚拟机上运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints。对来源虚拟机所做的更改会在后续复制周期生效。
/etc/fstab 文件包含 {mount_type} 条目。 确保在迁移后可以从目标虚拟机访问所有 {mount_type} 条目,或者确保目标虚拟机在无法访问 {mount_type} 条目的情况下成功启动。对来源虚拟机所做的更改会在后续复制周期生效。
{file_path} 文件包含易失性关键条目,例如非永久性块存储设备名称。 在来源虚拟机上运行 mkdir -p /etc/google/migrate && ls -la /dev/disk/*/* > /etc/google/migrate/disk-mappings-hints。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-compute-engine:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-osconfig-agent:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-cloud-sdk:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-cloud-cli:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-rhui-client:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 cloud-regionsrv-client:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 google-cloud-sap-agent:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 dhcp-client:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法安装软件包 {package_name}:{error_message} 解决根本问题并手动安装软件包,或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
缺少 VMware 工具。虚拟机可能无法正常关停。 强制关停可能会导致数据丢失。 在执行割接之前,安装 VMware 工具或正常关停虚拟机。对来源虚拟机所做的更改会在后续复制周期生效。
安全软件 {software} 可能会导致首次启动配置失败和连接问题。 验证机器是否通过网络连接成功启动。 否则,请考虑停用 {software},或与支持团队联系。对来源虚拟机所做的更改会在后续复制周期生效。
无法将元数据服务器添加到 {hosts_path}。 验证 {hosts_path} 是否存在且“管理员”用户可以修改。对来源虚拟机所做的更改会在后续复制周期生效。
无法设置 NTP 特殊轮询间隔注册表值。 验证“管理员”用户是否可以修改注册表路径 {path}。等待应用更改,或手动修改注册表以将其值设置为 {value}。对来源虚拟机所做的更改会在后续复制周期生效。