QEMU的aarch64架构虚拟机通过EFI运行Alpine Linux
QEMU提供了aarch64架构的EFI文件,可以像x86_64平台的EFI启动一样正常引导和启动Linux系统。
本文在aarch64的Debian(Armbian)上进行操作,在QEMU中通过EFI引导和安装Alpine Linux。
使用apt即可安装所需软件:
sudo apt-get update
sudo apt-get install qemu qemu-system-aarch64 qemu-efi-aarch64 qemu-utils
安装Alpine Linux需要从官网下载iso文件,这里假设已经下载了文件名为alpine-virt-3.15.4-aarch64.iso的光盘镜像文件。
创建用于储存EFI引导的虚拟存储器:
dd if=/dev/zero of=flash0.img bs=1M count=64
dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=flash0.img conv=notrunc
注意,用于EFI的flash0.img必须不小于64MB。
之后创建硬盘文件用于存放系统:
qemu-img create -f qcow2 alpine.qcow2 1G
注意,默认的EFI分区为512MB,且Alpine Linux安装程序会创建swap分区,建议硬盘大小设置成1GB或更高。系统安装完成后可按需要使用其他分区工具(如gparted、fdisk等)调整EFI和swap分区。
之后就可以启动qemu,一个参考启动命令如下:
qemu-system-aarch64 --enable-kvm -m 256 -cpu host -smp 2 -M virt -nographic \
-pflash flash0.img \
-drive file=alpine-virt-3.15.4-aarch64.iso,id=cdrom,if=none,media=cdrom \
-device virtio-scsi-device -device scsi-cd,drive=cdrom \
-drive if=none,file=alpine.qcow2,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-netdev user,id=eth0 \
-device virtio-net-device,netdev=eth0
如果系统不支持aarch64的kvm,可以移除--enable-kvm参数。其他参数可按需要调整。如果是在x86平台上运行qemu-system-aarch64,除了需要移除--enable-kvm参数,还需要将-cpu host修改为-cpu cortex-a53。
之后按照正常的安装Alpine Linux的步骤进行安装即可。