QEMU 虚拟 aarch64(arm64) 记录

QEMU 虚拟 aarch64(arm64) 记录

这次是在 x86_64 机器上使用 QEMU 虚拟 aarch64(arm64) 环境,以便进行相关的测试。

我的宿主机是 ManjaroLinux ,所以下面的操作都是基于此的,其他的 LInux 发行版本也是大同小异的。

1、安装 QEMU 和 libvirt 等

先要安装 QEMU ,QEMU 相关的内容可以参考 archlinux wiki/QEMU (简体中文) ,这里就不再赘述。

需要安装 edk2-armvirt,否则在创建虚拟机的时候会出现 ACPI requires UEFI on this architecture 的错误,可以参考 鲲鹏BoostKit虚拟化使能套件 > 故障案例> KVM虚拟化 故障案例> unsupported configuration: ACPI requires UEFI on this architecture

# 安装 qemu 和 qemu-arch-extra(额外架构支持,否则不支持arm64)
sudo pacman -S qemu qemu-arch-extra
# 如果需要也还可以安装 qemu-block-rbd、qemu-block-iscsi 等。

# 安装 libvirt 和 virt-manager(libvirt的图形化管理工具)
sudo pacman -S libvirt virt-manager
# 安装 edk2
sudo pacman -S edk2-armvirt

2、创建虚拟机,安装 centos-7-aarch64 系统

打开 virt-manager 工具,连接到 QEMU/KVM 就可以创建虚拟机了。

先下载系统镜像文件,可以在 http://isoredirect.centos.org/altarch/7/isos/aarch64/ 选择比较快的镜像站点进行下载。

安装的过程中碰到了虚拟网络 NAT 未激活 的问题,这里需要进行下面的操作:

# 安装iptables、dnsmasq和ebtables包
# 如果不安装,后面的 virsh 启动网络会失败
#     内部错误:Failed to initialize a valid firewall backend
sudo pacman -S ebtables iptables dnsmasq
# 重新启动 libvirtd 服务
sudo systemctl restart libvirtd
# 使用 virsh 重新定义网络
sudo virsh net-define /etc/libvirt/qemu/networks/default.xml
# 启动默认网络
virsh net-start default
# 重新启动 libvirtd 服务
sudo systemctl restart libvirtd

libvirt 网络相关操作可参考:KVM 虚拟机 配置 NAT 连接方式上网

安装步骤如下:

graph LR; a[菜单栏点击<br><b>文件</b>]-->b[选择<br><b>新建虚拟机</b>] b-->c[弹出窗口内<br>架构选项里面选择aarch64<br>点击下一步] c-->d[选择下载的<br>系统镜像文件] d-->e[选择<br>内存和CPU配置] e-->f[创建<br>虚拟磁盘镜像] f-->g[选择<br>网络] g-->h[确认<br>安装]

虚拟机创建步骤步骤

详细安装过程可以参考:在X86机器上用KVM启动aarch64虚拟机

点击开始安装之后如果没有正常进入引导启动,也可以自己设置引导选项中的第一个启动项为 CDROM ,然后重新启动。

原文地址:https://www.cnblogs.com/oloroso/p/14596973.html