libguestfs知识点
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知识点的更多相关文章
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(3)
四.Nova-compute 步骤17:nova-compute接收到请求后,通过Resource Tracker将创建虚拟机所需要的资源声明占用 步骤18:调用Neutron API配置Networ ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- ASP.NET MVC开发:Web项目开发必备知识点
最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...
- UWP开发必备以及常用知识点总结
一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...
- C#高级知识点&(ABP框架理论学习高级篇)——白金版
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...
- lucene 基础知识点
部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...
- DoraCMS 源码知识点备注
项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...
- atitit 商业项目常用模块技术知识点 v3 qc29
atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...
- HTML5知识点总结
HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...
随机推荐
- django 实现分页功能
分页效果: 视图代码: # -*- coding: utf-8 -*- from django.shortcuts import render,get_object_or_404 from djang ...
- JS获取ListBox所有项
JS代码: var listbox = document.getElementById("<%=lbCustom.ClientID %>"); var values = ...
- 分享知识-快乐自己:java代码 操作 solr
POM 文件: <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> < ...
- 分享知识-快乐自己:快速理解(Java内部类)
1):成员内部类 什么是内部类?: 内部类就是在一个类中定义另一个类. 定义语法: 使用命令行查看编译 产生的文件: 如何生成内部类对象? 创建规则:内部类对象 需要先声明外部类对象. 内部类以及外部 ...
- python习题-用交集方式产生随机密码
# 1.写一个产生密码的程序,# 输入次数,输入多少次就产生多少条数据,# 要求密码必须包含大写字母.小写字母和数字,长度8位,不能重复 import string ,random num=input ...
- sphinx:python项目文档自动生成
Sphinx: 发音: DJ音标发音: [sfiŋks] KK音标发音: [sfɪŋks] 单词本身释义: an ancient imaginary creature with a lion's bo ...
- 基于DirectShow和FFmpeg的USB摄像头监控软件-转
第一个版本 ### 软件版本及实现功能 0.0.1 1. USB摄像头枚举和设备信息获取2. 实时视频观看3. 24小时不间断录像,录像文件支持暴风影音播放 ### 软件说明: 软件基于 Direct ...
- P2P流媒体开源项目介绍
P2P流媒体开源项目介绍1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据.节 ...
- 【C&C++】查看代码运行时间
查看代码运行时间有助于更好地优化项目代码 1. Windows平台 windows平台下有两种方式,精度有所不同,都需要包含<windows.h>头文件 1) DWORD GetTickC ...
- 通过Jquery异步获取股票实时数据
最近朋友让我帮他做个异步获取数据的程序,暂时服务器什么都没有,所以我就想先拿股票数据打个框架,方便后续开发和移植等事情 代码如下: <!-- 说明:股票看盘 作者:黑桃A 时间:2014-04- ...