-
- 安装虚拟化组件
# 安装QEMU组件
yum install -y qemu
# 安装libvirt组件
yum install -y libvirt
# 启动libvirtd服务
systemctl start libvirtd
# 查看内核是否支持KVM虚拟化,即查看/dev/kvm和/sys/module/kvm文件是否存在,命令和回显如下
ls /dev/kvm 回显/dev/kvm
ls /sys/module/kvm 回显parameters uevent
# 确认QEMU是否安装成功,查看QEMU软件包信息
rpm -qi qemu
# 确认libvirt是否安装成功,查看QEMU软件包信息
rpm -qi libvirt
# 查看libvirt服务是否启动成功 若服务处于“Active”状态,说明服务启动成功
systemctl status libvirtd
QEMU组件默认以用户qemu和用户组qemu运行,如果想要使用root用户,需要修改QEMU配置文件。
使用以下命令打开QEMU配置文件
vim /etc/libvirt/qemu.conf
找到以下两个字段,user = "root"和group = "root",取消注释(即删除前面的#号),保存并退出。
-
- 制作镜像
# 使用root用户安装qemu-img软件包
yum install -y qemu-img
# 进入到存放镜像的文件夹
cd /home/images/
# 使用qemu-img工具的create命令,创建镜像文件
qemu-img create -f qcow2 openEuler-image.qcow2 1500G
# qcow2 为镜像格式,取值为raw,qcow2等
# openEuler-image.qcow2 为创建的镜像名称
# 1500G 为磁盘大小
# 查看当前虚拟机镜像磁盘空间大小
qemu-img info openEuler-image.qcow2
# 修改镜像磁盘空间大小
qemu-img resize openEuler-image.qcow2 +20G
3.准备虚拟机网络
创建网桥
# 安装bridge-utils软件包
yum install -y bridge-utils
# 创建网桥br0
brctl addbr br0
ifconfig 命令查看当前使用的物理网卡
在指定目录下找到对应网卡的配置文件
# 进入指定目录
cd /etc/sysconfig/network-scripts/
# 复制网卡配置文件并重命名
cp ./ifcfg-eth0 ./ifcfg-br0
# 分别对这两个配置文件进行修改
# 修改网卡配置
vi ifcfg-eth0
# 修改后 BRIDGE:指定我们需要配置的网桥
TYPE=Ethernet
#PROXY_METHOD=none
#BROWSER_ONLY=no
#BOOTPROTO=dhcp
#DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_FAILURE_FATAL=no
NAME=enp125s0f2
UUID=c9aaa8ea-0a86-4d0d-a4d6-121a08d52c6e
DEVICE=enp125s0f2
ONBOOT=yes
BRIDGE=br0
# 修改网桥配置
vi ifcfg-br0
# 修改后
TYPE=BRIDGE
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
#IPADDR="192.168.1.186"
NETMASK="255.255.255.0"
IPV6_PRIVACY=no
重启网络
4.虚拟机的创建和管理
准备虚拟机配置文件
<domain type='kvm'>
<!-- 虚拟机名称 -->
<name>openEulerVM</name>
<!-- 虚拟机内存 -->
<memory unit='GiB'>32</memory>
<!-- 虚拟处理器的个数 -->
<vcpu>16</vcpu>
<os>
<type arch='aarch64' machine='virt'>hvm</type>
<!-- 这里是arm架构的 -->
<loader readonly='yes' type='pflash'>/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw</loader>
<!-- 指定nvram文件路径,用于存储UEFI启动配置 保证文件名不冲突即可 -->
<nvram>/var/lib/libvirt/qemu/nvram/openEulerVM.fd</nvram>
</os>
<features>
<acpi/>
<gic version='3'/>
</features>
<cpu mode='host-passthrough'>
</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='/home/images/openEuler-image.qcow2'/>
<target dev='vda' bus='virtio'/>
<boot order='1'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<!-- 安装系统所需光驱 -->
<source file='/home/iso/openEuler-22.03-LTS-SP1-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'/>
<!-- port 为vnc连接端口,passwd 为连接密码 -->
<graphics type='vnc' port='5901' listen='0.0.0.0' passwd='supermap1234!'/>
</devices>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
# 创建虚拟机 虚拟机xml配置文件为openEulerVM.xml
virsh define openEulerVM.xml
# 启动虚拟机 启动名称为openEulerVM的虚拟机
virsh start openEulerVM
# 显示vnc端口
virsh vncdisplay openEulerVM
# 虚拟机的VNC侦听端口,该端口一般在客户机启动时自动分配,一般为5900 + x(x为正整数,按照虚拟机启动的顺序递增,且5900对用户不可见)
# 例如:返回为 :1 及端口为5901
# 登录vnc需要配置防火墙,放行该端口
打开MobaXterm 连接vnc
选择session打开settings,选择vnc连接,填写ip和端口号,选择OK
开始安装系统
配置静态ip
安装后如果出现ipaddress为空的现象
进入下面文件夹
cd /etc/sysconfig/network-scripts/
修改网络配置文件
找到onboot=no 修改为yes
虚拟机管理命令文章来源:https://www.uudwc.com/A/Y6BDR/
# 查询主机上处于运行和暂停状态的虚拟机列表
virsh list
# 查询主机上已经定义的所有虚拟机信息列表
virsh list --all
# 查询一个创建好的虚拟机的基本信息
virsh dominfo openEulerVM
# 查询虚拟机的当前状态
virsh domstate openEulerVM
# 查询虚拟机网卡信息
virsh domiflist openEulerVM
# 查询虚拟机磁盘设备信息
virsh domblklist openEulerVM
# 查询虚拟机的vCPU数目
virsh vcpucount openEulerVM
# 显示虚拟机xml配置
virsh dumpxml openEulerVM
# 关闭虚拟机。启动虚拟机关机流程,若关机失败可使用强制关闭
virsh shutdown openEulerVM
# 强制关闭虚拟机
virsh destroy openEulerVM
# 重启虚拟机
virsh reboot openEulerVM
# 销毁虚拟机 nvram:销毁虚拟机的同时删除其对应的nvram文件 keep-nvram:销毁虚拟机,但保留其对应的nvram文件
virsh undefine openEulerVM --nvram
# 修改虚拟机配置 (重启后生效)
virsh edit openEulerVM
文章来源地址https://www.uudwc.com/A/Y6BDR/