qemu-img command [command options]

Command:

check [-f fmt] filename                       # 对磁盘镜像文件进行一致性检查,查找镜像文件中的错误

# 目前仅支持对"qcow2 "、"qed"、"vdi"格式文件的检查 
# 参数-f fmt是指定文件的格式,如果不指定格式,qemu-img会自动检测。
# filename是磁盘镜像文件的名称(包括路径)

qcow2是QEMU 0.8.3版本引入的镜像文件格式,也是目前使用最广泛的格式。
qed(QEMU enhance disk)是从QEMU 0.14版开始加入的增强磁盘文件格式,避免了qcow2格式的一些缺点,也提高了性能,不过目前还不够成熟。
vdi( Virtual Disk Image)是Oracle的Virtual Box虚拟机中的存储格式。

create [-f fmt] [-o options ] filename [size]                  #创建一个格式为fmt , 大小为size, 文件名为filename 的镜像文件

注意:
1、使用-f指定不同的硬盘格式(qcow、qed、vid),-o选项支持的选项也不同可以添加一个或多个选项(options)来附加对该文件的各种功能设置

2、可以使用"-o ?"来查询某种格式文件支持哪些选项,在"-o" 选项中各个选项用逗号来分隔。

3、如果在"-o"选项中使用了backing_file这个选项来指定其后端基础镜像文件,那么这个创建的镜像文件仅记录与后端镜像文件的差异部分

4、后端镜像文件不会被修改,除非在QEMU monitor中使用"commit"命令或使用"qemu-img commit"命令去手动提交这些改动

5、这种情况下,size参数不是必须需的,其值默认为后端镜像文件的大小。

6、另外,直接使用"-b backfile"参数也与"-o backing_file=backfile"效果相同!!!!

7、size选项用于像文件的大小,其默认单位是字节(bytes), 也可以支持k (即K )、M、G、T来分别表示KB 、MB 、GB 、TB 大小。

8、另外,镜像文件的大小(size)也并非必须写在命令的最后,也可以写在"-o" 选项中作为其中一个选项

使用示例:
不使用基础镜像:
qemu-img create -f qcow2 /application/kvm_data/cs-00.qcow2 10G

使用基础镜像(基础镜像必须事先存在):
qemu-img -f qcow2    -b /application/kvm_data/cs-00.qcow2    /application/kvm_data/cs-01.qcow2   #未指定size,使用基础镜像的size

qumu-img -f qcow2  -o backing_file='/application/kvm_data/cs-00.qcow2'   /application/kvm_data/cs-01.qcow2

使用-o选项指定基础镜像,同时指定size
qumu-img -f qcow2  -o backing_file='/application/kvm_data/cs-00.qcow2',size=15G   /application/kvm_data/cs-01.qcow2

commit [-f fmt] filename          #提交filename文件中的更改到后端支持镜像文件(创建时通过-o选项的backing_file参数指定的基础镜像或使用-b选项指定的基础镜像)中。
                   #最好不要这样操作,因为这样会更改基础镜像,除非要更改基础镜像

convert  [-c]   [-f fmt1]  [-O fmt2]   [-o options] filename [filename2 […]]     output_filename
#根据-o指定的选项,将格式为fmt1的名称为filename镜像文件    转换为    格式为fmt2的名称为output_filename的镜像

一般来说:

输入文件格式fmt1由qemu-img工具自动检测到(可以不使用-f指定),
输出文件格式fmt2根据自己需要来指定,默认会被转换为raw文件格式(且默认使用稀疏文件的方式存储以节省存储空间)

"-c "        #表示对输出的镜像文件进行压缩,只有qcow2和qcow格式的镜像文件才支持压缩,
        #并且这种压缩是只读的,如果压缩的扇区被重写,则会被重写为未压缩的数据

-f          #指定输入镜像文件的格式 ,可省略,指令能够自动检测
-O          #指定输出镜像文件的格式,如果省略,则使用默认的raw,若转换成其它格式必须明确指定

"-o options"        #和create中的-o选项相同,指定各种选项,如后端镜像、文件大小、是否加密等等。
-o支持的选项:

backing_file      用于指定后端镜像文件。

backing_fmt       设置后端镜像的镜像格式。

