【虚拟化】KVM-virsh离线工具进行客户机虚拟机磁盘访问

目录

一、简介

二、常用离线命令

三、具体使用实例

1.virt­-inspector

2.virt-cat

3.virt-edit

4.virt-df

5.virt-copy-out/virt-copy-in

6.guestmount

7.virt-diff

8.virt-customize

9.virt-sparsify


一、简介


Red Hat Enterprise Linux 7 提供多个 libguestfs 工具,可访问、编辑和创建客户机虚拟机磁盘或其他磁盘镜像。这些工具有多种用途,包括:

  • 查看或下载位于客户机虚拟机磁盘中的文件。
  • 在客户机虚拟机磁盘上编辑或上传文件。
  • 读取或写入客户机虚拟机配置.
  • 准备包含文件、目录、文件系统、分区、逻辑卷和其他选项的新磁盘镜像。
  • 修复无法引导的客户机虚拟机,或者需要启动配置更改的客户机虚拟机。
  • 监控客户机虚拟机的磁盘使用情况.
  • 审计客户虚拟机合规性,例如组织安全标准。
  • 通过克隆和修改模板来部署客户机虚拟机.
  • 读取 CD 和 DVD ISO 映像以及软盘磁盘映像.

二、常用离线命令


  • guestfish
  • guestmount
  • virt-alignment-scan
  • virt-cat
  • virt-copy-in
  • virt-copy-out
  • virt-df
  • virt-edit
  • virt-filesystems
  • virt-inspector
  • virt-ls
  • virt-rescue
  • virt-sysprep
  • virt-tar-in
  • virt-tar-out

三、具体使用实例


1.virt­-inspector

显示os版本、内核、驱动、挂载点、应用等等,执行时间比较长,输出内容也多 很少使用。

virt-inspector -a  /images/kvm/study02.qcow2 > report.xml

virt-inspector -d study02 > report.xml

结果将是一个 XML 报告(report.xml)。XML 文件的主要组件是一个顶层 <operatingsytems> 元素,它通常包含一个 <operatingsystem> 元素。

2.virt-cat

类似于cat命令,参数:-a 需要指定虚拟机储存文件;-d 需要指定虚拟机名称,用法相同。

3.virt-edit

类似于vim,执行命令后在文本编辑器内修改文件内容。例如在下面修改主机名,原主机名为localhost,修改后主机名为study02,通过virt-cat命令查看主机名已经修改成功。

virt-edit -d study02 /etc/hostname
4.virt-df

类似于df -h用于查看虚拟机磁盘信息

5.virt-copy-out/virt-copy-in

类似于scp命令,把虚拟机中的文件远程复制到宿主机中或者把宿主机中的文件远程复制到虚拟机中。

virt-copy-out -d study02  /etc/os-release ./

virt-copy-in  -d study02  /etc/hostname    /opt/
virt-cat -d study02 /opt/hostname

拷贝宿主机的hostname文件到虚拟机study02

6.guestmount

在一些使用场景中,直接把虚机镜像文件挂接在本地系统中,也是一个简便的办法。

guestmount -d 虚拟机名 -m 磁盘路径 --rw 挂载点

如果事先不知道虚机内部分区的路径信息,则可以使用参数-i来让guestmount自己决定使用哪一个磁盘路径,挂载后,进入mnt目录下就是myvm01的根目录,可以进行正常操作。

guestmount -d study02 -i --rw /mnt

将/mnt下的挂载进行卸载

7.virt-diff

virt-diff 命令行工具可用于列出两个虚拟机磁盘映像中的文件差异。输出显示了虚拟机运行之后虚拟机磁盘映像的更改。命令也可用于显示覆盖的不同。

 # 要指定两个虚拟机,您必须在第一个 guest 中使用 -a 或 -d 选项,
 #第二个客户机使用 -A 或 -D 选项。
 virt-diff -a /images/kvm/study02.qcow2  -A /images/kvm/study03.qcow2

virt-diff -d study02 -D study03
8.virt-customize

virt-customize 命令行工具可用于自定义虚拟机,提早安装和配置虚拟机。例如,通过安装软件包并编辑配置文件:

要使用 virt-customize ,客户端虚拟机必须离线,因此您必须在运行命令前关闭它。请注意,virt-customize 修改客户机或磁盘镜像而无需复制它。如果要保留客户端虚拟机的现有内容,则必须首先复制或克隆磁盘。

