展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 系统应用 > KVM虚拟机的常用操作命令整理

KVM虚拟机的常用操作命令整理

创建虚拟机 第一步,咱们先通过一条命令来快速创建一个虚拟机。下面这个 virt-install 命令是个典型的例子,参数含义都写在注释里了: [root@localhost ~]# virt-install --name=centos1 \ # 定义虚拟机名称为 centos1 --ram 1024

创建虚拟机

第一步,咱们先通过一条命令来快速创建一个虚拟机。下面这个 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

所以,删除运行中的虚拟机时,务必确认两步操作都已完成,避免遗留僵尸进程。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
系统应用
相关文章 更多
精品专题 更多
本月促销

正软商城本月促销专区,汇集办公、设计、安全、影音、系统工具及AI软件等正版软件优惠活动,提供限时折扣、特价授权和优惠购买信息,活动库存及价格以页面实时展示为准。

装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

Mole
Mole

Mole 是一款专为 Mac 设计的深度清理优化工具,涵盖缓存清理、应用管理及实时状态监控等功能。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Seer
Seer

Seer是一款在Win平台下的空格键功能增强效率工具,只需轻敲空格键,就能预览几乎任何格式的文件。它更适合把零散的小功能集中起来使用,处理高频琐碎任务时会更省事。