为QEMU创建基于UEFI的AARCH64虚拟机

QEMU默认将会采用seabios的启动方式,本文将介绍如何以UEFI模式启动

1. 下载所需要的安装文件

wget http://cdimage.debian.org/debian-cd/8.1.0/arm64/iso-cd/debian-8.1.0-arm64-netinst.iso

2. 创建UEFI固件文件

$ dd if=/dev/zero of=flash0.img bs=1M count=64
$ LINARO_EDK2_URL=http://releases.linaro.org/15.01/components/kernel/uefi-linaro/
$ wget $LINARO_EDK2_URL/release/qemu64-intelbds/QEMU_EFI.fd
$ dd if=QEMU_EFI.fd of=flash0.img conv=notrunc
$ dd if=/dev/zero of=flash1.img bs=1M count=64
$ dd if=/dev/zero of=hda.img bs=1M count=8192

3. 创建块设备

dd if=/dev/zero of=hda.img bs=1M count=8192

4. QEMU 命令行设置,我在这里实现了一个脚本文件install.sh :

#!/bin/sh

CDROM_IMG=debian-8.1.0-arm64-CD-1.iso
HDA_IMG=hda.img

make_cdrom_arg()
{
  echo "-drive file=$1,id=cdrom,if=none,media=cdrom" \
    "-device virtio-scsi-device -device scsi-cd,drive=cdrom"
}

make_hda_arg()
{
  echo "-drive if=none,file=$1,id=hd0" \
    "-device virtio-blk-device,drive=hd0"
}

HDA_ARGS=`make_hda_arg $HDA_IMG`
if [ $# -eq 1 ]; then
  case $1 in
    install)
      CDROM_ARGS=`make_cdrom_arg $CDROM_IMG`
      ;;
    *)
      CDROM_ARGS=""
      ;;
  esac
fi

qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic \
  -pflash flash0.img \
  $CDROM_ARGS \
  $HDA_ARGS \
  -netdev user,id=eth0 \
  -device virtio-net-device,netdev=eth0 

4. 更改文件执行权限 并执行:

chmod +x ./install.sh

./install.sh

 

到此,你就实现了一个UEFI启动的AARCH64虚拟机.

Enjoy, and have a lot of fun!

文档中未直接提及qemu - efi - aarch64的安装教程,但可从安装aarch64虚拟机的过程中获取一些相关线索。 在使用qemu - system - aarch64创建aarch64虚拟机时,需要下载对应架构(aarch64)的UEFI固件,可通过以下命令下载: ```bash wget http://releases.linaro.org/components/kernel/uefi - linaro/16.02/release/qemu64/QEMU_EFI.fd ``` 这表明在构建aarch64环境时,获取UEFI固件是重要步骤,虽然未明确是安装qemu - efi - aarch64,但可推测获取UEFI固件是相关操作的一部分。在安装aarch64虚拟机时,也需要在启动命令中指定该固件,如: ```bash qemu - system - aarch64 - m 16384 - cpu cortex - a57 - smp 2 - M virt - bios QEMU_EFI.fd - nographic - drive if = none,file = /home/qemu/CentOS - 8.4.2105 - aarch64 - dvd1.iso,id = cdrom,media = cdrom - device virtio - scsi - device - device scsi - cd,drive = cdrom - drive if = none,file = /home/kvm - files/zwl - centos - aarch64.qcow2,id = hd0 - device virtio - blk - device,drive = hd0 - net user,hostfwd = :2222 - :22 - net nic ``` ```bash qemu - system - aarch64 \ - machine virt \ - cpu cortex - a57 \ - smp 1 \ - m 2048 \ - bios /data/kvm/QEMU_EFI.fd \ - device virtio - scsi - device \ - device scsi - cd,drive = cdrom \ - drive if = none,file = /data/kvm/iso/CentOS - 7 - aarch64 - Minimal - 1804.iso,id = cdrom,media = cdrom \ - device virtio - blk - device,drive = vd0 \ - drive if = none,file = /data/kvm/centos - aarch64.qcow2,id = vd0 \ - device virtio - net - device,netdev = eth0 \ - netdev user,id = eth0,hostfwd = tcp:172.72.0.106:10022 - :22 \ - nographic ``` 这里的`-bios`参数指定了UEFI固件的路径,由此可推测安装qemu - efi - aarch64可能涉及下载UEFI固件并在相关命令中正确指定其路径。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

认真的柯南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值