在aarch64主机中使用qemu启动虚机2--使用TAP网络模式

在上一篇文章中在aarch64主机中使用qemu启动虚机,介绍了如何使用用户网络模式来启动虚拟机,但是这种模式有很多缺点,例如不能和其他虚机通信,不能使用ping测试通信等。所以在这篇中讲述如何使用tap模式来启动虚机。

该模型为私有虚拟局域网模型,只允许在本host机器上访问,不会影响到host机器网络.

1. 安装libvirt daemon

yum install -y libvirt-daemon

2. 启动libvirtd

service libvirtd start

3. 使用新脚本启动镜像

start_vm.sh


if [ $# -ne 1 ];then
  echo "Usage: $0 network-mode[user|tap]"
  echo "e.g.: $0 user"
  echo "      $0 tap"
  exit
fi


if [ $1 == "user" ];then
  # User Networking Mode
  qemu-system-aarch64 -smp 4 -m 8092 -M virt -bios QEMU_EFI.fd -nographic \
       -device virtio-blk-device,drive=image \
       -drive if=none,id=image,file=xenial-server-cloudimg-arm64-uefi1.qcow2,format=qcow2 \
       -device virtio-blk-device,drive=cloud \
       -drive if=none,id=cloud,file=cloud.img,format=raw \
       -netdev user,id=user0,hostfwd=tcp::2222-:22 -device virtio-net-device,netdev=user0 \
       -enable-kvm -cpu host
elif [ $1 == "tap" ];then
  # Tap Networking Mode [Private Virtual Network]
  macaddress=52:54:00:4a:1e:d4
  qemu-system-aarch64 -smp 4 -m 8092 -M virt -bios QEMU_EFI.fd -nographic \
       -device virtio-blk-device,drive=image \
       -drive if=none,id=image,file=xenial-server-cloudimg-arm64-uefi1.qcow2,format=qcow2 \
       -device virtio-blk-device,drive=cloud \
       -drive if=none,id=cloud,file=cloud.img,format=raw \
       -device virtio-net-device,netdev=network0,mac=$macaddress \
       -netdev tap,id=network0,ifname=tap0,script=qemu-ifup.sh,downscript=no  \
       -enable-kvm -cpu host
fi

依赖的qemu-ifup.sh

#!/bin/sh

set -x

switch=virbr0

if [ -n "$1" ];then
        # tunctl -u `whoami` -t $1 (use ip tuntap instead!)
        ip tuntap add $1 mode tap user `whoami`
        ip link set $1 up
        sleep 0.5s
        # brctl addif $switch $1 (use ip link instead!)
        ip link set $1 master $switch
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

使用方法:

./start_vm.sh tap

4. 查看ip
sudo virsh net-dhcp-leases default

结果如下图:

这里写图片描述

然后使用ssh登录即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值