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

news2024/9/23 19:21:50

目录

一、简介

二、常用离线命令

三、具体使用实例

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode 最长连续序列

算法流程&#xff1a; 哈希集合去重&#xff1a; 通过将数组中的所有元素放入 unordered_set&#xff0c;自动去除重复元素。集合的查找操作是 O(1)&#xff0c;这为后续的快速查找提供了保证。 遍历数组&#xff1a; 遍历数组中的每一个元素。对于每个元素&#xff0c;首先检…

OpenCV 与 YoloV3的结合使用:目标实时跟踪

目录 代码分析 1. YOLO 模型加载 2. 视频加载与初始化 3. 视频帧处理 4. 物体检测 5. 处理检测结果 6. 边界框和类别显示 7. 帧率&#xff08;FPS&#xff09;计算 8. 结果显示与退出 9. 资源释放 整体代码 效果展示 总结 代码分析 这段代码使用 YOLO&#xff08…

C++之函数的分文件编写

1.创建test.h的头文件 2.创建test.cpp的源文件 3.在头文件中写函数的声明 4.在源文件中写函数的定义 调用测试&#xff1a;

优雅的实现SSL证书的免费申请和续期【FreeSSL】

在今年上半年&#xff0c;各大厂商纷纷调整了免费SSL证书的有效期&#xff0c;将其从12个月缩短至3个月。这一变动给那些管理大量免费证书的人带来了很多麻烦&#xff0c;因为需要频繁地进行申请和部署。 今天我要介绍的是一种自动化申请证书的流程&#xff0c;可以实现多域名…

Python进阶——使用python操作数据库!

Python进阶——使用python操作数据库 一、数据库编程接口 为了对数据库进行统一操作&#xff0c;大多数语言都提供了简单的、标准的数据库接口python database api 2.0中&#xff0c;定义了python数据库api接口的各个部分&#xff0c;如模块接口、连接对象、游标对象、类型对…

物联网——DMA+AD多通道

DMA简介 存储器映像 某些数据在运行时不会发生变化&#xff0c;则设置为常量&#xff0c;存在Flash存储器中&#xff0c;节省运行内存的空间 DMA结构图 DMA访问权限高于cpu 结构要素 软件触发源&#xff1a;存储器到存储器传输完成后&#xff0c;计数器清零 硬件触发源&…

人员随机分组

如何实现男女比例平均分组&#xff1f; 在团队活动中&#xff0c;合理地将人员分组是一项重要的组织工作&#xff0c;它有助于提高团队合作的效率和质量。云分组小程序提供了一个便捷的解决方案&#xff0c;通过智能算法帮助用户快速实现人员分组。本文将详细介绍如何使用云分组…

网络通信安全:全面探索与深入分析

摘要&#xff1a;本文全面探索网络通信安全相关内容。首先阐述网络通信安全的基本概念与原理&#xff0c;包括网络通信模型、安全目标以及加密技术基础。接着详细分析其面临的威胁&#xff0c;涵盖恶意软件&#xff08;病毒、蠕虫、特洛伊木马&#xff09;、网络攻击&#xff0…

GAMES103——作业1 刚体碰撞

任务 1.更新位置、姿态与速度 2.碰撞检测 3.碰撞反馈 实现 更新位置、姿态与速度 对于速度的更新&#xff0c;采用显式的方法&#xff0c;对于位置的更新&#xff0c;采用隐式的方法。就是103中讲的两只青蛙的例子。 需要同时更新线速度和角速度。线速度受到重力的影响&#xf…

OpenGL软光栅化效果图

1.在测试Mesa库画正方形时&#xff0c;看到三角形光栅化过程&#xff0c;分享出来便于理解图形化过程。 2.在此应该和电脑的配置有关系&#xff0c;配置高的话应该可以画的更快。 需要下载的&#xff0c;下面 https://download.csdn.net/download/huzhifei/89734620 。

