查看virsh支持的命令
virsh --help
显示服务器上所有虚拟机,如果没有root权限,将只能输出当前用户创建的虚拟机。
virsh list --all
我们在最新欧拉系统(Kylin Linux Advanced Server release V10 (Lance)
)上,创建Kylin-Server-V10-SP3-General-Release-2303-ARM64 为例子
virt-install \
--virt-type=kvm \
--name KylinV10-{ip} \
--vcpus=8 \
--ram 16384 \
--os-variant=generic \
--location=/home/she/Kylin-Server-V10-SP3-General-Release-2303-ARM64.iso \
--network bridge=virbr0 \
--graphics none \
--console pty \
--noautoconsole -v \
--disk path=/home/she/kvm/KylinV10.qcow2,format=qcow2,size=200
–name:指定虚拟机名称
–ram:内存大小
–disk:系统盘路径和大小
–vcpus:vCPU核心数
–os-type:操作系统类型
–network:网络模式,桥接到 virbr0,
virt-install 前可以使用 brctl show 查看当前主机上的桥设备
–os-variant:操作系统变种,这里用generic
如果指定了 --console pty 参数,可以通过 virsh console 来连接:
virsh console <vm-name>
或者,通过ID值接入虚拟机终端窗口,进入虚拟机窗口。
virsh console 2
在使用 virt-install 创建虚拟机时,有两种方法可以提供 ISO 镜像:
虚拟机安装前设置,[!]表示必填,[X]表示选填。
各选项含义如下:
1)语言设置 2)时区设置 3)安装源 4)软件包选择
5)系统分区 6)Kdump功能 7)网络配置 8)密码设置
9)创建用户
按“q”退出,按“b”开始安装。必须把带“!”号的都设置好才能开始安装。
总结,发现使用命令行安装,也需要很多交互,因此这里推荐使用界面安装虚拟机,创建快照等操作,再使用命令行方式。
virsh shutdown CNEOS-xxx
virsh reboot CNEOS-wangyang16-1
virsh undefine CNEOS-wangyang16-1
在 KVM 中,可以通过 libvirt 提供的接口来为虚拟机创建快照和恢复快照。
使用 virsh snapshot-create 命令创建快照:
virsh list
virsh snapshot-create vm1 --atomic --disk-only
这里我们为虚拟机 vm1 创建了一个快照,使用了 --disk-only 表示仅对磁盘创建快照。
查看快照
使用 virsh snapshot-list 命令可以查看虚拟机的快照:
bash
virsh snapshot-list vm1
这会列出 vm1 所有可用的快照。
恢复快照
使用 virsh snapshot-revert 命令可以恢复快照:
virsh snapshot-revert vm1 snapshot1
这会将 vm1 恢复到名为 snapshot1 的快照状态。
删除快照
使用 virsh snapshot-delete 命令可以删除快照:
virsh snapshot-delete vm1 snapshot1
这会删除名为 snapshot1 的快照。
在创建和管理快照时,可以添加选项控制快照类型(disk-only、system-checkpoint等)、是否包含内存状态等,灵活控制快照行为。
virsh snapshot-create 24
错误:不支持的操作:internal snapshots of a VM with pflash based firmware are not supported
在通过图形界面创建 KVM 虚拟机时,可以选择不添加 pflash 设备。
通常 pflash 设备是默认被添加的,用于提供 UEFI 固件支持。但是它也会带来快照不兼容等限制。
如果您使用 Virt Manager 等图形工具创建虚拟机,可以在存储配置界面,取消选择 “UEFI ROM” 选项,即可避免添加 pflash 设备。
具体步骤如下:
virsh shutdown your_vm
virsh dumpxml your_vm |grep pflash
为了移除 pflash 并解决快照问题:
virsh edit your_vm
测试失败,改为之后,虚拟机启动不起来了。
直接在虚拟机配置中删除 pflash 设备后导致虚拟机无法启动,这通常有以下几个原因:
不推荐该方式尝试~
virsh list --all
这将显示所有虚拟机,包括正在运行和已关闭的虚拟机。
virsh dumpxml "vm-name-or-id"
替换 为您的虚拟机名称或 ID。
在输出中,查找包含 标签的部分。这通常会包含关于虚拟磁盘的信息,例如:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/your_image.qcow2'/>
...
disk>
镜像主机先关机,通过宿主机压缩镜像
poweroff
virsh list --all
virsh dumpxml "vm-name-or-id" |grep qcow
virt-sparsify --compress 源qcow2镜像路径 新qcow2镜像路径