KVM虚拟机的常用操作命令整理
创建虚拟机
第一步,咱们先通过一条命令来快速创建一个虚拟机。下面这个 virt-install 命令是个典型的例子,参数含义都写在注释里了:
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
[root@localhost ~]# virt-install --name=centos1 \ # 定义虚拟机名称为 centos1
--ram 1024 --vcpus=1 \ # 分配 1024MB 内存,1 个 vCPU
--disk path=/root/centos1.img,size=10 \ # 创建 10GB 的磁盘镜像
--accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \ # 指定安装镜像,并启用加速
--graphics vnc,port=5921 --network bridge=br0 # 使用 VNC 图形界面(端口 5921),网络桥接到 br0
Virt的其他操作
虚拟机创建好后,日常管理离不开 virsh 命令。下面这些是运维中最常用的操作,直接敲命令就行:
[root@localhost /]# virsh start centos1 #启动虚拟机
[root@localhost /]# virt-viewer centos1 #如果有图形界面的话,可以进入虚拟机的界面
[root@localhost ~]# virsh shutdown centos1 #关闭虚拟机
[root@localhost /]# virsh reboot centos1 #重启虚拟机
[root@localhost /]# virsh suspend centos1 #暂停虚拟机
[root@localhost /]# virsh resume centos1 #恢复虚拟机
[root@localhost /]# virsh autostart centos1 #设置虚拟机随宿主机自动启动
当然,virsh 的功能远不止这些。为了便于查阅,这里把它的主要参数整理了一下:
- autostart – 设置虚拟机自动启动
- connect – 重新连接到 hypervisor
- console – 连接到客户机控制台
- create – 从一个 XML 文件创建虚拟机
- start – 启动一个已定义但未运行的虚拟机
- destroy – 强制停止(删除)一个虚拟机
- define – 从 XML 文件定义(注册)一个虚拟机
- domid – 将虚拟机名称或 UUID 转换为内部 ID
- domuuid – 将虚拟机名称或 ID 转换为 UUID
- dominfo – 查看虚拟机详细信息
- domstate – 查看虚拟机当前状态
- domblkstat – 获取虚拟机块设备状态
- domifstat – 获取虚拟机网络接口状态
- dumpxml – 以 XML 格式导出虚拟机配置
- edit – 编辑虚拟机的 XML 配置文件
- list – 列出所有虚拟机
- migrate – 将虚拟机迁移到另一台主机
- quit – 退出非交互式终端
- reboot – 重启虚拟机
- resume – 恢复一个被挂起的虚拟机
- sa ve – 将虚拟机状态保存到文件
- dump – 将虚拟机的内核转储到文件以便分析
- shutdown – 优雅关闭虚拟机
- setmem – 动态调整内存分配
- setmaxmem – 调整最大内存限制值
- suspend – 挂起虚拟机
- vcpuinfo – 查看虚拟机的 vCPU 信息
- version – 显示 virsh 版本
虚拟机克隆
如果需要部署多个配置相同的虚拟机,一个个安装太费时。这时 virt-clone 命令就派上大用场了,它能快速克隆出一个完全一样的副本:
# virt-clone --connect=qemu:///system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1
正在克隆 centos1.img | 10.0 GB 00:07
Clone 'centos3' created successfully.
说到虚拟机管理工具,还有一个包不得不提:libguestfs-tools。它提供了一系列强大的离线管理功能,堪称运维利器。安装命令很简单:
[root@localhost ~]# yum -y install libguestfs-tools #安装工具包
镜像文件离线管理
装好工具包,咱们来看看它的本事。首先,不用启动虚拟机,就能直接查看镜像文件内部有哪些目录:
[root@localhost ~]# virt-ls centos.img /home #查看centos.img镜像文件中/home目录
tank
更厉害的是,还能直接从镜像里把文件拷贝出来,这在做故障排查或数据恢复时特别方便:
[root@localhost ~]# virsh list --all #先确认一下有哪些虚拟机
Id 名称 状态
----------------------------------------------------
1 centos1 running
2 centos6.5 running
- arch 关闭
- arch1 关闭
- arch2 关闭
- arch3 关闭
- arch5 关闭
- centos3 关闭
- ubuntu 关闭
- ubuntu1 关闭
[root@localhost ~]# virt-copy-out -d centos1 /etc/passwd /tmp #将centos1中的/etc/passwd文件拷贝到宿主机的/tmp目录下
检查虚拟机磁盘状态
想了解虚拟机的磁盘分区和使用情况,也有专门的命令。可以针对运行中的虚拟机:
[root@localhost ~]# virt-filesystems -d centos1
/dev/sda1
/dev/VolGroup/lv_root
也可以直接分析镜像文件:
[root@localhost ~]# virt-list-partitions /root/centos.img
/dev/sda1
/dev/sda2
甚至能像 Linux 下的 df 命令一样,查看详细的磁盘空间使用率:
[root@localhost ~]# virt-df centos.img
Filesystem 1K-blocks Used A vailable Use%
centos.img:/dev/sda1 495844 34510 435734 7%
centos.img:/dev/VolGroup/lv_root 8780808 2842056 5492700 33%
挂载虚拟机磁盘
有时候需要直接修改虚拟机里的文件,可以把它整个磁盘挂载到宿主机上,像操作本地目录一样方便:
[root@localhost ~]# guestmount -a /root/centos.img -m /dev/VolGroup/lv_root --rw /mnt/usb
[root@localhost ~]# cd /mnt/usb/
[root@localhost usb]# ls
bin dev home lib64 media mnt opt root selinux sys usr
boot etc lib lost+found misc net proc sbin srv tmp var
调整虚拟机内存
虚拟机运行后想调整内存大小?没问题,但要注意方法。直接编辑配置文件是行不通的,必须使用 virsh edit 命令:
[root@nfs ~]# virsh edit vm01 ##注意:不能用vi直接编辑配置文件,那样不生效
在打开的 XML 配置里,找到内存配置部分。注意这里的单位是 KB,比如 1GB 对应的是 1048576 KB:
vm01
df8604c1-dcf3-fa98-420f-6eea7b39c395
1048576 ###本来开始设置为1G,现在这个单位是k
1048576
如果想改成 1.5GB,需要先换算一下:
[root@nfs ~]# expr 1536 \* 1024
1572864
改好配置后,必须重启虚拟机才能生效。操作流程如下:
[root@nfs ~]# virsh list
Id Name State
----------------------------------
1 win2003 running
3 vm01 running
[root@nfs ~]# virsh shutdown vm01 ###修改配置文件后需要重新启动下虚拟机,先关闭它
Domain vm01 is being shutdown
[root@nfs ~]# virsh list ###确认已经被关闭
Id Name State
----------------------------------
1 win2003 running
[root@nfs ~]# virsh start vm01 ###启动它
Domain vm01 started
[root@nfs ~]# virsh list
Id Name State
----------------------------------
1 win2003 running
3 vm01 running
最后,登录到虚拟机里用 free -m 命令检查一下,确认内存已经成功调整为 1.5GB:
[root@vm01 liuxiaojie]# free -m
total used free shared buffers cached
Mem: 1505 618 886 0 29 361
-/+ buffers/cache: 227 1277
Swap: 2000 0 2000
删除虚拟机
清理不再需要的虚拟机,通常分两步走:先用 virsh undefine 移除其配置定义,再手动删除对应的磁盘镜像文件。
[root@nfs qemu]# virsh undefine vm01
[root@nfs qemu]# rm -f /home/data/vm01.img
强制删除运行中的域
值得注意的是,virsh undefine 命令即使对正在运行的虚拟机也能执行成功,但这只是删除了配置定义,虚拟机进程仍然在运行。想要彻底清理,还需要补一个 virsh destroy 命令来强制停止它。
来看一个完整的例子:
[root@nfs web01]# virsh list --all
Id Name State
----------------------------------
1 web01 running ## 虚拟机正在运行
- myweb01 shut off
- myweb03 shut off
- mywin2003 shut off
- myxp shut off
- xp shut off
[root@nfs web01]# virsh undefine web01 ## 先移除配置定义,此时虚拟机进程仍在跑
Domain web01 has been undefined
[root@nfs web01]# virsh list
Id Name State
----------------------------------
1 web01 running ## 看,进程还在
[root@nfs web01]# virsh destroy web01 ## 再强制停止该进程
Domain web01 destroyed
[root@nfs web01]# virsh list --all ## 现在,web01 已经从列表中彻底消失了
Id Name State
----------------------------------
- myweb01 shut off
- myweb03 shut off
- mywin2003 shut off
- myxp shut off
- xp shut off
到了这一步,如果再想通过定义文件恢复这个虚拟机,系统就会报错,提示找不到对应的文件了:
[root@nfs web01]# virsh define web01
error: Failed to open file 'web01': No such file or directory
所以,删除运行中的虚拟机时,务必确认两步操作都已完成,避免遗留僵尸进程。
相关攻略
创建虚拟机 第一步,咱们先通过一条命令来快速创建一个虚拟机。下面这个 virt-install 命令是个典型的例子,参数含义都写在注释里了: [root@localhost ~] virt-install --name=centos1 定义虚拟机名称为 centos1 --ram 1024
并行EVM深度解析:Monad与Sei如何重塑公链性能格局 在以太坊主导的Web3生态中,性能瓶颈始终是开发者与用户的核心痛点。随着Layer 2方案的普及,一种更为底层的技术革新——并行EVM,正成为下一代公链竞争的焦点。它承诺在不牺牲兼容性的前提下,实现交易吞吐量的指数级提升。本文将深入剖析并行
两种实用方法:扩展VMware虚拟机磁盘容量 虚拟机用久了,磁盘空间告急是常有的事。别着急,这里提供两种主流且经过验证的解决方案,你可以根据实际情况灵活选择。 第一种方法:增加新硬盘分区 这相当于给你的虚拟机加装一块全新的物理硬盘,操作直观,适合绝大多数用户。 第一步,在VMware中挂载新虚拟硬盘
VMware虚拟机键盘失灵?别急,分步排查轻松搞定 不少朋友在VMware里折腾完虚拟机,正准备大展拳脚,结果一开机却发现键盘完全失灵,敲不出半个字。这种体验确实令人抓狂,但别担心,这通常是小问题,按照下面这套清晰的流程操作,基本都能顺利解决。 第一步:关键前提与设置调整 整个操作有一个至关重要的前
近日,作为2026中关村论坛核心组成部分,由趋境科技与九源智能计算系统生态联合体共同主办的“全栈智能 全域推理:Token爆发元年的全场景大规模推理服务”专题研讨会成功举办。商汤大装置首席架构师项铁
热门专题
热门推荐
在数字货币快速发展的今天,如何选择一个靠谱的交易平台,往往是新手投资者迈出的第一步。面对市场上琳琅满目的交易所APP,从安全性、易用性到功能特色,究竟该怎么选?下面,我们就来梳理一下2026年主流的数字资产交易平台,帮你从多个维度看清它们的核心特点,无论是想尝试简单的现货买卖,还是计划涉足合约交易,
从音乐人到AI药物研发创业者:Aloe Blacc的跨界创业之路 近日,美国知名创作歌手Aloe Blacc做客TechCrunch旗下知名播客Equity,分享了他从音乐界成功跨界至AI驱动抗癌药物研发领域的独特经历。尤为引人关注的是,他创立的AI医药公司至今未进行任何外部融资。在访谈中,他深入阐
AI文生视频:从“猎奇玩具”到“生产力工具”的疾速进化 还记得几年前全网疯传的“威尔·史密斯吃意大利面”吗?那段画面扭曲、动作诡异的视频,一度成为AI文生视频技术稚嫩期的经典注脚——与其说是创作,不如说是一场数字世界的“恐怖谷”体验,离实际应用相距甚远。 然而,技术的演进速度总是超乎想象。过去一年,
百度开源文生图模型ERNIE-Image:消费级显卡畅享顶级文字生成效果 2024年4月15日,百度文心大模型团队正式宣布开源其参数规模达80亿的文生图模型ERNIE-Image。该模型最引人注目的优势在于,仅需24GB显存的消费级GPU即可实现高效部署与运行。同时,团队还发布了推理加速版本ERNI
欧亿交易所现货交易时间:如何理解其全球化设计逻辑? 在数字资产交易的世界里,交易时间的设定绝非小事。它直接关系到投资者的操作空间能否打开,以及整个市场的流动性是否充沛。作为行业内的头部平台,欧亿交易所(OYEX)在现货交易时间上的安排,可以说是一份深思熟虑的“全球时区解决方案”。它的设计,精准地瞄准





