-
-
【qemu虚拟化随笔一】实验环境搭建
-
发表于: 2024-5-9 08:54 2437
-
背景:
生活所迫,需要学习qemu相关的知识,这里就记录一下学习的笔记吧。
qemu:
开源硬件虚拟化软件,可以在不同的主机平台上运行虚拟机,采用全系统仿真,可以模拟完整的计算机系统,包括处理器、内存、存储和外围设备。
kvm:
与QEMU不同,KVM作为Linux的一个内核模块。它利用Intel VT或AMD-V等硬件扩展来实现高效的硬件辅助虚拟化。
qemu-kvm框架:
目前的一种主流虚拟化解决方案。Qemu将KVM整合进来,通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来做。 kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备。 qemu模拟IO设备(网卡,磁盘等),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
环境搭建:
ubuntu24.04 + qemu7.0 + win7
- 编译安装qemu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 1. 安装qemu编译依赖库 sudo apt-get install libglib2.0-dev sudo apt-get install libpixman-1-dev sudo apt-get install libfdt-dev sudo apt-get install ninja-build sudo apt-get install python3-venv sudo apt-get install libgtk-3-dev #2. github克隆qemu源码 (https://github.com/qemu/qemu) #3. 编译qemu mkdir build cd build/ .. /configure -- enable -gtk make -j8 #4. 安装qemu sudo make install |
- 准备一个 Windows 磁盘用于安装系统
1 2 | # qcow2 是 QEMU 上常用的磁盘格式,支持同时读写 qemu-img create -f qcow2 windows7.qcow2 40G |
- 准备virtio驱动
virtio-win-0.1.240
如图所示,把需要的东西都准备好
qemu启动时需要加大量的运行参数,这里编写一个启动脚本,方便启动qemu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | declare options= '' # 设置虚拟机名称 options= "${options} -name 'windows7'" # 分配 2GB 内存 options= "${options} -m 2G" # 启用 KVM 硬件加速 options= "${options} -accel kvm" # 使用默认 CPU 模型 options= "${options} -cpu qemu64" # 设置启动顺序为光驱 options= "${options} -boot order=d" # 使用 VirtIO 作为图形设备 options= "${options} -vga virtio" # 使用宿主时钟作为实时时钟 options= "${options} -rtc base=localtime" # 配置 CPU 拓扑 options= "${options} -smp 1,sockets=1,cores=1,threads=1,maxcpus=1" # 附加 Windows 7 ISO 作为光驱 options= "${options} -drive file=/home/xxxxx/work/iso/win7.iso,media=cdrom" # 附加 VirtIO 驱动 ISO 作为光驱 options= "${options} -drive file=/home/xxxxx/work/virtio/virtio-win-0.1.240.iso,media=cdrom" # 附加 Windows 7 虚拟硬盘 options= "${options} -drive file=/home/xxxxx/work/os/win7.qcow2,format=qcow2,if=virtio" # 启用 USB 支持 options= "${options} -device usb-ehci" # 添加 USB 鼠标设备 options= "${options} -device usb-tablet" # 添加 VirtIO 网络设备 options= "${options} -device virtio-net-pci" # 设置 CPU 亲和性为核心 0 到 3 # 用lscpu可以看一下自己的cpu颗粒数,不一定是0到3 /bin/taskset -c 0-3 qemu-system-x86_64 ${options} # 清除 options 变量 unset options |
注意:脚本中路径含有xxxxx,需要替换成你自己的真实路径
最后运行上面的脚本,最后win7虚拟机就成功运行了。看效果如下:
给虚拟机系统打快照:
1 2 3 4 5 6 | #打快照 qemu-img snapshot -c 自定义快照名称 windows7.qcow2 #查看快照 qemu-img snapshot -l windows7.qcow2 #恢复快照 qemu-img snapshot -a 快照的ID windows7.qcow2 |
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2024-5-9 17:17
被编程两年半编辑
,原因:
赞赏
看原图
赞赏
雪币:
留言: