openEuler虚拟机创建与桥接配置
openEuler虚拟机创建与桥接配置
0.前言
本文档介绍了如何在aarch64架构的Linux系统中使用virt-manager
和qemu
工具创建openEuler虚拟机,并配置桥接网络,使其能够接入物理网络。
1.环境准备
安装virt-manager
:
sudo apt install virt-manager
确保libvirt
服务已启动:
sudo systemctl enable --now libvirtd
在openEuler官网下载ISO镜像。下载地址:[openEuler下载](https://www.openeuler.org/zh/download/#openEuler 22.03 LTS SP4)。
2.镜像制作
创建虚拟磁盘镜像:
qemu-img create -f qcow2 openEuler-image.qcow2 40G
qcow2
是一种支持动态扩展的磁盘格式,可以根据实际使用情况动态分配空间。
复制镜像到指定目录
sudo cp openEuler-image.qcow2 /var/lib/libvirt/images/openEuler-001.qcow2
准备UEFI启动文件:
sudo cp /usr/share/AAVMF/AAVMF_VARS.fd /var/lib/libvirt/qemu/nvram/openEuler-001_VARS.fd
AAVMF_VARS.fs
固件由virt-manager
安装得到。
创建qemu-kvm
的符号链接:
sudo ln -s $(which qemu-system-aarch64) /usr/libexec/qemu-kvm
3.配置网桥
创建网桥接口:
sudo nmcli connection add type bridge ifname br0 con-name br0
将物理接口绑定到网桥:
sudo nmcli connection add type bridge-slave ifname enaphyt4i0 master br0
激活连接:
sudo nmcli connection up bridge-slave-enaphyt4i0
4.虚拟机配置
Libvirt工具采用XML格式的文件描述一个虚拟机特征,包括虚拟机名称、CPU、内存、磁盘、网卡、鼠标、键盘等信息。用户可以通过修改配置文件,对虚拟机进行管理。
下面为参考配置(openEuler-001.xml):
<domain type='kvm'>
<name>openEuler-001</name>
<memory unit='GiB'>8</memory>
<vcpu>4</vcpu>
<os>
<type arch='aarch64' machine='virt'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/openEuler-001_VARS.fd</nvram>
</os>
<features>
<acpi/>
<gic version='3'/>
</features>
<cpu mode='host-passthrough'>
<topology sockets='1' cores='4' threads='1'/>
</cpu>
<iothreads>1</iothreads>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' iothread="1"/>
<source file='/var/lib/libvirt/images/openEuler-001.qcow2'/>
<target dev='vda' bus='virtio'/>
<boot order='1'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/data/images/openEuler-22.03-LTS-SP4-aarch64-dvd.iso'/>
<readonly/>
<target dev='sdb' bus='scsi'/>
<boot order='2'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
<console type='pty'/>
<video>
<model type='virtio'/>
</video>
<controller type='scsi' index='0' model='virtio-scsi'/>
<controller type='usb' model='ehci'/>
<input type='tablet' bus='usb'/>
<input type='keyboard' bus='usb'/>
<graphics type='vnc' listen='0.0.0.0' passwd='123456'/>
</devices>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
5.虚拟机创建与启动
创建虚拟机:
virsh define openEuler-001.xml
启动虚拟机:
virsh start openEuler-001
首次启动虚拟机时需要使用VNC客户端连接虚拟机,从而进入图形化界面完成安装。
连接到虚拟机控制台:
virsh console openEuler-001