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. loj #6302. 「CodePlus 2018 3 月赛」寻找车位【线段树+单调队列】

    考虑静态怎么做:枚举右边界,然后枚举上边界,对应的下边界一定单调不降,单调栈维护每一列从当前枚举的右边界向左最长空位的长度,这样是O(nm)的 注意到n>=m,所以m<=2000,可以枚举 ...

  2. P5168 xtq玩魔塔

    传送门 其实就是板子--只要会克鲁斯卡尔重构树和带修莫队就可以了 这么想着的我就调了将近一个下午-- 思路其实比较清晰,然而码量很大,细节贼多-- 不难看出只在最小生成树上走最优,于是建出克鲁斯卡尔重 ...

  3. C/C++预处理

    C/C++编译系统编译程序的过程为预处理.编译.链接.预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序.预处理器指令以#号开头标识,末尾不包含分号.预处理命令不是C/C++语言 ...

  4. the little schemer 笔记(10.1)

    This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 China Mainla ...

  5. 树状数组 POJ 2481 Cows

    题目传送门 #include <cstdio> #include <cstring> #include <algorithm> using namespace st ...

  6. Windows下DVWA安装指南

    注意:DVWA需要依赖httpd.PHP.MySQL.php-mysql等应用或组件,最简单的方法是安装wampserver(http://www.wampserver.com/),安装完了所需的各种 ...

  7. Python Selenium设计模式 - PO设计模式

    整理一下python selenium自动化测试实践中使用较多的po设计模式. 为什么要用PO 基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务.只需要定位到元素 ...

  8. B. Connecting Universities DFS,无向树

    http://codeforces.com/problemset/problem/700/B 题意是,在一颗树中,有k个大学,要求两两匹配,他们之间的距离作为贡献,使得距离总和最大. 一开始的时候无从 ...

  9. Java学习笔记之log4j与commons-logging<转>

    Java学习笔记之log4j与commons-logging<转> (2011-02-16 11:10:46) 转载▼ 标签: 杂谈 分类: 技术学习之其他 Logger来自log4j自己 ...

  10. QQ面板拖拽(慕课网DOM事件探秘)(上)

    QQ面板拖拽,效果如图 JavaScript代码如下: function getByClass(clsName, parent) { var oParent = parent ? document.g ...