cluster_size       设置镜像中簇的大小,取值在512B到2MB之间,默认值为64KB。
          较小的簇可以节省镜像文件的空间,而较大的簇可以带来更好的性能,需要根据实际情况来平衡,一般采用默认值即可。

preallocation    设置镜像文件空间的预分配模式,其值可为"off"、"metadata" 之一:

        "off"模式是默认值,设置了不为镜像文件预分配磁盘空间。
        "metadata" 模式用于设置为镜像文件预分配metadata的磁盘空间,所以这种方式生成的镜像文件稍大一点,不过在其真正分配空间写入数据时效率更高。

另外,一些版本的qemu-img (如RHEL6.3 自带的)还支持"full"模式的预分配,它表示在物理上预分配全部的磁盘空间,它将整个镜像的空间都填充零以占用空间,当然它所花费的时间较长,不过使用时性能更好。

encryption       用于设置加密, 当它等于"on"时,镜像被加密。

        它使用128位密钥的ASE加密算法,故其密码长度可达16个字符(每个字符8位),可以保证加密的安全性较高。
        在将"qemu-img convert"命令转化为qcow2格式时,加上"-o encryption",即可对镜像文件设置密码,
        而在使用镜像启动客户机时需要在QEMU monitor中输入"cont"或"c"(是continue的意思)
        命令来唤醒客户机输入密码后继续执行(否则客户机将不会真正启动)。

示例:
#将VMware的vmdk格式镜像转换为KVM可以使用的raw格式的镜像
qernu-img convert    my-vmware.vrndk    my-kvm.img

#将一个raw镜像文件转化为qcow2格式的镜像
qemu-img  convert -O qcow2 rhel6u3.img rhel6u3-a.qcow2

info    [-f fmt]   filename          #展示filename镜像文件的信息
                    #如果文件使用的是稀疏文件的存储方式,也会显示出它本来分配的大小及实际已占用的磁盘空间大小
                    #如果文件中存放有客户机快照,快照的信息也会被显示出来

snapshot [-l | -a snapshot | -c snapshot | -d snapshot]     filename
"-l"                #选项表示查询并列出镜像文件中的所有快照,
"-a snapshot"              #表示让镜像文件使用某个快照,
"-c snapshot"             #表示创建一个快照,
"-d snapshot"             #表示删除—个快照

rebase    [-f fmt]     [-t cache]    [-p]    [-u]     -b backing_file [-F backingfmt]   filename        #改变镜像文件的后端基础镜像文件,只有qcow2和qed格式的镜像支持rebase命令!!!!

"-b backing_file"         指定后端镜像文件
"-F backingfmt"          原后端镜像也被转化为这里指定的后端镜像格式
-u                使用非安全模式
-p                显示命令的执行过程

这个命令可以工作于两种模式之下:
一种是安全模式(Safe Mode),这是默认的模式,qemu-img会根据比较原来的后端镜像与现在的后端镜像的不同进行合理的处理;

一种是非安全模式(Unsafe Mode),是通过"-u"参数来指定的,这种模式主要用于将后端镜像重命名或移动位置后对前端镜像文件的修复处理,由用户去保证后端镜像的一致性

 

resize     filename    [+ | -]size        #改变镜像文件的大小,使其不同于创建之时的大小。"+"和"-"分别表示增加和减少镜像文件的大小,size 也支待K 、M 、G 、T 等单位的使用

                     qcow2格式文件不支持缩小镜像的操作!!!!

                     增加了镜像文件大小后,也需启动客户机在其中应用"fdisk"、"parted"、“resize”等分区工具进行相应的操作才能真正让客户机使用到增加后的镜像空间

示例:
如下命令行演示了两个镜像的大小改变:
将一个8GB 的qcow2 镜像增加2GB 的空间,
qemu-img resize rhel6u3-a.img +2G

将一个8GB 大小的raw 镜像减少1GB 空间。
qemu-img resize rhel6u3-b.img -1G