【机器学习】迁移学习概论

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 迁移学习概论什么是迁移学习?为什么需要迁移学习?迁移学习的应用场景和优势迁…

渲染农场是什么,怎么收费?

什么是渲染农场&#xff1f; 渲染农场是一组连接在一起以完成大型任务的计算机。在 3D 渲染的情况下&#xff0c;渲染农场通常会将动画的帧分发到多台计算机。您可以让 100 台计算机工作 1 天&#xff0c;而不是让一台计算机工作 100 天。 成都渲染101渲染农场如何工作&#…

【JS逆向学习】大学竞争力2021排行榜(md5加密)

逆向目标 网址&#xff1a;https://www.jizhy.com/44/rank/school接口&#xff1a;https://www.jizhy.com/open/sch/rank-list参数&#xff1a; sign 逆向过程 老一套先分析网络请求 经过比对 payload 参数发现&#xff0c;除了 page、ts、sign 三个参数外&#xff0c;其他…

操作系统 --- 进程通信(IPC)

目录 一、进程间的通信&#xff1f; 二、为什么进程间通信需要操作系统支持&#xff1f; 三、进程间通信的方法 3.1 共享存储 3.2 消息传递&#xff08;消息队列&#xff09; 3.2.1 直接通信方式【点名道姓的消息传递】 3.2.2 间接通信方式【以“信箱”作为中间实体进…

leetcode:2710. 移除字符串中的尾随零(python3解法)

难度&#xff1a;简单 给你一个用字符串表示的正整数 num &#xff0c;请你以字符串形式返回不含尾随零的整数 num 。 示例 1&#xff1a; 输入&#xff1a;num "51230100" 输出&#xff1a;"512301" 解释&#xff1a;整数 "51230100" 有 2 个尾…

合宙低功耗4G模组Air780EX——硬件设计手册02

在上文我们介绍了合宙低功耗4G模组Air780EX的主要性能和应用接口&#xff0c; 上文链接&#xff1a;合宙低功耗4G模组Air780EX——硬件设计手册01-CSDN博客 本文我们将继续介绍Air780EX的射频接口&#xff0c;电气特性&#xff0c;实网功耗数据&#xff0c;结构规格等内容。 …

如何解决户用光伏项目管理难题?

户用光伏作为分布式能源的重要组成部分&#xff0c;正迎来前所未有的发展机遇。户用光伏项目的复杂性和多样性也给项目管理带来了诸多挑战&#xff0c;包括客户分散、安装周期长、运维难度大、数据监控不及时等问题。为解决这些难题&#xff0c;构建一套高效、智能的户用光伏业…

降维打击 华为赢麻了

文&#xff5c;琥珀食酒社 作者 | 积溪 真是赢麻了 华为估计都懵了 这辈子还能打这么富裕的仗&#xff1f; 其实在苹果和华为的发布会召开之前 我就知道华为肯定会赢 但我没想到 苹果会这么拉胯 华为这是妥妥的降维打击啊 就说这苹果iPhone 16吧 屏幕是变大了、颜色…

银行用电安全管理难点及解决方案

1引言 科技进步带来丰富的电力资源和更多电气设备&#xff0c;但同时也增加了火灾风险。2020年&#xff0c;中国共发生25.2万起火灾&#xff0c;其中电气原因导致的火灾占33.6%&#xff0c;共8.5万起。电气问题引发的较大火灾占55.4%。线路问题如短路、过负荷和接触不良是主要…

FastAPI 深入学习:利用__call__方法实现动态依赖项

在Python中&#xff0c;__init__ 和 __call__ 是两个特殊的方法&#xff0c;它们在类的上下文中有特定的用途&#xff1a; __init__ 方法&#xff1a; 这是类的初始化方法&#xff0c;当一个实例被创建时&#xff0c;它会被自动调用。它通常用于接收初始化参数并设置实例的初始…