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 ,然后重新启动。