通过qemu-system-aarch64在x86上安装aarch64虚拟机

qemu源码下载、编辑及安装

源码下载

如果在宿主机上只安装了qemu-kvm的话,宿主机上只能运行X86构架的虚拟机,并能够利用kvm加速,并不能将arm指令翻译成X86指令运行。所有还需要安装qemu-system-aarch64,它提供了aarch64架构虚拟机在x86架构上的运行支持。
可以通过下载源代码并编译安装:

wget https://download.qemu.org/qemu-4.2.0.tar.bz2

编译

 ./configure --target-list=aarch64-softmmu
make -j32

安装

make install

完成后会生成qemu-system-aarch64命令,存放路径
/usr/local/bin/qemu-system-aarch64

注意编译过程中可能需要安装以下依赖
yum install pixman-devel
yum install glib2-devel

获取aarch64 iso

wget https://repo.huaweicloud.com/centos/8.4.2105/isos/aarch64/CentOS-8.4.2105-aarch64-dvd1.iso

下载对应架构(这里是aarch64)的UEFI固件

wget http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

创建虚拟机硬盘

qemu-image create -f qcow2 /home/kvm-files/zwl-centos-aarch64.qcow2 100G

安装虚拟机

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

执行上述命令后可进入如下安装界面
在这里插入图片描述稍等一分钟左右将进入命令行安装流程,按照提示对所有带有!的项目进行设置
在这里插入图片描述

安装完成后可看到如下界面

在这里插入图片描述## 待所有流程走完之后,通过端口进行登陆
ssh root@10.2.5.131 -p 2222

问题解决,虚拟机创建后,无法通过ssh登陆,
ip a s 命令查看除回环设备lo之外的网卡名称,我这里是enp0s1
编辑vim /etc/sysconfig/network-scripts/ifcfg-enp0s1,确保

...
BOOTPROTO=dhcp
...
ONBOOT=yes

重启网络,及sshd服务
systemctl restart NetworkManager sshd

qemu-system-aarch64是一个运行ARM64架构的虚拟机的命令行工具。当我们在运行这个命令时,如果没有指定虚拟机类型,也没有默认设置,就会出现 "qemu-system-aarch64: no machine specified, and there is no default" 的报错信息。 这个报错的原因是因为在运行qemu-system-aarch64命令时,我们需要指定要运行的虚拟机的类型。虚拟机类型是根据具体的应用或需求来选择的,例如rpi3表示树莓派3型号的虚拟机,virt表示通用的虚拟机类型等等。如果没有指定虚拟机类型,qemu无法确定具体要运行哪个虚拟机,因此会出现这个错误。 解决这个问题的方法是在运行qemu-system-aarch64命令时,使用"-machine"参数来指定要运行的虚拟机类型。例如,如果我们想运行rpi3类型的虚拟机,命令可以修改为: "qemu-system-aarch64 -machine rpi3"。同时,也可以通过"-M"参数来指定虚拟机类型,例如: "qemu-system-aarch64 -M rpi3"。 此外,这个报错信息也提示我们当前没有默认设置的虚拟机类型。要设置默认虚拟机类型,可以使用"-machine"或"-M"参数,加上要设置的虚拟机类型,例如: "qemu-system-aarch64 -machine virt"。这样,当我们运行qemu-system-aarch64命令时,就默认使用指定的虚拟机类型。 综上所述,qemu-system-aarch64: no machine specified, and there is no default报错信息是因为运行qemu-system-aarch64命令时没有指定虚拟机类型,并且也没有默认设置。需要使用"-machine"或"-M"参数来指定当前要运行的虚拟机类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值