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. 超完整的Chrome浏览器客户端调试大全

    引言 “工欲善其事,必先利其器” 没错,这句话个人觉得说的特别有道理,举个例子来说吧,厉害的化妆师都有一套非常专业的刷子,散粉刷负责定妆,眼影刷负责打眼影,各司其职,有了专业的工具才能干专业的事,这个 ...

  2. 如何让Android微博个人详情页滚动到顶部

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/103 个人详情页滑动到顶部 最近产品提了个新需求,需要实现 ...

  3. mycat启动报错UnknownHostException(Temporary failure in name resolution)解决方法

    重启命令 ./mycat restart 查看日志 cd logs tail -f wrapper.log 报错信息 INFO | jvm 2 | 2018/05/09 11:28:28 | Erro ...

  4. 跟我一起玩Win32开发(1):关于C++的几个要点

    我不知道各位,一提起C++,第一感觉是什么?而据俺的观察,许多人几乎成了“谈C色变”.不管是C还是C++,一直以来都被很多人视为相当难学的玩意儿,幸好只是一个C++,没有C--,C**和C//,不然, ...

  5. UOJ #35 后缀排序 哈希做法

    题面 http://uoj.ac/problem/35 题解 后缀数组当然可以 这里用哈希做 首先排序的问题在哪里 在于比较两个后缀的复杂度是O(length)的 但是我们可以通过找LCP来优化比较 ...

  6. 将php数组传递到js—json_encode(),json_decode()

    json_decode(),对一个json字符串进行解码,json_encode()是生成一个json字符串 上面的解释很清楚了,关于php里数组赋值的问题,列举如下: <?php //对象 c ...

  7. c#内存管理,垃圾回收和资源释放

    <1>关于虚拟内存的概念 Windows使用一个虚拟寻址系统,该系统把程序可用的内存地址映射到硬件内存中的实际地址上去,这些任务完全由windows后台管理,其实际结果是32位处理机上的每 ...

  8. 【转】java编程思想第20章的注解例子用到的com.sun.mirror的jar包

    Java編程思想>中的注解代码中引入过这么一个包(com.sun.mirror),书上说的是在Jdk中有个tools.jar中,引入这个包就每这个问题了,但是笔者用的是JDK 1.8,把这个包i ...

  9. Mac上安装Homebrew和wget

    实际上是使用Homebrew来安装wget 安装Homebrew Homebrew一般称为brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常 ...

  10. 2015Java参赛邀请函

    [导读]甲骨文公司值Java语言发布20周年之际,携手全国高等级学校计算机教育研究会.教育部高等学校计算机类专业教学指导委员会,共同举办了2015年“甲骨文杯”全国Java程序设计大赛,为二百万名中国 ...