Virsh 的基础使用

参考资料

官方文档

命令速览

通用命令

不特定与某个虚拟机的命令。

命令 解释 使用方式
help 显示命令帮助信息,可以列出所有命令或得到特定命令的帮助。 help [命令名称(可选)]
quit, exit 退出virsh命令行界面。 quit / exit
version 显示virsh的版本信息,包括libvirt和hypervisor的信息。 version
cd 更改当前工作目录(对于会话内部命令环境)。 cd [目录路径]
pwd 打印当前工作目录(对于会话内部命令环境)。 pwd
connect 连接到libvirt守护进程。 connect [URI]
uri 显示当前连接的URI。 uri
hostname 显示hypervisor的主机名。 hostname
sysinfo 显示从hypervisor获取的系统信息。 sysinfo
nodeinfo 显示关于物理服务器的信息(CPU、内存大小、节点数)。 nodeinfo
nodecpumap 显示节点的CPU分布情况。 nodecpumap [节点名称(可选)]
nodecpustats 显示指定节点的CPU统计信息。 nodecpustats [节点名称(可选)]
nodememstats 显示指定节点的内存统计信息。 nodememstats [节点名称(可选)]
nodesevinfo 显示关于服务器的SEV信息(安全加密虚拟化相关)。 nodesevinfo
nodesuspend 挂起物理主机节点。 nodesuspend [节点名称(可选)]
node-memory-tune 调整节点的内存配置。 node-memory-tune [节点名称(可选)]
capabilities 显示hypervisor的功能。 capabilities
domcapabilities 显示虚拟机的功能。 domcapabilities [虚拟机名称(可选)]
pool-capabilities 显示存储池的功能。 pool-capabilities [存储池名称(可选)]
inject-nmi 向虚拟机注入非屏蔽中断(NMI),用于故障排查。 inject-nmi [虚拟机名称]
list 列出所有虚拟机。 list
freecell 显示节点上未使用的内存。 freecell [节点名称(可选)]
freepages 查询特定或所有NUMA节点上的空闲内存页。 freepages [节点名称(可选)]
allocpages 在NUMA节点上分配内存页。 allocpages [节点名称(可选)]
cpu-baseline 计算一组CPU特性的最小公共超集,用于确定兼容性。 cpu-baseline [CPU型号列表]
cpu-compare 比较两个CPU定义的兼容性。 cpu-compare [CPU1型号] [CPU2型号]
cpu-models 列出给定架构支持的所有CPU型号。 cpu-models [架构(可选)]
hypervisor-cpu-compare 比较虚拟机CPU与hypervisor CPU的兼容性。 hypervisor-cpu-compare [虚拟机名称]
hypervisor-cpu-baseline 确定两个或更多hypervisor CPU的兼容基线。 hypervisor-cpu-baseline [CPU型号列表]

虚拟机命令

直接操作虚拟机的命令。

