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的步骤进行安装即可。

标签: Linux, qemu

添加新评论