重新配置目标虚拟机时,VMWare Converter 独立版在 98% 时出现“找不到源文件”错误

重新配置目标虚拟机时,VMWare Converter 独立版在 98% 时出现“找不到源文件”错误

我正在尝试将最近更新的物理 Debian 转换为虚拟机,但该过程在 98% 时停止,并出现一个错误,我将在帖子末尾附上该错误。

从错误中我推断出,出于某种原因,转换器希望某些模块位于 /lib/,但实际上这些模块已被移至 /lib/i386-linux-gnu。我预计这是系统在几周前更新时完成的,据我了解,这样做是为了更好地支持 32 位和 64 位应用程序。

现在我想问一下是否有办法让 VMWare Converter Standalone 使用正确的目录,我是否可以使用符号链接将 /lib 连接到 /lib/i386-linux-gnu,或者在转换过程正在进行时是否可以安全地将新目录内的所有模块复制到 /lib?

[编辑] 在系统更新之前,我已经成功对该特定机器进行了多次虚拟复制。

[EDIT2] 尽管存在错误,但转换后的机器似乎可以工作,并且可以从虚拟机中找到模块。

[EDIT3] 我做了一个邮政在 VMWares 自己的论坛上,有人讨论过这个问题,他们说问题在于 VConverter 不支持 debian,并且在某个地方被错误地设置为“其他 linux”。以下是定义问题的回复:

我检查了代码。有一处 Debian 未被识别为单独的发行版;然后它被设置为“其他 Linux”,这导致错误的重新配置。这实际上不是一个错误,因为 Debian 无论如何都不受支持。您提到虚拟机可以工作。正如明智的父亲问儿子“为什么太阳会发光?” - “如果它有效,就不要碰它” :-) 但如果您真的想调整它 - 创建一个文件“etc/lsb-release”,在其中写入“Ubuntu”和一个虚构的版本(例如 16.04)并再次转换以查看会发生什么。

此后我尝试创建 /etc/lsb-release 文件,但没有帮助。

失败:转换过程中发生错误:'* 查找模块 scsi_mod 的依赖项 * * 查找模块 sd_mod 的依赖项 * * 查找模块 mptspi 的依赖项 * * 查找模块 mptscsih 的依赖项 * * 查找模块 BusLogic 的依赖项 * * 查找模块 ahci 的依赖项 * * 查找模块 ide-disk 的依赖项 * 在 4.9.0-6-686-pae 中找不到模块 ide-disk * 查找模块 pcnet32 的依赖项 * fstab 文件为 /mnt/p2v-src-root/etc/fstab * 发现根文件系统类型为 ext3 * 查找模块 ext3 的依赖项 * 在 4.9.0-6-686-pae 中找不到模块 ext3 * 发现根文件系统挂载选项为 errors=remount-ro * 处理的根文件系统挂载选项为 errors=remount-ro * busybox 挂载选项为 * 新的根将不会以只读方式挂载 * 打印模块列表:* /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/scsi/scsi_mod.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/scsi/sd_mod.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/message/fusion/mptspi.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/message/fusion/mptscsih.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/scsi/BusLogic.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/ata/ahci.ko * /mnt/p2v-src-root/lib/modules/4.9.0-6-686-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko * 将 lib 目录作为 lib * /mnt/p2v-src-root/lib/libc.so.6 -> /mnt/p2v-src-root/tmp/initrd.ZFby2e/lib * /mnt/p2v-src-root/lib/libm.so.6 -> /mnt/p2v-src-root/tmp/initrd.ZFby2e/lib 错误:在复制文件期间找不到源文件 /mnt/p2v-src-root/lib/libm.so.6(返回代码 1)'

答案1

1-我尝试在 /lib64 中为每个文件创建指向 /lib/x86_64_linux_gnu/ 的符号链接 sudo ln -s /lib/x86_64_linux_gnu/* /lib64/
不起作用

2-我尝试将所有文​​件从/lib/x86_64_linux_gnu/复制到/lib64:错误发生变化,丢失的文件是/lib64/ld-linux-x86-64.so.2。

3- 由于 /lib64/ld-linux-x86-64.so.2 是一个符号链接,因此我尝试删除符号链接 /lib64/ld-linux-x86-64.so.2 -> /lib/ld-2.24.so,将其替换为真实文件 ld-2.24.so,并将其命名为符号链接名称。但是,当我删除符号链接时,debian 崩溃了,无法正常重启。我不得不使用 Debian CD 并进入救援模式,以使符号链接恢复正常(/lib64/ld-linux-x86-64.so.2 -> /lib/ld-2.24.so)。重启后,我回到了开始的地方,但我不想再调查这个问题了。

4-虽然这个错误(..98% 失败..)似乎很糟糕,转换实际上设法创建了一个可启动的虚拟机,令人惊讶的是,它似乎运行良好。所以可能没有问题。

-- 我使用 Vmware Converter standalone 6.0.0 和运行 Debian 9(带有 apache 服务器)和 Vmware ESXi(Vsphere 6)的物理机。

答案2

我曾经遇到过类似的问题,结果发现我有一个包含数十万个小文件的文件夹,只要我将这些文件打包成一个 zip 文件并删除原始文件,它就可以正常工作。

乌鲁斯

答案3

经过几次尝试,我成功了。

问题实际上源于 vCenter Converter Standalone 无法识别系统操作系统。

我最终设法通过欺骗 vCenter Converter Standalone 认为该机器是 Ubuntu 来实现 100% 转换。登录到原始机器并:

  • 备份/etc/os-release

    mv /etc/os-release /etc/os-release.bak
    
  • 写入新os-release文件

    nano /etc/os-release
    

    新文件的内容/etc/os-release

    NAME="Ubuntu"
    VERSION="18.04 LTS (Bionic Beaver)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 18.04 LTS"
    VERSION_ID="18.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=bionic
    UBUNTU_CODENAME=bionic
    
  • 照常启动 Converter Standalone 任务

  • 完成后,您可以启动虚拟机并恢复os-release备份

    rm /etc/os-release
    mv /etc/os-release.bak /etc/os-release
    

相关内容