qemu-img命令详解

qemu-img是一个功能强大磁盘镜像管理工具。
qemu-img --help 包括以下功能:

  • check:检查完整性
  • create:创建镜像
  • commit:提交更改
  • compare:比较
  • convert:转换
  • info:获取信息
  • map:映射
  • snapshot:快照管理
  • rebase:在已有的的基础上创建新的镜像
  • resize:调整大小
  • amend:修订镜像格式选项

示例:

create创建磁盘:

[root@desktop example]# ls
[root@desktop example]# qemu-img create t1.img 1g    # 创建一个1G的磁盘文件
Formatting 't1.img', fmt=raw size=1073741824
[root@desktop example]# ls
t1.img
[root@desktop example]# qemu-img info t1.img         # 查看指定磁盘文件的信息
image: t1.img
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0
[root@desktop example]#

磁盘镜像qcow2格式选项:

  1. backing_file:指定后端镜像文件
  2. backing_fmt:设置后端镜像的镜像格式。
  3. cluster_size:设置镜像中的簇大小,取值在512到2M之间,默认值为64K。
  4. preallocation:设置镜像文件空间的预分配模式
  5. encryption:用于设置密码。

预分配策略:

  • off:缺省策略,即不使用预分配策略
  • metadata:分配元数据,预分配后的虚拟磁盘仍然属于稀疏映像类型
  • full:分配所有磁盘空间并置零,预分配后的虚拟磁盘属于非稀疏映像类型
  • falloc:分配文件的块并标示它们的状态的未初始化,相对full模式来说,创建虚拟磁盘的速度要快得多
# 每种预分配格式创建的磁盘镜像文件初始占用的磁盘空间 -f qcow2指定创建所使用的格式
[root@desktop example] qemu-img create -f qcow2 test1.qcow2 1g
[root@desktop example] qemu-img create -f qcow2 test2.qcow2 1g  -o preallocation=off
[root@desktop example] qemu-img create -f qcow2 test3.qcow2 1g  -o preallocation=metadata
[root@desktop example] qemu-img create -f qcow2 test4.qcow2 1g  -o preallocation=falloc
[root@desktop example] qemu-img create -f qcow2 test5.qcow2 1g  -o preallocation=full
[root@desktop example]# ls -lh
total 2.1G
-rw-r--r--. 1 root root 1.0G Mar 18 09:11 t1.img
-rw-r--r--. 1 root root 193K Mar 18 09:30 test1.qcow2
-rw-r--r--. 1 root root 193K Mar 18 09:32 test2.qcow2
-rw-r--r--. 1 root root 1.1G Mar 18 09:32 test3.qcow2
-rw-r--r--. 1 root root 1.1G Mar 18 10:01 test4.qcow2
-rw-r--r--. 1 root root 1.1G Mar 18 10:01 test5.qcow2
[root@desktop example]# du -h *
0       t1.img
196K    test1.qcow2
196K    test2.qcow2
516K    test3.qcow2
1.1G    test4.qcow2
1.1G    test5.qcow2
[root@desktop example]#

backing_file指定后端镜像盘:指定后端镜像盘来创建新的镜像盘 

  • -f指定创建的磁盘镜像文件格式
  • backing_file指定所用的后端磁盘镜像文件
[root@desktop example]# qemu-img create -f qcow2 -o backing_file=test3.qcow2 new_disk.qcow2
Formatting 'new_disk.qcow2', fmt=qcow2 size=1073741824 backing_file='test3.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@desktop example]# qemu-img info new_disk.qcow2
image: new_disk.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
backing file: test3.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false


虚拟磁盘格式转换,把raw格式的镜像文件转成qcow2的磁盘镜像文件

  • -O 指定输出格式
[root@desktop example]# qemu-img convert -O qcow2 t1.img t1.qcow2
[root@desktop example]# qemu-img info t1.qcow2
image: t1.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@desktop example]#


调整虚拟磁盘大小:
语法格式:resize filename [+|-] size
操作之前,一定要做好数据备份
增加文件大小后,需要在客户机使用fdisk,parted等分区工具进行相应的操作才能真正让客户机使用到增加后的镜像空间。
缩小镜像之前,要在客户机中保证里面的文件系统有空余空间,否则会数据丢失。
qcow2不支持缩小镜像的操作。

[root@desktop example]# qemu-img info test5.qcow2
image: test5.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 1.0G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@desktop example]# qemu-img resize test5.qcow2 +2G
Image resized.
[root@desktop example]# qemu-img info test5.qcow2
image: test5.qcow2
file format: qcow2
virtual size: 3.0G (3221225472 bytes)
disk size: 1.0G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
qemu-img rebase命令用于将虚拟磁盘镜像的基础(base)更改为另一个镜像文件。这个命令通常用于管理虚拟机快照,可以将虚拟机快照合并到基础镜像中,也可以将基础镜像更改为其他镜像文件。 以下是qemu-img rebase命令的详细用法: ``` qemu-img rebase [-f fmt] [-p] [-u] [-b backing_file] [-F backing_fmt] [-t cache] [-T src_cache] [-c] [-S] [-s snapshot_name] [-m snapshot_file] [-U] [-d] [-n] [-w] [-o options] filename ``` 参数说明: - -f fmt:指定输入镜像文件格式,默认为qcow2。 - -p:打印基础镜像文件名。 - -u:卸载原始镜像的快照。 - -b backing_file:指定新的基础镜像文件。 - -F backing_fmt:指定新的基础镜像文件格式。 - -t cache:指定缓存类型。 - -T src_cache:指定源缓存类型。 - -c:只复制基础镜像文件的元数据。 - -S:将快照合并到基础镜像中。 - -s snapshot_name:指定要重定向的快照名称。 - -m snapshot_file:指定要重定向的快照文件。 - -U:强制卸载快照。 - -d:删除指定快照。 - -n:不执行完全复制,使用磁盘快照来创建新的虚拟机镜像。 - -w:忽略镜像文件的写保护属性。 - -o options:指定选项。 使用示例: 1. 将基础镜像更改为另一个镜像文件 ``` qemu-img rebase -b new_base_image.qcow2 old_image.qcow2 ``` 这个命令将old_image.qcow2的基础镜像更改为new_base_image.qcow2。 2. 将快照合并到基础镜像中 ``` qemu-img rebase -S old_image.qcow2 ``` 这个命令将old_image.qcow2中的所有快照合并到基础镜像中。 3. 删除指定的快照 ``` qemu-img rebase -d snapshot_name old_image.qcow2 ``` 这个命令将从old_image.qcow2中删除名为snapshot_name的快照。 总之,qemu-img rebase命令是非常有用的虚拟磁盘管理工具,可以方便地管理虚拟机快照。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值