命令 解释 使用方式
autostart 设置虚拟机在宿主机启动时是否自动启动 autostart [虚拟机名称] [yes/no]
blkdeviotune 设置块设备的 I/O 调优参数 blkdeviotune [虚拟机名称] [块设备名称] [参数]
blkiotune 设置块设备的 I/O 控制参数 blkiotune [虚拟机名称] [块设备名称] [参数]
blockcommit 提交虚拟机磁盘镜像的更改并合并到父镜像中 blockcommit [虚拟机名称] [磁盘名称]
blockcopy 复制虚拟机磁盘镜像 blockcopy [虚拟机名称] [源磁盘名称] [目标磁盘名称]
blockjob 查看或管理虚拟机磁盘操作任务 blockjob [虚拟机名称] [操作]
blockpull 将磁盘镜像的更改从父镜像中拉回 blockpull [虚拟机名称] [磁盘名称]
blockresize 调整虚拟机磁盘的大小 blockresize [虚拟机名称] [磁盘名称] [新大小]
console 连接到虚拟机的控制台 console [虚拟机名称]
cpu-stats 显示虚拟机的 CPU 使用统计 cpu-stats [虚拟机名称]
create 创建一个新的虚拟机 create [XML配置文件]
define 定义虚拟机配置 define [XML配置文件]
desc 显示虚拟机的描述信息 desc [虚拟机名称]
destroy 关闭并销毁虚拟机 destroy [虚拟机名称]
domblkerror 显示或清除虚拟机块设备的错误状态 domblkerror [虚拟机名称] [块设备名称] [操作]
domblkinfo 显示虚拟机的块设备信息 domblkinfo [虚拟机名称] [块设备名称]
domblklist 列出虚拟机的块设备 domblklist [虚拟机名称]
domblkstat 显示虚拟机块设备的统计信息 domblkstat [虚拟机名称] [块设备名称]
domblkthreshold 显示或设置虚拟机块设备的阈值 domblkthreshold [虚拟机名称] [块设备名称] [阈值]
domcontrol 控制虚拟机的运行状态 domcontrol [虚拟机名称] [操作]
domdirtyrate-calc 估算虚拟机的内存脏页率 domdirtyrate-calc [虚拟机名称]
domdisplay 显示虚拟机的图形输出 domdisplay [虚拟机名称]
domdisplay-reload 重新加载虚拟机的图形输出 domdisplay-reload [虚拟机名称]
domfsfreeze 冻结虚拟机的文件系统 domfsfreeze [虚拟机名称]
domfsinfo 显示虚拟机的文件系统信息 domfsinfo [虚拟机名称]
domfsthaw 解冻虚拟机的文件系统 domfsthaw [虚拟机名称]
domfstrim 为虚拟机的文件系统执行 TRIM 操作 domfstrim [虚拟机名称] [块设备名称]
domhostname 显示虚拟机的主机名 domhostname [虚拟机名称]
domid 显示虚拟机的 ID domid [虚拟机名称]
domif-getlink 获取虚拟机网络接口的链路状态 domif-getlink [虚拟机名称] [接口名称]
domif-setlink 设置虚拟机网络接口的链路状态 domif-setlink [虚拟机名称] [接口名称] [状态]
domifaddr 显示虚拟机的网络接口 IP 地址 domifaddr [虚拟机名称] [接口名称]
backup-begin 开始虚拟机的备份 backup-begin [虚拟机名称] [备份目录]
backup-dumpxml 导出虚拟机的备份信息 backup-dumpxml [虚拟机名称] [备份目录]
domiflist 列出虚拟机的网络接口 domiflist [虚拟机名称]
domifstat 显示虚拟机的网络接口统计信息 domifstat [虚拟机名称] [接口名称]
domiftune 调整虚拟机的网络接口性能 domiftune [虚拟机名称] [接口名称] [参数]
dominfo 显示虚拟机的信息 dominfo [虚拟机名称]
domjobabort 中止虚拟机的后台任务 domjobabort [虚拟机名称]
domjobinfo 显示虚拟机的后台任务信息 domjobinfo [虚拟机名称] [任务ID(可选)]
domlaunchsecinfo 显示虚拟机的启动安全信息 domlaunchsecinfo [虚拟机名称]
domsetlaunchsecstate 设置虚拟机的启动安全状态 domsetlaunchsecstate [虚拟机名称] [状态]
dommemstat 显示虚拟机的内存统计信息 dommemstat [虚拟机名称]
domname 显示虚拟机的名称 domname [虚拟机名称]
dompmsuspend 暂停虚拟机的电源管理 dompmsuspend [虚拟机名称]
dompmwakeup 唤醒虚拟机的电源管理 dompmwakeup [虚拟机名称]
domrename 重命名虚拟机 domrename [虚拟机名称] [新名称]
domstate 显示虚拟机的运行状态 domstate [虚拟机名称]
domstats 显示虚拟机的统计信息 domstats [虚拟机名称]
domtime 显示虚拟机的时间 domtime [虚拟机名称]
domuuid 显示虚拟机的 UUID domuuid [虚拟机名称]
domxml-from-native 将本地配置转换为 XML 配置 domxml-from-native [本地配置文件]
domxml-to-native 将 XML 配置转换为本地配置 domxml-to-native [XML配置文件]
dump 转储虚拟机的内存 dump [虚拟机名称] [转储文件路径]
dumpxml 导出虚拟机的 XML 配置 dumpxml [虚拟机名称]
edit 编辑虚拟机的 XML 配置 edit [虚拟机名称]
emulatorpin 设置虚拟机模拟器进程的 CPU 亲和性 emulatorpin [虚拟机名称] [CPU列表]
event 显示或监视虚拟机的事件 event [虚拟机名称] [操作]
get-user-sshkeys 获取虚拟机用户的 SSH 公钥 get-user-sshkeys [虚拟机名称]
guest-agent-timeout 设置虚拟机客户端代理的超时时间 guest-agent-timeout [虚拟机名称] [时间]
guestinfo 显示虚拟机的客户端代理信息 guestinfo [虚拟机名称]
guestvcpus 显示虚拟机客户端代理的虚拟 CPU 信息 guestvcpus [虚拟机名称]
iothreadadd 添加虚拟机 I/O 线程 iothreadadd [虚拟机名称] [线程ID]
iothreaddel 删除虚拟机 I/O 线程 iothreaddel [虚拟机名称] [线程ID]
iothreadinfo 显示虚拟机 I/O 线程信息 iothreadinfo [虚拟机名称]
iothreadpin 设置虚拟机 I/O 线程的 CPU 亲和性 iothreadpin [虚拟机名称] [线程ID] [CPU列表]
iothreadset 配置虚拟机 I/O 线程 iothreadset [虚拟机名称] [线程ID] [配置]
managedsave 将虚拟机状态保存到文件 managedsave [虚拟机名称] [保存文件路径]
managedsave-define 定义虚拟机状态保存配置 managedsave-define [XML配置文件]
managedsave-dumpxml 导出虚拟机状态保存配置 managedsave-dumpxml [虚拟机名称]
managedsave-edit 编辑虚拟机 managedsave-edit [虚拟机名称]

设备命令

操作于虚拟机相关联的设备命令

命令 解释 使用方式
attach-device 将设备附加到虚拟机 attach-device [虚拟机名称] [设备配置文件]
attach-disk 将磁盘设备附加到虚拟机 attach-disk [虚拟机名称] [磁盘配置文件]
attach-interface 将网络接口设备附加到虚拟机 attach-interface [虚拟机名称] [接口配置文件]
detach-device 从虚拟机中分离设备 detach-device [虚拟机名称] [设备名称]
detach-device-alias 通过别名从虚拟机中分离设备 detach-device-alias [虚拟机名称] [设备别名]
detach-disk 从虚拟机中分离磁盘设备 detach-disk [虚拟机名称] [磁盘名称]
detach-interface 从虚拟机中分离网络接口设备 detach-interface [虚拟机名称] [接口名称]
update-device 更新虚拟机的设备配置 update-device [虚拟机名称] [设备配置文件]
update-memory-device 更新虚拟机的内存设备配置 update-memory-device [虚拟机名称] [配置文件]
change-media 更改虚拟机中设备的介质 change-media [虚拟机名称] [设备名称] [介质]
dom-fd-associate 关联虚拟机的 FD (File Descriptor) dom-fd-associate [虚拟机名称] [FD]

网络和网络接口命令

操作网络和网络端口

命令 描述 使用方式
net-autostart 设置网络在宿主机启动时是否自动启动 net-autostart [网络名称] [yes/no]
net-create 创建一个新的虚拟网络 net-create [网络配置文件]
net-define 定义虚拟网络配置 net-define [网络名称] [网络配置文件]
net-desc 显示虚拟网络的描述信息 net-desc [网络名称]
net-destroy 关闭并销毁虚拟网络 net-destroy [网络名称]
net-dumpxml 导出虚拟网络的 XML 配置 net-dumpxml [网络名称]
net-edit 编辑虚拟网络的 XML 配置 net-edit [网络名称]
net-event 显示或监视虚拟网络的事件 net-event [网络名称] [选项]
net-info 显示虚拟网络的信息 net-info [网络名称]
net-list 列出已定义的虚拟网络 net-list
net-metadata 显示或更新虚拟网络的元数据 net-metadata [网络名称] [选项]
net-name 显示虚拟网络的名称 net-name [网络UUID]
net-start 启动虚拟网络 net-start [网络名称]
net-undefine 取消定义虚拟网络 net-undefine [网络名称]
net-uuid 显示虚拟网络的 UUID net-uuid [网络名称]
net-update 更新虚拟网络的配置 net-update [网络名称] [网络配置文件]
net-dhcp-leases 显示虚拟网络的 DHCP 租约信息 net-dhcp-leases [网络名称]
net-port-list 列出虚拟网络的端口 net-port-list [网络名称]
net-port-create 创建虚拟网络的端口 net-port-create [网络名称] [端口配置文件]
net-port-dumpxml 导出虚拟网络端口的 XML 配置 net-port-dumpxml [网络名称] [端口名称]
net-port-delete 删除虚拟网络的端口 net-port-delete [网络名称] [端口名称]
命令 描述 使用方式
iface-bridge 将网络接口桥接到指定的网桥 iface-bridge [接口名称] [网桥名称]
iface-define 定义网络接口配置 iface-define [接口名称] [配置文件]
iface-destroy 销毁网络接口 iface-destroy [接口名称]
iface-dumpxml 导出网络接口的 XML 配置 iface-dumpxml [接口名称]
iface-edit 编辑网络接口的 XML 配置 iface-edit [接口名称]
iface-list 列出已定义的网络接口 iface-list
iface-name 显示网络接口的名称 iface-name [接口UUID]
iface-mac 显示网络接口的 MAC 地址 iface-mac [接口名称]
iface-start 启动网络接口 iface-start [接口名称]
iface-unbridge 解除网络接口的桥接 iface-unbridge [接口名称]
iface-undefine 取消定义网络接口 iface-undefine [接口名称]
iface-begin 开始对网络接口的更改 iface-begin [接口名称]
iface-commit 提交对网络接口的更改 iface-commit [接口名称]
iface-rollback 回滚对网络接口的更改 iface-rollback [接口名称]

存储命令

操作存储池

命令 解释 使用方式
find-storage-pool-sources 查找存储池的源 find-storage-pool-sources
find-pool-sources-as 将发现的存储池源作为列表打印出来 find-pool-sources-as
pool-autostart 设置存储池在宿主机启动时是否自动启动 pool-autostart [存储池名称] [yes/no]
pool-build 构建存储池 pool-build [存储池名称]
pool-create 创建存储池 pool-create [XML配置文件]
pool-create-as 创建存储池并指定参数 pool-create-as [XML配置文件]
pool-define 定义存储池配置 pool-define [XML配置文件]
pool-define-as 使用 XML 文件定义存储池 pool-define-as [存储池名称] [XML配置文件]
pool-destroy 关闭并销毁存储池 pool-destroy [存储池名称]
pool-delete 删除存储池 pool-delete [存储池名称]
pool-dumpxml 导出存储池的 XML 配置 pool-dumpxml [存储池名称] [导出文件路径]
pool-edit 编辑存储池的 XML 配置 pool-edit [存储池名称]
pool-info 显示存储池的信息 pool-info [存储池名称]
pool-list 列出已定义的存储池 pool-list
pool-name 显示存储池的名称 pool-name [存储池名称]
pool-refresh 刷新存储池 pool-refresh [存储池名称]
pool-start 启动存储池 pool-start [存储池名称]
pool-undefine 取消定义存储池 pool-undefine [存储池名称]
pool-uuid 显示存储池的 UUID pool-uuid [存储池名称]
pool-event 显示或监视存储池的事件 pool-event [存储池名称] [操作]

卷命令

操作存储卷

命令 解释 使用方式
vol-create 创建一个新的卷 vol-create [存储池名称] [卷名称] [大小]
vol-create-from 使用现有资源创建一个新的卷 vol-create-from [存储池名称] [卷名称] [源卷名称]
vol-create-as 使用指定参数创建一个新的卷 vol-create-as [存储池名称] [XML配置文件]
vol-clone 克隆一个卷 vol-clone [存储池名称] [源卷名称] [目标卷名称]
vol-delete 删除一个卷 vol-delete [存储池名称] [卷名称]
vol-upload 上传一个卷 vol-upload [存储池名称] [卷名称] [本地文件路径]
vol-download 下载一个卷 vol-download [存储池名称] [卷名称] [目标路径]
vol-wipe 擦除一个卷 vol-wipe [存储池名称] [卷名称]
vol-dumpxml 导出卷的 XML 配置 vol-dumpxml [存储池名称] [卷名称]
vol-info 显示卷的信息 vol-info [存储池名称] [卷名称]
vol-list 列出卷 vol-list [存储池名称]
vol-pool 显示卷所在的存储池 vol-pool [存储池名称] [卷名称]
vol-path 显示卷的路径 vol-path [存储池名称] [卷名称]
vol-name 显示卷的名称 vol-name [存储池名称] [卷名称]
vol-key 显示卷的关键字 vol-key [存储池名称] [卷名称]
vol-resize 调整卷的大小 vol-resize [存储池名称] [卷名称] [新大小]

快照命令

操作虚拟机快照,报错虚拟机的磁盘内存和设备状态。

命令 解释 使用方式
snapshot-create 创建一个新的快照 snapshot-create [虚拟机名称] [xml文件]
snapshot-create-as 使用指定参数创建一个新的快照 snapshot-create-as [虚拟机名称] [快照名称] [参数]
snapshot-current 显示当前虚拟机的快照 snapshot-current [虚拟机名称]
snapshot-edit 编辑快照的配置 snapshot-edit [虚拟机名称] [快照名称]
snapshot-info 显示快照的信息 snapshot-info [虚拟机名称] [快照名称]
snapshot-list 列出快照 snapshot-list [虚拟机名称]
snapshot-dumpxml 导出快照的 XML 配置 snapshot-dumpxml [虚拟机名称] [快照名称]
snapshot-parent 显示快照的父快照 snapshot-parent [虚拟机名称] [快照名称]
snapshot-revert 恢复到指定的快照状态 snapshot-revert [虚拟机名称] [快照名称]
snapshot-delete 删除一个快照 snapshot-delete [虚拟机名称] [快照名称]

其他命令

