在qemu中创建arm64的debian虚拟机
方法与上一篇文章类似。在Android上使用aarch64构架的虚拟debian的开销相对于x86_64更小一些。
方法类似qemu不使用iso镜像,网络安装debian,注意需使用apt安装qemu-system-aarch64。
ARM64(aarch64)的debian网络安装所需相关文件可在清华源https://mirrors.tuna.tsinghua.edu.cn/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/找到。
安装虚拟机的命令:
qemu-system-aarch64 -smp 2 -M virt -cpu cortex-a53 -m 512M -initrd initrd.gz -kernel linux -append "root=/dev/ram console=ttyAMA0" -global virtio-blk-device.scsi=off -device virtio-scsi-device,id=scsi -drive file=debian10.1-aarch64.qcow2,id=rootimg,cache=unsafe,if=none -device scsi-hd,drive=rootimg -netdev user,id=unet -device virtio-net-device,netdev=unet -net user -nographic
该配置为双核(-smp 2),构架CortexA53(-cpu cortex-a53),512M内存(-m 512M),硬盘文件debian10.1-aarch64.qcow2,使用NAT连接网络。
注意,与x86不同,aarch64没有为图像分配默认的显存,所有安装和调试信息从串口ttyAMA0输出,故启动后将直接在终端内访问虚拟机(Windows终端,如cmd或powershell,可能导致乱码出现)。
运行虚拟机的命令:
qemu-system-aarch64 -smp 1 -M virt -cpu cortex-a53 -m 512M -initrd initrd.img-4.19.0-6-arm64 -kernel vmlinuz-4.19.0-6-arm64 -append "root=/dev/sda2 console=ttyAMA0" -global virtio-blk-device.scsi=off -device virtio-scsi-device,id=scsi -drive file=debian10.1-aarch64.qcow2,id=rootimg,cache=unsafe,if=none -device scsi-hd,drive=rootimg -netdev user,id=unet -device virtio-net-device,netdev=unet -net user -nographic
如需使用32位arm,可使用qemu-system-arm,构架需改为cortex-a7。注意需要找到相应构架版本的linux和initrd.gz。
对于支持硬件虚拟化的arm平台(如CortexA15构架)和arm64平台,在内核启用kvm的情况下,同样可以添加-enable-kvm参数来启用kvm虚拟化加速。