当前位置:   article > 正文

ubuntu22.04 x86环境上使用QEMU搭建arm虚拟机_x86上的kvm可以创建arm虚拟机吗

x86上的kvm可以创建arm虚拟机吗

1、安装qemu及相关依赖


apt-get -y install qemu

apt-get -y install bridge-utils

apt-get -y install vnc4server

apt-get -y install qemu-kvm

apt install -y qemu-system-arm

apt-get -y install libvirt0

apt-get -y install libvirt-daemon

apt-get -y install libvirt-daemon-system


安装完成后检查:


virsh version

ls /usr/bin/|grep qemu


2、下载 QEMU_EFI.fd 及 iso


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

 wget https://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04.1-legacy-server-arm64.iso


下面是我的文件及路径参考

 3、创建虚拟硬盘


创建多大根据你自己的需求而定:

qemu-img create ubuntuimg.img 40G


4、创建虚拟机


qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -drive if=none,file=ubuntu-20.04.1-legacy-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntuimg.img,id=hd0 -device virtio-blk-device,drive=hd0

可以根据自己的配置和需求修改加粗部分


命令解释:

-m megs # 设定虚拟机的RAM大小,单位MB。
-cpu model # 设定CPU模型,如cortex-a57、cortex-a9等。
-smp n # 设定模拟的SMP架构中CPU的个数。
-M machine # 指定要模拟的主机类型
-bios file #设置bios启动文件
-nographic #禁用图形界面支持

5、执行第4步骤的命令后进入安装界面

类似于

根据提示信息一步一步的安装,这一步可能很慢,请耐心点

6、安装成功后

启动命令:

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0

进入虚拟机发现默认的ip为 10.0.2.15,可以ping 通宿主机ip (有可能显示没有ping这个命令,很正常,使用 apt-get install iputils-ping 安装),并且可以连网,而宿主机ping不通 虚拟机10.0.2.15

这是由于 虚拟机使用的是NAT网络模式,由qemu负责网络地址转换,数据包首先发送到虚拟化网络中的网关,也就是虚拟网络的一个节点,这个节点代表了宿主机在虚拟网络中的身份。该网关会负责将数据包转发到宿主机所在的物理网络中,从而宿主机能够收到来自虚拟机的请求

虚拟机中下载 一些工具:


apt-get install -y iputils-ping   //ping  ,上面安装了下面就不用安装了

apt-get install -y net-tools    // 下载 ifconfig

apt-get install -y ssh      // 下载ssh服务


7、实现 宿主机可以通过 ssh 进入 虚拟机

此部分参考链接:

访问qemu虚拟机的五种姿势_进入qemu_RichardYSteven的博客-CSDN博客

宿主机侧:

apt install net-tools   // 下载ifconfig

apt install uml-utilities  // 下载tunctl

brctl addbr virbr0   //创建网桥,名字是virbr0

ifconfig virbr0 192.168.122.1 netmask 255.255.255.0 up  // 配置网桥

tunctl -t tap0    // 创建tap接口,名字为tap0

ifconfig tap0 0.0.0.0 up     // 配置 tap0

brctl addif virbr0 tap0      // 将 tap0 放在 virbr0 内

启动虚拟机:(这儿命令变了,添加了-netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet)这儿tap0 和上面一致

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet

此命令添加了一张和 宿主机组 tap的网口

在虚拟机侧:

ifconfig ens3 192.168.122.100 netmask 255.255.255.0 up   //设置上面一个网段的ip,ens3根据自己实际的网口名替换

至此,你可以在宿主机侧 通过  ssh 进入虚拟机

ps:

1、ubuntu 创建后第一次给root设置密码:sudo passwd root

2、如果想使用 root 用户登录 vi /etc/ssh/sshd_config 

添加/修改  PermitRootLogin yes

systemctl restart sshd

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/294388
推荐阅读
相关标签
  

闽ICP备14008679号