命令 解释 基础使用方式
secret-define 定义一个新的密钥 secret-define [密钥名称]
secret-dumpxml 导出密钥的 XML 配置 secret-dumpxml [密钥名称]
secret-event 显示或监视密钥的事件 secret-event [密钥名称]
secret-set-value 设置密钥的值 secret-set-value [密钥名称] [密钥值]
secret-get-value 获取密钥的值 secret-get-value [密钥名称]
secret-undefine 取消定义一个密钥 secret-undefine [密钥名称]
secret-list 列出已定义的密钥 secret-list
命令 解释 基础使用方式
checkpoint-create 创建一个新的检查点 checkpoint-create [虚拟机名称] [检查点名称]
checkpoint-create-as 使用指定参数创建一个新的检查点 checkpoint-create-as [虚拟机名称] [检查点名称] [参数]
checkpoint-edit 编辑检查点的配置 checkpoint-edit [虚拟机名称] [检查点名称]
checkpoint-info 显示检查点的信息 checkpoint-info [虚拟机名称] [检查点名称]
checkpoint-list 列出检查点 checkpoint-list [虚拟机名称]
checkpoint-dumpxml 导出检查点的 XML 配置 checkpoint-dumpxml [虚拟机名称] [检查点名称]
checkpoint-parent 显示检查点的父检查点 checkpoint-parent [虚拟机名称] [检查点名称]
checkpoint-delete 删除一个检查点 checkpoint-delete [虚拟机名称] [检查点名称]
命令 解释 基础使用方式
nwfilter-define 定义一个新的网络过滤器 nwfilter-define [网络过滤器名称] [XML配置文件]
nwfilter-undefine 取消定义一个网络过滤器 nwfilter-undefine [网络过滤器名称]
nwfilter-list 列出已定义的网络过滤器 nwfilter-list
nwfilter-dumpxml 导出网络过滤器的 XML 配置 nwfilter-dumpxml [网络过滤器名称]
nwfilter-edit 编辑网络过滤器的配置 nwfilter-edit [网络过滤器名称]
nwfilter-binding-create 创建网络过滤器绑定 nwfilter-binding-create [网络过滤器名称] [虚拟网络名称]
nwfilter-binding-delete 删除网络过滤器绑定 nwfilter-binding-delete [网络过滤器名称] [虚拟网络名称]
nwfilter-binding-list 列出网络过滤器绑定 nwfilter-binding-list [网络过滤器名称]
nwfilter-binding-dumpxml 导出网络过滤器绑定的 XML 配置 nwfilter-binding-dumpxml [网络过滤器名称]
命令 解释 基础使用方式
qemu-attach 附加到 QEMU 进程 qemu-attach [虚拟机名称] [参数]
qemu-monitor-command 向 QEMU 监视器发送命令 qemu-monitor-command [虚拟机名称] [命令]
qemu-agent-command 向 QEMU 代理发送命令 qemu-agent-command [虚拟机名称] [命令]
qemu-monitor-event 显示或监视 QEMU 监视器事件 qemu-monitor-event [虚拟机名称] [参数]
命令 解释 基础使用方式
nodedev-create 创建一个新的节点设备 nodedev-create [设备名称] [类型] [参数]
nodedev-update 更新节点设备的配置 nodedev-update [设备名称] [参数]
nodedev-destroy 销毁节点设备 nodedev-destroy [设备名称]
nodedev-define 定义一个新的节点设备 nodedev-define [设备名称] [类型] [XML配置文件]
nodedev-undefine 取消定义一个节点设备 nodedev-undefine [设备名称]
nodedev-start 启动节点设备 nodedev-start [设备名称]
nodedev-detach 分离节点设备 nodedev-detach [设备名称]
nodedev-dumpxml 导出节点设备的 XML 配置 nodedev-dumpxml [设备名称]
nodedev-info 显示节点设备的信息 nodedev-info [设备名称]
nodedev-list 列出节点设备 nodedev-list
nodedev-reattach 重新附加节点设备 nodedev-reattach [设备名称]
nodedev-reset 重置节点设备 nodedev-reset [设备名称]
nodedev-event 显示或监视节点设备的事件 nodedev-event [设备名称] [参数]
nodedev-autostart 设置节点设备在宿主机启动时是否自动启动 nodedev-autostar

基础操作

修改配置文件

virsh edit <名称>

快照

介绍

快照是一个虚拟机状态的镜像或备份。当创建快照时,虚拟化管理程序会记录虚拟机当前状态的一份副本,包括内存、磁盘状态以及其他相关信息。这样,即使后续对虚拟机进行了更改仍然可以回滚到快照的状态,实现快速恢复。

快照的实现依赖于虚拟化管理程序和底层的虚拟化技术。创建大量的快照可能会消耗大量的存储空间,并影响系统性能。

