【虚拟化】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

相关推荐
理想奋斗中5 天前
【从零开始学习JVM | 第二篇】HotSpot虚拟机对象探秘
java·jvm·虚拟机·hotspot·对象创建的过程
漫谈网络9 天前
macvlan 和 ipvlan 实现原理及设计案例详解
linux内核·虚拟化·macvlan·网络命名空间·netns·ipvlan
漫谈网络11 天前
什么是混杂模式?为什么 macvlan 依赖它
linux内核·虚拟化·macvlan·网络命名空间·混杂模式
自由鬼11 天前
开源免费虚拟化软件PVE功能介绍
运维·服务器·开源·虚拟化
菜鸟xy..11 天前
麒麟系统桌面版本v10安装教程
linux·运维·服务器·虚拟机·安装教程·麒麟
Linux内核拾遗11 天前
使用kvmtool运行和调试Linux内核
linux·kvm
自由鬼13 天前
开源虚拟化管理平台Proxmox VE部署超融合
linux·运维·服务器·开源·虚拟化·pve
我没想到原来他们都是一堆坏人14 天前
利用vmware快速安装一个可以使用的centos7系统
linux·虚拟机
祈53316 天前
hadoop集群配置-scp命令
虚拟机
G皮T17 天前
【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
阿里云·fpga开发·云计算·虚拟化·fpga·异构计算·弹性计算