vmware workstation 的虚拟机导出或者复制到其他虚拟化软件中运行,出现的各种错误。错误类似如下:
Failed to open a session for the virtual machine dddd.
VD: error VERR_NOT_SUPPORTED opening image file ‘/root/ovf/windows10-disk1.vmdk’ (VERR_NOT_SUPPORTED).
VT-x is being used by another hypervisor (VERR_VMX_IN_VMX_ROOT_MODE).
VirtualBox can’t operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE).
Result Code: NS_ERROR_FAILURE (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
软件版本:
解决方法:
1)使用Disk2vhd把镜像格式进行转换:
下载地址:
https://download.sysinternals.com/files/Disk2vhd.zip
https://live.sysinternals.com/disk2vhd.exe
介绍
Disk2vhd 是一个实用工具,用于创建 VHD(虚拟硬盘 - Microsoft 的虚拟机磁盘格式)版本的物理磁盘,以便在 Microsoft 虚拟电脑或 Microsoft Hyper-V 虚拟机 (VM) 中使用。 Disk2vhd 和其他物理转虚拟工具的区别在于,你可以在联机系统上运行 Disk2vhd。 Disk2vhd 使用 Windows XP 中引入的 Windows 卷快照功能,为要包含在转换中的卷创建一致的时间点快照。 甚至可以让 Disk2vhd 在本地卷上创建 VHD,即使 VHD 可以通过转换获得(但磁盘上的 VHD 不同于转换的 VHD,其性能更优)。
Disk2vhd 用户界面列出了系统上存在的卷:
它将为所选卷所在的每个磁盘创建一个 VHD。 它保留磁盘的分区信息,但仅复制所选磁盘上的卷的数据内容。 例如,这使你能够仅捕获系统卷并排除数据卷。
虚拟电脑支持的最大虚拟磁盘大小为 127GB。 如果基于更大的磁盘创建 VHD,则无法从虚拟电脑 VM 访问该 VHD。
若要使用 Disk2vhd 生成的 VHD,请创建具有所需特征的 VM,并将 VHD 作为 IDE 磁盘添加到 VM 的配置中。 首次启动时,启动所捕获 Windows 副本的 VM 将检测 VM 的硬件并自动安装驱动程序(如果映像中存在)。 如果所需的驱动程序不存在,请通过虚拟电脑或 Hyper-V 集成组件安装它们。 还可以使用 Windows 7 或 Windows Server 2008 R2 磁盘管理或 Diskpart 实用工具附加到 VHD。
如果计划从 VHD 启动,请不要附加到创建这些 VHD 时所在的同一系统上的 VHD。 如果这样做,Windows 将为 VHD 分配新的磁盘签名,以避免与 VHD 源磁盘的签名冲突。 Windows 通过磁盘签名引用启动配置数据库 (BCD) 中的磁盘,因此当发生这种情况时,在 VM 中启动的 Windows 将无法找到启动磁盘。
Disk2vhd 不支持在启用 Bitlocker 的情况下转换卷。 如果要为此类卷创建 VHD,请先关闭 Bitlocker 并等待卷完全解密。
Disk2vhd 在 Windows Vista、Windows Server 2008 及更高版本(包括 x64 系统)上运行。
下面的屏幕截图显示在虚拟机中运行的 Windows Server 2008 R2 Hyper-V 系统副本(该虚拟机基于创建该虚拟机时所在的系统):
命令行用法
Disk2vhd 包括命令行选项,支持你编写 VHD 的创建脚本。 通过驱动器号(如 c:)指定你要在快照中包含的卷,或者使用“*”包含所有卷。
用法:disk2vhd <[drive: [drive:]…]|[*]>
示例:disk2vhd * c:\vhd\snapshot.vhd
Windows 安装的物理到虚拟硬盘驱动器迁移对于拥有软件保障和 Windows XP、Windows Vista 和 Windows 7 的完整零售副本的客户而言是一项有效的功能。 软件保障为用户提供了宝贵的权益,请联系 Microsoft Corporation 以获取更多信息。 原始设备制造商 (OEM) 使用 OEM 版本的 Windows XP、Windows Vista 和 Windows 7 安装的这些产品根据 Microsoft 许可条款,可能不会转移到虚拟硬盘。
方法二使用qemu对镜像进行转换,这里以centos7为例:
- 先卸载原有 qemu-kvm
yum remove qemu-kvm –y
- 下载安装新的
下载
wget https://download.qemu.org/qemu-9.0.2.tar.xz
安装依赖包
yum -y install gcc gcc-c++ automake libtool zlib-devel glib2-devel bzip2-devel libuuid-devel spice-protocol spice-server-devel usbredir-devel libaio-devel
安装python:
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel
yum -y install openssl-devel
yum -y ncurses-devel sqlite-devel readline-devel
yum -y tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum -y install libffi-devel wget
cd /root/
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz
mkdir /usr/local/python3
cd Python-3.8.3
./configure --prefix=/usr/local/python3
make && make install
# 查看当前python软连接
ls /usr/bin/ |grep -i python
# rm -rf /usr/bin/python
#添加python3的软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python38
python38 -V
# rm -rf /usr/bin/pip
#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip38
pip38 -V
pip38 install --upgrade pip
设置默认python:
mv /bin/python /bin/python27
cp /bin/python38 /bin/python
mv /bin/pip /bin/pip27
cp /bin/pip38 /bin/pip
python -V
编译安装
tar xvJf qemu-9.0.2.tar.xz
cd qemu-9.0.2/
yum install iasl -y
yum -y install gcc gcc-c++ perl kernel-devel kernel-headers make vim
yum -y install centos-release-scl
yum -y install devtoolset-10-gcc*
yum -y install devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils
# 或者通过源码安装
sudo yum install -y gcc gcc-c++ glibc-devel.i686 libmpc-deve
curl -O https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar -xvf gcc-13.2.0.tar.gz
mkdir objdir
cd objdir
./gcc-13.2.0/configure --prefix=/usr/local/gcc
make -j2
make install
export CC=/usr/local/gcc/bin/gcc
export CXX=/usr/local/gcc/bin/g++
export LD_LIBRARY_PATH="/usr/local/gcc/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/gcc/bin:$PATH"
pip install --upgrade pip
pip install Sphinx
pip install sphinx_rtd_theme==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install ninja -i https://pypi.tuna.tsinghua.edu.cn/simple/
./configure
make && make install
默认 安装在:/usr/local/bin/
编译完成之后 做软链接
ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-kvm
ln -s /usr/local/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm
ln -s /usr/local/bin/qemu-img /usr/bin/qemu-img
查看当前qemu版本
qemu-img --version
qemu-kvm –version
转换镜像格式,例如,把vmdk转换为qcow2:
qemu-img convert -f vmdk -O qcow2 vm/win10.vmdk vmqq/win10-test.qcow2
参考资料:https://learn.microsoft.com/zh-cn/sysinternals/downloads/file-and-disk-utilities