QCOW2格式的快照存储在磁盘的特定区域中,被称为快照链表(Snapshot Chain。快照的数据通常存储在与原始QCOW2文件同一个文件内。快照链表是一种记录磁盘变化历史的数据结构,它包含了一系列快照以及它们之间的关联关系。快照链表通过记录每个快照的父快照来建立快照之间的关系。每个快照文件中都包含一个指向其父快照文件的引用,从而形成了一个链表结构。

快照的所有命令见 命令速览 -> 快照命令

QCOW2

QCOW2 是一种常用的虚拟磁盘格式,文章中默认都是使用这种格式。

可以使用qemu-img命令查看QCOW2文件的详细信息。命令格式为:qemu-img info image.qcow2

快照类型

内部快照

在创建快照时,会将当前磁盘中已分配的簇(cluster)置为只读,标记为已被快照引用,当有新的写IO请求,要修改某个簇时,将该簇中的数据复制出来,创建一个新的簇,后续对该簇的编辑将保存在这个新簇中。由于虚拟机的内部快照存储在其基础磁盘文件中,当虚拟机的磁盘文件遭到损坏或者误删除时,快照数据也会随之丢失。

内部快照仅适用于 qcow2 格式的虚拟机磁盘。内部快照可能不适用于使用某些类型固件虚拟机。如果虚拟机磁盘文件损坏或丢失,内部快照数据也会丢失。

外部快照

创建快照时,当前磁盘被置为只读,系统在磁盘所在存储路径中创建增量镜像文件,后续对该磁盘数据的编辑保存在增量镜像文件中。对该磁盘再次创建快照时,原磁盘和当前增量镜像文件均被置为只读,系统会在数据存储中再创建一个增量镜像文件,形成一个具有数据依赖关系的镜像链。删除外部快照不会更改虚拟机或其他快照。删除快照时,会进行镜像合并,将快照后的增量镜像文件的数据写入到上一级镜像文件中 。

外部快照支持比内部快照更广泛的虚拟机磁盘格式,包括 RAW、vmdk 和 vhdx。创建快照时,增加一个 --disk-only即可创建外部快照。

内外共存

一旦创建了一个外部快照,后续的快照(无论是内部快照还是外部快照)都会增加新的 QCOW2 文件,因为外部快照形成了一个快照链,每个新快照都是基于前一个快照的增量数据。

常用操作

virsh snapshot-list <domain> # 列出快照
virsh snapshot-create <domain> <name> # 创建快照
virsh snapshot-delete <domain> <name> # 删除快照
virsh snapshot-revert <domain> <name> # 恢复到快照

使用案例

virsh snapshot-list  <虚拟机名称>  --tree
virsh snapshot-create-as <虚拟机名称> <快照名称> --atomic --disk-only --description "此处为描述" 

QEMU Agent

virsh qemu-agent-command winltsc '{"execute":"guest-ping"}'
virsh qemu-agent-command winltsc '{"execute":"guest-exec", "arguments": {"path":"C:\\Windows\\System32\\ipconfig.exe", "capture-output": true}}'
virsh qemu-agent-command winltsc '{"execute":"guest-exec-status","arguments":{"pid":6496}}'

虚拟机XML配置

操作示例

创建虚拟机

Windows

shell sudo virt-install
--name=Win10
--memory=8192
--disk path=/vm/Win10/disk.qcow2,size=40
--vcpus=4
--cdrom=/storage/iso/windows_10_business_20h2_x64.iso
--os-variant=win10
--graphics=vnc,port=5900,listen=0.0.0.0
--network network=default
--boot cdrom,hd

参数 作用 当前参数的作用
--name=Win10 指定虚拟机的名称 创建一个名为 "Win10" 的虚拟机
--memory=8192 指定虚拟机的内存大小(以 MB 为单位) 设置虚拟机的内存大小为 8192 MB(8 GB)
--disk path=/vm/Win10/disk.qcow2,size=40 指定虚拟机的磁盘配置,包括磁盘文件路径和大小 创建一个大小为 40 GB 的磁盘文件,并将其挂载到虚拟机上
--vcpus=4 指定虚拟机的虚拟 CPU 核心数量 分配 4 个虚拟 CPU 核心给虚拟机
--cdrom=/iso/windows.iso 指定虚拟机的光盘镜像文件路径 将 Windows 10 的光盘镜像文件挂载到虚拟机的 CD-ROM 设备上
--os-variant=win10 指定虚拟机操作系统的变种 指定虚拟机为 Windows 10 操作系统
--graphics=vnc,port=5900,listen=0.0.0.0 指定虚拟机的图形输出方式和参数 启用 VNC 图形输出,监听端口为 5900,并绑定到所有网络接口
--network network=default 指定虚拟机的网络配置 使用默认网络配置连接虚拟机
--boot cdrom,hd 指定虚拟机的启动顺序,首先从光盘启动,然后从硬盘启动 设置虚拟机首先从 CD-ROM 启动,然后从硬盘启动
创建时间:2024-07-08
最后修改:2024-07-08

反馈