libguestfs 是一组 Linux 下的 C 语言的 API ,用来访问虚拟机的磁盘映像文件。其项目主页是http://libguestfs.org/ ,
该工具包内包含的工具有virt-cat、virt-df、virt-ls、virt-copy-in、virt-copy-out、virt-edit、guestfs、guestmount、
virt-list-filesystems、virt-list-partitions等工具,具体用法也可以参看官网。该工具可以在不启动KVM guest主机的情况下,
直接查看guest主机内的内容,也可以直接向img镜像中写入文件和复制文件到外面的物理机,当然其也可以像mount一样,支持挂载操作

1、libguestfs-tools的安装
由于在rpm源里直接有该包,所以可以直接通过yum进行安装:

yum -y install libguestfs-tools

2、常用命令行
virt-ls 命令
virt-ls可以列出虚拟机中目录下的文件或目录,用法如下
virt-ls [--options] -d domname dir [dir ...]----->options值类似平常的ls 的参数
virt-ls [--options] -a disk.img [-a disk.img ...] dir [dir ...]

virt-ls -d centos2 /etc/------>centos2是domain域名,domname可以通过virsh list得到
可以像使用ls一样加一些参数,如-l等,具体请看virt-ls --help
virt-ls -l -d centos6.5 /root #查看目录,-l 表示以长格式显示

virt-what 命令
virt-what可以用来检测当前系统是不是一个虚拟机,如果不是虚拟机,执行virt-what将不会有任何输出,如果是虚拟机,它会打印一系列关于虚拟机的’facts’(如kvm)
virt-what命令由同名包提供,要命令需要先安装(yum -y install virt-what)

virt-top 命令 显示虚拟机状态
virt-top命令由同名软件包提供,和top命令相似,只是进程换成了虚拟机
yum -y install virt-top
virt-top

virt-cat 命令
virt-cat可以查看虚拟机中文件的内容,用法如下
virt-cat [--options] -d domname file [file ...]
virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]
virt-cat -d centos2 /etc/passwd
domname可以通过virsh list得到
也可以对虚拟机的磁盘文件操作
virt-cat -a /opt/images/centos2.img /etc/passwd

virt-edit 命令
这个命令可以修改虚机或者镜像里面的内容
virt-edit [--options] -d domname file [file ...]
virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]

例如
virt-edit -d centos2 /etc/passwd 前提是虚拟机关机的情况
它会用vim打开文件,编辑完保存即可修改虚拟机内的文件内容
也可以直接对虚拟机的磁盘文件进行操作
virt-edit -a /opt/images/centos2.img /etc/passwd

Note: 如果虚拟机正在运行,使用第一种方式修改它的文件会有下面的报错
Libguestfs: error: error: domain is a live virtual machine.
Writing to the disks of a running virtual machine ca cause disk corruption.
Either use read-only access, or if the guest is running the guestfsd daemon
specify live access. In most libguestfs tools these options are --ro or
--live respectively. Consult the documentation for further information.
但直接对虚拟机磁盘镜像文件操作不会有这个提示,并且可以修改成功

virt-copy-out 命令
virt-copy-out这个命令可以把虚拟机里的文件复制出来, 用法如下
virt-copy-out -d domname file|dir [file|dir ...] localdir
virt-copy-out -a disk.img file|dir [file|dir ...] localdir
例子
virt-copy-out -d centos2 /etc/passwd .
可以是多个文件或目录
mkdir tmp
virt-copy-out -d centos2 /etc /home /root/.bashrc tmp
也可以直接对虚拟机磁盘文件操作,只需要将-d domname换成-a path_of_disk_file

virt-copy-in
virt-copy-in是将文件复制到虚拟机里面,用法和virt-copy-out基本相同,这里只举一个例子
virt-copy-in -d centos2 test.txt /opt/
如果虚拟机正在运行,上面的命令也会报错

virt-df 命令 查看虚拟机或者镜像挂载情况
virt-df [--options] -d domname file [file ...]
virt-df [--options] -a disk.img [-a disk.img ...] file [file .]
virt-df -d CentOS2
virt-df -a /opt/images/centos2.img
virt-df -d centos6.6

guestmount 分区挂载
guestmount -d centos6.6 -i /media/
[root@e3 ~]# ll /media/ #挂载虚拟机硬盘到本地/media

virt-resize
virt-resize可以调整虚拟机磁盘的大小,调整或删除任何分区
virt-resize不可以就地调整磁盘,不应该对正在运行的虚拟机进行磁盘调整,为了确保一致性,调整先需要关闭虚拟机
virt-resize调整的过程非常慢,从35G的磁盘进行扩展需要差不多10分钟
virt-resize调整所花的时候只和开始磁盘的大小有关,从35G扩展到40G和扩展到135G所花的时间差不多
如果你使用qcow2磁盘格式,个人建议先转成raw,调整完后再转回去,因为直接对qcow2做调整,比较35G的qcow2磁盘镜像文件可能只有1G大小(ls查看),
通过virt-resize调整后就会变成35G大小了(ls查看)(也可能是我的方法不对),先转成raw调整完大小后再转回去可以避免这个问题

libguestfs知识点的更多相关文章

  1. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(3)

    四.Nova-compute 步骤17:nova-compute接收到请求后,通过Resource Tracker将创建虚拟机所需要的资源声明占用 步骤18:调用Neutron API配置Networ ...

  2. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  3. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  4. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  5. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  6. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  7. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  8. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  9. HTML5知识点总结

    HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...

随机推荐

  1. 大话设计模式--建造者模式 Builder -- C++实现实例

    1. 建造者模式,将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 用户只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了. 关键类Directo ...

  2. jsp的9个内置对象

    Jsp提供了request.response.session.application.out.page.config.exception.pageContext9个内置对象. 1. Request R ...

  3. 简洁的支持展开关闭的tab标签代码

    简洁的支持展开关闭的tab标签代码,由huiyi8素材网提供. TAB标签代码下载:http://www.huiyi8.com/tab/

  4. struts2 框架 的环境搭建 与配置

    一,Struts2简介: 1,来由:Struts(金属支架),在程序中表示起支撑作用的通用程序代码,Struts2是在Struts1框架的基础上融合了WebWork优秀框架升级得到的. 2,解释:St ...

  5. javaScript-进阶篇(三)

    1.Window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 2.JavaScript 计时器 在JavaScript中,我们可以在设定的时间间隔 ...

  6. pandas 学习 —— pivot table

    0. DataFrame 的 index.columns.values >> df = pd.DataFrame(np.arange(6).reshape(3, 2), index=['o ...

  7. hdu 3537 Daizhenyang's Coin(博弈-翻硬币游戏)

    题意:每次可以翻动一个.二个或三个硬币.(Mock Turtles游戏) 初始编号从0开始. 当N==1时,硬币为:正,先手必胜,所以sg[0]=1. 当N==2时,硬币为:反正,先手必赢,先手操作后 ...

  8. Windows PCM音频捕获与播放实现

    在WINDOWS下,音频函数有多种类型,如MCI.多媒体OLE控制.高级音频等,使用方法都比较简单.但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的 ...

  9. HDOJ5044(最近公共祖先)

    #include<cstdio> #include<cstring> using namespace std; ; struct Edge{ int v,id,next; }e ...

  10. JVM插庄之二:Java agent基础原理

    javaagent 简介 Javaagent 只要作用在class被加载之前对其加载,插入我们需要添加的字节码. Javaagent面向的是我们java程序员,而且agent都是用java编写的,不需 ...