# 设置时区
virt-customize -a  /images/kvm/study02.qcow2  --timezone "Asia/Shanghai" 
# 追加配置
virt-customize -a  /images/kvm/study02.qcow2 --append-line '/root/.bash_profile:export LANG="en_US.UTF-8"'
9.virt-sparsify

virt-sparsify 命令行工具可用于生成虚拟机磁盘(或任何磁盘镜像)稀疏。这也被称为精简配置。磁盘镜像上的可用磁盘空间转换为主机上可用空间。

virt-sparsify 命令可以处理大多数文件系统,如 ext2、ext3、ext4、btrfs、NTFS。它还可用于 LVM 物理卷。virt-sparsify 可以针对任何磁盘镜像操作,而不只是虚拟机磁盘镜像。

如下示例命令解释:使用virt-sparsify工具将原镜像 /images/kvm/study02.qcow2 稀疏,最后得到study02-new.qcow2。

其中会在/images/kvm/tmp/目录下生成一个临时文件,其目的是为了保护原镜像磁盘文件不会损毁。

--tmp选项可自行指定,也可不用,具体根据服务器的情况来选择。

virt-sparsify --compress  /images/kvm/study02.qcow2  /images/kvm/study02-new.qcow2 --tmp /images/kvm/tmp/

具体操作步骤

[root@kvm kvm]# ll -h
total 24G
-rw-------. 1 qemu qemu  32G Sep  1 17:34 study01.img
-rw-------. 1 qemu qemu  21G Sep  1 16:47 study02.qcow2
-rw-r--r--. 1 qemu qemu 193K Aug 11 19:03 study03.qcow2
-rw-------. 1 qemu qemu 193K Aug 29 15:29 test1.qcow2
drwxr-xr-x. 2 root root    6 Sep  1 17:34 tmp
-rw-r--r--. 1 root root 1.4G Aug 18 15:46 vmdk-vmware.vmdk
[root@kvm kvm]# virt-sparsify --compress  /images/kvm/study02.qcow2  /images/kvm/study02-new.qcow2 --tmp /images/kvm/tmp/
[   0.1] Create overlay file in /images/kvm/tmp/ to protect source disk
[   0.1] Examine source disk
[   4.1] Fill free space in /dev/centos/root with zero
 100% ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 00:00
[ 172.6] Fill free space in /dev/sda1 with zero
[ 178.9] Copy to destination and make sparse
[ 369.8] Sparsify operation completed with no errors.
virt-sparsify: Before deleting the old disk, carefully check that the 
target disk boots and works correctly.
[root@kvm kvm]# ll -h
total 25G
-rw-------. 1 qemu qemu  32G Sep  1 18:07 study01.img
-rw-r--r--. 1 root root 536M Sep  1 17:40 study02-new.qcow2
-rw-------. 1 qemu qemu  21G Sep  1 16:47 study02.qcow2
-rw-r--r--. 1 qemu qemu 193K Aug 11 19:03 study03.qcow2
-rw-------. 1 qemu qemu 193K Aug 29 15:29 test1.qcow2
drwxr-xr-x. 2 root root    6 Sep  1 17:40 tmp
-rw-r--r--. 1 root root 1.4G Aug 18 15:46 vmdk-vmware.vmdk

参考地址:

21.13. virt-diff:列出虚拟机文件间的差异 | Red Hat Product Documentation

相关推荐
QQVQQ...4 小时前
Vmware虚拟机无法打开内核设备“\\.\Global\vmx86“的解决方法
虚拟机
sysin.org1 天前
VirtualBox 7.1.0 发布下载 - 开源跨平台虚拟化软件
开源·虚拟化·virtualbox
yanling20233 天前
Parallels Desktop 20破解版(Mac虚拟机) v20.0.0 for Mac 最新商业版(支持M系列)
macos·虚拟机·pd
星空爱忆5 天前
将 Parallels Desktop(PD虚拟机)安装在移动硬盘上,有影响吗?
虚拟机·移动硬盘·parallels·unigraphics
信服云5 天前
对比VMware:深信服内存纠错能力怎么样?
虚拟化·超融合
不是好人呀6 天前
虚拟机安装教程
服务器·虚拟机
西京刀客6 天前
kvm 虚拟机命令行虚拟机操作、制作快照和恢复快照以及工作常用总结
linux·服务器·kvm
开出南方的花7 天前
数据处理与统计分析篇-day01-Linux基础与环境搭建
linux·运维·服务器·ssh·虚拟机·linux命令·finalshell
超爱找事13 天前
苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?
macbook·虚拟机·玩游戏·苹果电脑·crossover