在安装完成host系统后,使用再生龙对环境进行备份后,再进行以下的操作.

检查

检查机器是否支持虚拟化,提示可以即可.

$ apt update
$ apt install cpu-checker
$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be use

安装环境

安装虚拟化使用的环境

# 安装虚拟化所需基础组件
$ sudo apt install qemu-system-arm libvirt-daemon-system virtinst bridge-utils qemu-kvm qemu-system-x86
# 安装虚拟机virtio设备支持组件
$ sudo apt-get install seabios
# 安装gui管理程序
$ sudo apt install virt-manager
$ sudo systemctl status libvirtd

安装网桥需要的环境

$ sudo apt-get install openvswitch-switch-dpdk

安装其他环境

$ apt install lrzsz iftop htop 

配置网桥

原始配置为:

$ cat /etc/netplan/00-installer-config.yaml 
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp125s0f0:
      dhcp4: true
  version: 2

enp125s0f0作为桥接的网卡,如下所示.

$ cat /etc/netplan/00-installer-config.yaml 

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp125s0f0:
      dhcp4: false
  bridges:
    br0:
      interfaces: [enp125s0f0]
      dhcp4: false
      addresses: [192.168.123.163/24]
      routes:
        - to: default
          via: 192.168.123.1
      nameservers:
        addresses: [192.168.123.1,223.5.5.5]

  version: 2

应用配置

# 测试配置是否正确
$ sudo netplan try
# 应用新的配置
$ sudo netplan apply
# 检查
$ ip a

编写桥接xml文件

vim /etc/libvirt/qemu/networks/br0.xml
<network>
    <name>br0</name>
    <forward mode='bridge' />
    <bridge name='br0' />
</network>

应用到kvm

$ virsh net-define /etc/libvirt/qemu/networks/br0.xml
Network br0 defined from /etc/libvirt/qemu/networks/br0.xml
 
$ virsh net-start br0
Network br0 started
 
$ virsh net-autostart br0
Network br0 marked as autostarted

检查网桥是否生效

$ sudo virsh net-list --all

使用virt-manager管理添加网卡时,即可看到br0网卡

配置存储池

可以使用virt-manager创建存储池,也可以用命令创建.

需要创建的存储池和推荐挂载目录为:
虚拟机硬盘存储池 - vmdisks - /home/virt/vmdisks
虚拟机镜像模板与iso存储池 - images - /home/virt/images
cloud-init 使用 seed-disk 存储池 - seeds - /home/virt/seeds
虚拟机nvram存储池 - nvram - /home/virt/nvram

在目标host上进行操作创建存储池.

# 定义远程连接的信息,下面的设置在虚拟机所在host设置因此不使用远程连接
URL=qemu:///system

# 创建使用的文件夹(这里是假设使用的位置)
## 虚拟机硬盘储存位置
mkdir -p /home/virt/vmdisks
VMDISKS=/home/virt/vmdisks
## ovmf文件储存位置
mkdir -p /home/virt/nvram
NVRAM=/home/virt/nvram
## 虚拟机模板镜像储存位置
mkdir -p /home/virt/images
IMAGES=/home/virt/images
## seed-disk存储池位置
mkdir -p /home/virt/seeds
SEEDS=/home/virt/seeds

# 创建存储池
virsh -c "$URL" pool-define-as vmdisks dir --target "$VMDISKS"
virsh -c "$URL" pool-autostart vmdisks
virsh -c "$URL" pool-start vmdisks

virsh -c "$URL" pool-define-as nvram dir --target "$NVRAM"
virsh -c "$URL" pool-autostart nvram
virsh -c "$URL" pool-start nvram

virsh -c "$URL" pool-define-as images dir --target "$IMAGES"
virsh -c "$URL" pool-autostart images
virsh -c "$URL" pool-start images

virsh -c "$URL" pool-define-as seeds dir --target "$SEEDS"
virsh -c "$URL" pool-autostart seeds
virsh -c "$URL" pool-start seeds

参考:
虚拟机中安装 Windows ARM64
优麒麟中安装虚拟机(ARM64)
ARM环境KVM快速起步
Ubuntu 22.04 之 KVM 安装手札
libvirt存储管理
创建存储池

最后修改:2024 年 04 月 16 日
如果觉得我的文章对你有用,请随意赞赏