我正在尝试使用 ARM/M1 macOS 上的 qemu 模拟 aarch64 和/或 arm。但是,在安装多个安装程序 iso(ubuntu aarch64、标准 alpine aarch64 等)后,我似乎在 ARM macOS 中只看到一个空白提示。
我已经尝试了所有方法:
qemu-system-aarch64
-machine virt \
-m 512M \
-cpu max \
-smp 1 \
-netdev user,id=vnet,hostfwd=:127.0.0.1:0-:22 \
-device virtio-net-pci,netdev=vnet \
-drive file=ubuntu-image.img,if=none,id=drive0,cache=writeback \
-device virtio-blk,drive=drive0,bootindex=0 \
-drive file=mini.iso,if=none,id=drive1,cache=writeback \
-device virtio-blk,drive=drive1,bootindex=1
到:
qemu-system-aarch64 \
-machine virt \
-m 512M \
-cpu max \
-smp 1 \
-boot d -cdrom mini.iso
以下是我看到的结果:
当我尝试 x86 virt 机器时,给定相同的参数,一切都正常。qemu-system-aarch64 -machine virt 是否可以在 ARM macOS 上运行?是否有任何命令适用于 M1/ARM macOS 上的 aarch64?
答案1
搞清楚了。看来你需要定义 UEFI(例如 edk2)和适用于 aarch64 机器的 CPU。
UEFI:
-bios "/opt/homebrew/Cellar/qemu/6.1.0_1/share/qemu/edk2-aarch64-code.fd"
中央处理器:
-cpu cortex-a72
(只尝试了几个,但只有 cortex-a72 对我有用。)
因此,总的来说:
qemu-system-aarch64 \
-M virt,highmem=off \
-accel hvf \
-m 1G \
-cdrom myiso.qcow2 \
-boot d \
-bios "/opt/homebrew/Cellar/qemu/6.1.0_1/share/qemu/edk2-aarch64-code.fd" \
-serial stdio \
-boot menu=off \
-cpu cortex-a72 \
-nodefaults