工程项目里遇到一个问题,就是平时开发用的虚拟机都是在vmware里的,由于交付时要连同虚拟机一同交付,故需要满足适配国产化的需求,就需要找一款开源的软件来打开这些虚拟机。
原本的计划是利用qemu,将vmdk转为qcow2格式,但是却发现windows xp的镜像怎么也打不开,包括更换cpu、开启/关闭处理器虚拟化等操作都做了,Ubuntu的宿主机甚至都被我搞烂了。
后来选了一个折中的方案,就是用VirtualBox这个核心组件开源的软件,将vmdk文件转化为ova格式。
在将6个虚拟机弄完之后,最后一个虚拟机却没办法导入到VirtualBox里,报错如图:
Could not find file for the medium 'D:虚拟机Ubuntu-wangUbuntu 64 位-000001.vmdk' (VERR_FILE_NOT_FOUND).
既然打不开,那怎么办?我又想到了之前废弃的方案中,可以利用qemu把vmdk转为qcow2,然后再用VirtualBox把qcow2转为ova格式,这样虽然麻烦一点,但是应该能解决不兼容的问题,接下来就开始尝试。
然后就发现居然qemu也有报错,显示文件不存在,仔细看居然是一个名为“Ubuntu 64 λ-s001.vmdk”的文件,而原本应该是“Ubuntu 64 位-s001.vmdk”。这样就说明应该是不支持中文的问题,而且我先前弄好的6个虚拟机的vmdk文件名确实都不包含中文。
1.先将vmdk文件名中的“位”字全删掉,命令可以问gpt:
2.重命名后,再次尝试转换成qcow2,仍然不行,同样是找不到文件。报错信息中仍然有那个λ。
说明接下来就是找到这个“λ”到底从哪里来。
这里涉及到vmdk文件的用途:
- VMDK (Virtual Machine Disk) 文件是 VMware 虚拟机的虚拟磁盘文件,包含虚拟机的存储数据,即操作系统、应用程序和数据文件。
- 不带编号的 VMDK 文件(例如 ):
- 作用:它是一个描述文件,用于指向并管理多个分段数据文件(即编号的 VMDK 文件,如 、 等)。
- 内容:描述文件通常包含对虚拟磁盘结构的元数据,例如每个分段文件的路径、大小、逻辑块信息等。
- 带编号的 VMDK 文件(例如 、): 这些是实际的数据文件,每个文件存储磁盘数据的一个部分。VMware 会将这些文件拼接在一起,提供给虚拟机使用。
- VMX 文件的作用:VMX (Virtual Machine Configuration File) 文件是 VMware 虚拟机的配置文件,包含虚拟机的所有配置信息,例如:
- 分配的 CPU 和内存。
- 虚拟机的磁盘和网络适配器配置。
- 指向虚拟磁盘(VMDK 文件)的路径。
- 快照信息。
也就是说,除了把文件改名外,也要把不带编号的vmdk文件里的索引表修改好
记事本打开vmdk文件,把λ全删去,保存。
在操作时,我还把vmx文件里的λ也删去了,根据上面的红字的内容,如果只是想导入到virtualbox里,不改vmx文件也是可以的吧?--存疑
全部改完之后,就可以在virtualbox里注册了
总的来说,就是中文命名出的问题,vmdk文件最好不要包含中文。
到此这篇虚拟机安装xp系统检测不到系统(虚拟机安装了xp怎么打不开)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/62920.html