Windows通过qemu直接开启img、qcow2等格式磁盘镜像(无需转vmdk)
文章目录
qemu
QEMU(Quick EMUlator)是一款开源的虚拟化软件,能够模拟多种硬件平台,并支持多种虚拟化技术,如 KVM(Kernel-based Virtual Machine)加速。QEMU 能够在多个操作系统上运行,包括 Windows、Linux 和 macOS。
-
下载 QEMU: 访问 QEMU 官方网站或通过包管理器下载适用于 Windows 的 QEMU 版本。
官网地址
:qemu官网下载 -
安装 QEMU: 解压下载的文件到您选择的目录,并确保路径添加到系统的环境变量中。(配置好变量路径方便,手动进入路径也可)
-
准备好一个 x86 的镜像或者 img 的镜像,格式可以为 qcow2
QEMU 支持多种磁盘映像格式,包括 raw、qcow2、qed、vdi、vhd、vmdk、cow、parallels 和 dmg 等。
Windows环境安装虚拟网卡
官方地址:
openvpn官网下载
这里我们选择 openvpn
双击下载下来的 openvpn-connect-3.3.6.2752_signed.msi 软件,和安装其它软件一样,一步步安装即可
安装完成之后,widnows就会多出一块网卡
注:这里的tap0名称是我已经改动过的,以便辨别(网卡名称最好不要用中文来命名!)
刚安装完的时候,你们应该会显示这款网卡连接状态是断开的。那么这里我们需要把我们Windows本地环境上网的那块网卡共享给这块新安装的网卡。
右键本地上网的那张网卡——属性——共享选项卡里面选择共享网络给tap0即可。
那么我们会看到这块网卡已经默认分配好了IP地址与子网掩码。就不需要去修改它了
开启环境
首先查看磁盘镜像文件的详细信息,重点关注 file format, 以下示例为 qcow2
C:\Users\旺仔Sec>qemu-img info F:\A-Server.img
image: F:\A-Server.img
file format: qcow2
virtual size: 1 GiB (1073741824 bytes)
disk size: 886 MiB
cluster_size: 65536
Format specific information:
compat: 0.10
compression type: zlib
refcount bits: 16
Child node '/file':
filename: F:\A-Server.img
protocol type: file
file length: 886 MiB (929562624 bytes)
disk size: 886 MiB
输出解释
- image: 磁盘镜像文件的名称。
- file format: 磁盘镜像文件的格式,例如
qcow2
、raw
等。 - virtual size: 磁盘镜像的虚拟大小,即分配给虚拟机的最大空间。
- disk size: 磁盘镜像当前实际占用的空间。
- cluster_size: 对于
qcow2
格式,这是集群的大小。 - Format specific information: 特定格式的详细信息,如兼容性、延迟引用计数等。
开机
C:\Users\旺仔Sec>qemu-system-x86_64 -drive file=F:\A-Server.img,format=qcow2 -vnc :0 -net nic -net tap,ifname=tap0
参数解释
- 启动 QEMU x86_64 架构的虚拟机。
- 使用
F:\A-Server.img
作为磁盘镜像文件,格式为qcow2
。 - 启用 VNC 服务器,显示编号为
:0
。 - 创建一个默认的虚拟网络接口卡。
- 使用宿主机上的
tap0
接口进行网络通信。
VNC远程连接环境
可通过 netstat -ano 查看开启的 vnc 端口,如无特殊设置默认为 5900
通过 vnc 软件连接(可以去网上下载这个vnc软件,或者大家可以私信我也行)
成功连接
网络通信问题
因为我们安装的那张网卡是与本地widnows的上网网卡是共享的,所以我们开启的环境也是能够连通网络的。
环境快照
这里需要注意我们连接后的所有操作都将直接写入虚拟磁盘文件,如果需要做一些敏感操作这里提供两个思路
1. 备份环境
直接 copy 一份源文件作备份,因为其他硬件皆为虚拟化占用也不会太大,这样可无需学习 qemu-img
工具建立快照等流程,简单无脑。
2. 建议快照
如果想要优雅的实现我们熟悉的快照功能,可利用 qemu-img 实现快照功能
创建快照
C:\Users\旺仔Sec>qemu-img snapshot -c my_snapshot F:\A-Server.img
输出解释:
这里的 -c
选项表示创建快照,my_snapshot
是你给快照起的名字。
列出快照
C:\Users\旺仔Sec>qemu-img snapshot -l F:\A-Server.img
Snapshot list:
ID TAG VM_SIZE DATE VM_CLOCK ICOUNT
1 my_snapshot 0 B 2024-09-05 22:44:48 0000:00:00.000 0
恢复快照
C:\Users\旺仔Sec>qemu-img snapshot -a my_snapshot F:\A-Server.img
这里的 -a
选项表示应用(恢复)快照。
删除快照
C:\Users\旺仔Sec>qemu-img snapshot -d my_snapshot F:\A-Server.img
这里的 -d
选项表示删除快照。
注意事项
- 快照功能依赖于磁盘镜像格式,只有支持快照的格式(如
qcow2
)才能使用快照功能。 - 快照会占用额外的存储空间,因为它们实际上是存储在磁盘镜像文件中的增量数据。
- 在生产环境中使用快照时,应谨慎操作,确保数据的一致性和完整性。
附录:
如果觉得 qemu 不方便管理,也可转成熟悉的 vmdk 格式,通过 Vmware 管理,可享受 vmnet 网络、vmtools 以及快照等功能图形化管理虚拟机
可以参考我的另外两篇文章