qemu-img————QEMU的磁盘管理工具的更多相关文章

  1. 虚拟化技术之kvm磁盘管理工具qemu-img

    在前边的博客中,我们大致了解了virsh这个工具对kvm虚拟机的一些操作,回顾请参考https://www.cnblogs.com/qiuhom-1874/tag/virsh/:今天我们来了解下kvm ...

  2. libguestfs-tools 虚拟机磁盘管理工具

    libguestfs-tools虚拟机磁盘管理工具: 官网:http://libguestfs.org/ 这是一个非常强大的虚拟机磁盘管理工具,该工具包内包含的工具有virt-cat.virt-df. ...

  3. 一款功能强悍的web磁盘管理工具 (A powerful web disk management tools)

    https://github.com/kingAnyWHere/web-ftp web-ftp 一款功能强悍的web磁盘管理工具 (A powerful web disk management too ...

  4. 用Win7自带的磁盘管理工具给硬盘分区

    最近新买了一台笔记本,要给硬盘分几个区,心想还是用个工具方便点,于是就上网准备下个“硬盘分区魔术师”,但是看到有一篇文章介绍Win7系统也自带了硬盘分区工具,这我以前倒没听说过,试了一下,还挺方便好用 ...

  5. KVM之磁盘管理工具qemu-img小结

    基本语法: qemu-img command [command options] 主要参数: info : 查看镜像的信息: create: 创建镜像: check: 检查镜像: convert: 转 ...

  6. Linux磁盘概念及其管理工具fdisk

    Linux磁盘概念及其管理工具fdisk [日期:2016-08-27] 来源:Linux社区  作者:chawan [字体:大 中 小]   引言:冯诺依曼体系中的数据存储器就是我们常说的磁盘或硬盘 ...

  7. Linux学习总结(七)-磁盘管理 du df fdisk

    一 命令df df,即disk free,可用来查看当前系统的挂载情况,也可以用来查看整体磁盘的使用情况df 不带参数,默认以KB单位显示df -i -----查看inodes 使用情况,要清楚理解i ...

  8. Linux磁盘管理——MBR 与 GPT

    硬件设备在Linux中文件名 如今IDE 磁盘几乎被淘汰,市面上最常见的磁盘就是SATA和SAS.个人计算机主要是SATA.很多Linux发行版下都将IDE磁盘文件名也都被仿真成 /dev/sd[a- ...

  9. QEMU简单知识 以及磁盘格式转换的简单命令

    From 百度百科 QEMU,是由 Fabrice Bellard开发的通用.开源机器模拟与虚拟化软件,Fabrice Bellard是另一个著名的C编译器的作者.QEMU可以在不同的机器上运行独自开 ...

随机推荐

  1. hdu1085 Holding Bin-Laden Captive!【生成函数】

    列出生成函数的多项式之后暴力乘即可 #include<iostream> #include<cstdio> #include<cstring> using name ...

  2. bzoj1257[CQOI2007]余数之和(除法分块)

    1257: [CQOI2007]余数之和 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 6117  Solved: 2949[Submit][Statu ...

  3. bzoj3195: [Jxoi2012]奇怪的道路(状压dp)

    Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有n座城市,编号为1..n.m条道路连接在这些城市之间,每 ...

  4. P1211 街道赛跑

    又是一下午的杠题,累啊~~~ 这道题第一问很简单,只需去掉一个点,判断能不能到达终点就行了: 第二问其实仔细想想也不难,就是判断去掉一个点后是否形成两个图:首先要知道是建立在第一问的基础上的:在加边的 ...

  5. 密码(Password)

    #include<cstdio> #include<cstring> using namespace std; int k, cnt; ][][], ans[]; bool d ...

  6. 关于long long int和__int64用%I64d和%lld输出在不同编译语言下的正确性

    http://blog.csdn.net/febr2/article/details/52068357 这个网址最下面

  7. Python文件将日志文件中每天的日志拿出来

    file_log.txt文件内容如下: with open('file_log.txt', 'r', encoding='utf-8') as f: for i in f: s = i.split() ...

  8. UVA - 1349 D - Optimal Bus Route Design

    4. D - Optimal Bus Route Design 题意:给出n(n<=100)个点的带权有向图,找出若干个有向圈,每个点恰好属于一个有向圈.要求权和尽量小. 注意即使(u,v)和( ...

  9. 喵哈哈村的魔法考试 Round #3 (Div.2) ABCDE

    官方题解:http://www.cnblogs.com/qscqesze/p/6480284.html 哗啦啦村的刁难(1) 描述 哗啦啦村作为喵哈哈村的对头,于是他们准备给喵哈哈村一个好看. 哗啦啦 ...

  10. python programming

    1. super 2. *args, **kwargs 3. class object 4. type 5. isinstance 6. list[:] = another_list