以前一直采用的 vftool,但是虚拟机稳定性堪忧,经常性遇到内核 panic 以及文件系统损坏的情况,想着 qemu 可能稳定些,研究了一下 qemu 的方法。
必要文件准备
- 首先安装本体
brew install qemu
- 来 这个地方 下载 OVMF 镜像,然后转换到合适大小(规定 64M)。
qemu-img convert -f raw -O qcow2 ovmf.bin pflash0.qcow2
qemu-img convert -f raw -O qcow2 vars.bin pflash1.qcow2
qemu-img resize pflash1.qcow2 64M
qemu-img resize pflash1.qcow2 64M
- 准备好你的 iso 镜像(支持 UEFI 即可)。
- 准备磁盘
qemu-img create -f qcow2 disk.qcow2 10G
- 开始安装
sudo qemu-system-aarch64 -M virt \
-cpu host --accel hvf \
-smp 4 \
-m 2048 \
-rtc base=localtime,clock=rt \
-drive file=pflash0.qcow2,format=qcow2,if=pflash \
-drive file=pflash1.qcow2,format=qcow2,if=pflash \
-device ramfb \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-nic vmnet-shared \
-drive file=disk.qcow2,format=qcow2,if=virtio \
-cdrom nixos.iso # 你的镜像
- 启动脚本
给 linux 开启 ssh 登录之后即可一键后台启动
sudo nohup qemu-system-aarch64 -M virt \
-cpu host --accel hvf \
-smp 4 \
-m 2048 \
-rtc base=localtime,clock=rt \
-drive file=pflash0.qcow2,format=qcow2,if=pflash \
-drive file=pflash1.qcow2,format=qcow2,if=pflash \
-device ramfb \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-nic vmnet-shared \
-drive file=disk.qcow2,format=qcow2,if=virtio \
-nographic > log 2>&1 &