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 ,然后重新啟動。