X86平台安装arm虚拟机
Fedora镜像 https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/aarch64/iso/Fedora-Server-dvd-aarch64-29-1.2.iso
Centos镜像
http://mirrors.huaweicloud.com/centos-altarch/7.6.1810/isos/aarch64/CentOS-7-aarch64-Everything-1810.iso
1.安装qemu-system-aarch64
如果在宿主机上只安装了qemu-kvm的话,宿主机上只能运行X86构架的虚拟机,并能够利用kvm加速,并不能将arm指令翻译成X86指令运行。所有还需要安装qemu-system-aarch64,它提供了aarch64架构虚拟机在x86架构上的运行支持。
可以通过下载源代码并编译安装:
wget https://download.qemu.org/qemu-2.11.0.tar.xz
tar xvJf qemu-2.11.0.tar.xz
cd qemu-2.11.0
./configure –-target-list=aarch64-softmmu
make
make install
在安装的过程中可能会报缺少一些依赖包
yum install zlib-devel
yum install glib2-devel
yum install pixman-devel
2.UEFI固件下载
以前系统的启动过程可以简化为 BIOS固件—->引导程序—->操作系统,但是由于传统的BIOS启动方式存在许多问题,如bios运行在16位模式,寻址空间小,运行慢等,所以现在X86、ARM架构等架构都改采用了改进的 UEFI 启动方式(当然会有兼容传统BIOS启动方式的考虑),这种情况下系统启动过程如下图所示。
UEFI启动中最开始执行的也是专门的UEFI固件。因此,我们要想引导到安装光盘(支持UEFI模式)进一步安装aarch64架构的系统,先要下载对应架构(这里是aarch64)的UEFI固件。
QEMU_EFI.fd(下载地址:
http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64
3.操作系统下载
使用了arm架构的fedora
Fedora-Server-dvd-aarch64-29-1.2.iso
4.创建虚拟硬盘
利用qemu-img指令可以创建1个空的虚拟硬盘,便于后面安装的时候将系统安装到虚拟硬盘上。
qemu-img create -f raw -o size=30G test.img
5.虚拟机安装
eg:
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios QEMU_EFI.fd -nographic -drive if=none,file=Fedora-Server-dvd-aarch64-29-1.2.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=test.img,id=hd0 -device virtio-blk-device,drive=hd0
执行上述命令时确保QEMU_EFI.fd、Fedora-Server-dvd-aarch64-29-1.2.iso、test.img文件在当前目前下,否则需要修改成对应的文件路径。在上述参数中,指定安装光盘这里-drive if=none,file=Fedora-Server-dvd-aarch64-29-1.2.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom上述指定能100%正确的完成安装。
-
6.利用virt-manager启动虚拟机
前面能够利用命令成功启动虚拟机啦,但是对于我这种入门级的选手来说更想用带界面的virt-manager工具去直观地管理虚拟机(开关虚拟机、添加删除网络接口也很方便),于是进行了一番尝试,找到了一个可行的方法。
首先是安装virt-manager工具。
yum install virt-manager
安装UEFI固件
wget https://www.kraxel.org/repos/firmware.repo
yum install edk2.git-aarch64
编辑/etc/libvirt/qemu.conf最后一行添加
nvram = [
"/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw"
]
源博客地址
https://marcin.juszkiewicz.com.pl/2015/04/17/running-vms-on-fedoraaarch64/
https://www.cnblogs.com/jinanxiaolaohu/p/11003388.html