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

相关推荐
出发行进2 天前
Flink错误:一historyserver无法启动,二存在的文件会报错没有那个文件或目录
大数据·linux·hadoop·flink·虚拟机
志凌海纳SmartX3 天前
概念解读|K8s/容器云/裸金属/云原生...这些都有什么区别?
云原生·容器·kubernetes·虚拟化
安全二次方security²5 天前
2024 RISC-V中国峰会 安全相关议题汇总
安全·虚拟化·risc-v·中国峰会·侧信道攻击·riscv optee·riscv hsm
DreamLife☼12 天前
PVE纵览-从零开始:了解Proxmox Virtual Environment
开源·虚拟化·虚拟机·pve·all in one
弗锐土豆14 天前
Windows系统中Oracle VM VirtualBox的安装
windows·虚拟机·virtualbox
孤客网络科技工作室15 天前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
Hcoco_me18 天前
宝藏虚拟化学习资料大全
学习·虚拟化
陈晨辰熟稳重19 天前
20241102-Windows 10上安装虚拟机VMware10.0.2、Hadoop3.3.6与jdk1.8.0
大数据·hadoop·windows·jdk·vmware·虚拟机·文件配置
未来之窗软件服务20 天前
云计算虚拟机批量管理软件——未来之窗行业应用跨平台架构
云计算·虚拟机·批量管理
Just_Paranoid22 天前
Android 虚拟化框架(AVF)指南
android·google·虚拟化·aosp·avf