基于x86架构的CentOS7虚拟机通过qemu安装ARM架构CentOS7虚拟机_centos7 arm 网络配置

【原文连接】基于x86架构的CentOS7虚拟机通过qemu安装ARM架构CentOS7虚拟机_centos7 arm_redrose2100的博客-CSDN博客

试过很多版本的在win10系统直接qemu安装arm版linux都失败了,也看到了别人也说这个方式不行得用虚拟机套虚拟机才行的方式,因为我没有ubunto所以搜到大佬的centos虚拟机套虚拟机方案,亲测可用。只不过该文章没写安装成功之后怎么给qemu虚拟的arm-centos配置网络,以及关机后怎么启动,所以经过一顿csdn探索测试后特意编写此文章,反向学习输出共享给各位需要的大佬。

安装过程:

1.win10安装VMware虚拟机。

2.vmvare安装centos7,配置虚拟机centos操作系统网络,nat或者桥接都行,桥接参考VMWare桥接模式(CentOS7)_centos vmware 桥接_壆無止境的博客-CSDN博客

3.centos7虚拟机通过qemu安装arm版本centos系统,参考(试过很多版主发的都不行,就这个版主的一次就安装成功了,可嗨皮了,在此谢谢大佬。)基于x86架构的CentOS7虚拟机通过qemu安装ARM架构CentOS7虚拟机_redrose2100的博客-CSDN博客

4.按第3步安装成功之后,可能arm版的centos操作系统网络可能还是没网,需要手动设置下dhcp

cd /etc/sysconfig/network-scripts/
vi  ifcfg-eth0

#修改以下两项:
BOOTPROTO=dhcp  #修改为dhcp
ONBOOT=yes  #修改onboot为yes

:wq 保存退出后,重启网卡:systemctl restart network

这时候ifconfig命令还未安装,可通过ip addr 查看eth0已有网络;

 确认centos虚拟机可以连通外网,就可以在qemu的arm版centos内使用yum安装net-tools等工具。

5.如果不小心关了qemu的arm版centos,则可以使用以下命令重新打开系统

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 6 -M virt -bios /usr/share/AAVMF/AAVMF_CODE.fd -nographic  -device virtio-scsi-device  -drive if=none,file=/var/lib/libvirt/images/test.img,id=hd0 -device virtio-blk-device,drive=hd0 

注意到没,就是去掉了-drive if=none,file=/opt/os/CentOS-7-aarch64-Minimal-2009.iso,id=cdrom,media=cdrom 和-device scsi-cd,drive=cdrom 这两个参数,因为加上这两个参数就第二次重装了(试了很多次,终于明白这个参数的用途,呜呜呜,哈哈哈哈,查看了qemu参数就明白了)

6.使用shell通过vmware虚拟机ssh端口映射的方式连到套的虚拟机里边,采用如下的开机命令

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 6 -M virt -bios /usr/share/AAVMF/AAVMF_CODE.fd -nographic  -device virtio-scsi-device  -drive if=none,file=/var/lib/libvirt/images/test.img,id=hd0 -device virtio-blk-device,drive=hd0 -net user,hostfwd=tcp::5678-:22 -net nic

看到了么,与第5步的开机命令多一个参数:-net user,hostfwd=tcp::5678-:22 -net nic,这样就可以把VMware虚拟机的5678端口号与arm版虚拟机的22端口号映射开通,接着直接通过finalshell、xshell等各种shell连接到arm版的虚拟机里下载文件或者安装包等。

记得xshell的连接IP和端口号为:vmware虚拟机的IP,端口号为5678,用户名密码为你qemu安装arm版本centos的用户名密码。ok到此完事。

具体原理参考:在QEMU虚拟机和宿主机之间传输文件_qemu共享文件夹_远小帅的博客-CSDN博客

(其中直接给qemu的arm虚拟机通过桥接的方式,也就是 windows-桥接--vmware(centos虚拟机)--桥接-qemu(arm版centos))

7.通过两层桥接直接给qemu嵌套的虚拟机供网

首先配置win10宿主机和vmware虚拟及通过桥接方式联网,保证vmvare虚拟机IP与win10宿主机在同一个网段里。

其次,通过在vmware虚拟机centos里配置网桥和虚拟网卡的方式给qemu的arm-centos系统供网,具体设置如下

首先安装 bridge-utils 和 tunctl 

yum install bridge-utils

tunctl安装参考:CentOS 7 Tunctl 安装 虚拟网卡_tom.ma的博客-CSDN博客

# 配置 YUM 源
vim /etc/yum.repos.d/nux-misc.repo
 
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum --enablerepo=nux-misc install tunctl

(1)备份并配置网桥:

cd  /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33.bark

备份后修改ens33网卡为如下配置:

vi ifcfg-ens33

TYPE="Ethernet"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=br0


修改网桥配置:(修改配置文件重启不用再次添加网桥)

cp ifcfg-ens33 ifcfg-br0 

vi ifcfg-br0

TYPE="Bridge"
BOOTPROTO="static"
NAME="br0"
IPADDR=192.168.1.47
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DEVICE="br0"
ONBOOT="yes"
DNS1=8.8.8.8

配置好之后重启网卡:

systemctl restart network

ip a 查看网桥br0,并开启网桥 ifup br0 或者 ifconfig br0 up

查看网桥网络连接是否正常,保证可以ping通win10宿主机内网。

(2)VMware-centos虚拟机(也就是qemu-arm的宿主机)创建虚拟网卡,并添加进网桥

tunctl -t tap0     #创建虚拟网卡
ifconfig tap0 up   #开启tap0虚拟网卡
brctl  addif br0 tap0  #添加虚拟网卡到网桥br0中
brctl stp br0 yes  #开启网桥stp

brctl  show #查看网桥结果

ifdown ens33 #关闭网卡
ifup ens33  #启动网卡

下图表示网桥设置成功。

 ifconfig 查看vmware虚拟机中网络状态

 其中网桥br0与win10内网地址在同一网段,ping win10 物理机可ping通,www.baidu.com也可ping通,说明网络配置正确。

ping baidu 域名还需要设置dns。

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=xxxx #名字随便了
GATEWAY=192.168.1.254 #默认网关和宿主机相同

vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.254 #DNS,跟宿主一样也可以直接写 8.8.8.8

 (3)启动qemu,启动命令如下

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 6 -M virt -bios /usr/share/AAVMF/AAVMF_CODE.fd -nographic  -device virtio-scsi-device  -drive if=none,file=/var/lib/libvirt/images/test.img,id=hd0 -device virtio-blk-device,drive=hd0 -net nic -net tap,ifname=tap0,script=no,downscript=no

其中最后一句-net nic -net tap,ifname=tap0,script=no,downscript=no 配置以tap0虚拟网卡作为qemu-centos-arm的网络,启动后开始配置嵌套的arm-centos网络:(如果启动后已经联网,则不需要在设置下图eth0网卡配置。)

cd /etc/sysconfig/network-scripts/
vi  ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
ONBOOT=yes
IPADDR=192.168.1.63 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.254 
DNS1=8.8.8.8
#重启网卡:
systemctl restart network

ficonfig 查看arm网络连接

ping www.baidu.com 测试发现可以百度,接着可用各种xshell工具直接连接。

 感谢各位大佬的文章,完美解决了小弟的问题,小弟在此表示感谢大佬。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值