# 准备虚拟机镜像<a name="ZH-CN_TOPIC_0183148730"></a>

## 概述<a name="section9430194412510"></a>

虚拟机镜像是一个文件，包含了已经完成安装并且可启动操作系统的虚拟磁盘。虚拟机镜像具有不同格式，常见的有raw格式和qcow2格式。qcow2格式镜像相比raw格式，具有占用更小的空间，支持快照、Copy-On-Write、AES加密、zlib压缩等特性，但性能略逊于raw格式镜像。镜像文件的制作借助于qemu-img工具，本节以qcow2格式镜像文件为例，介绍虚拟机镜像制作过程。

## 制作镜像<a name="section48321731182310"></a>

制作qcow2格式镜像文件的操作步骤如下：

1.  安装qemu-img软件包。

    ```
    # yum install -y qemu-img
    ```

2.  使用qemu-img工具的create命令，创建镜像文件，命令格式为：

    ```
    $ qemu-img create -f <imgFormat> -o <fileOption> <fileName> <diskSize>
    ```

    其中，各参数含义如下：

    -   _imgFormat_：镜像格式，取值为raw, qcow2等。
    -   _fileOption_：文件选项，用于设置镜像文件的特性，如指定后端镜像文件，压缩，加密等特性。
    -   _f__ileName_：文件名称。
    -   _diskSize_：磁盘大小，用于指定块磁盘设备的大小，支持的单位有K、M、G、T，分别代表KiB、MiB、GiB、TiB。

    例如，创建一个磁盘设备大小为4GB、格式为qcow2的镜像文件openEuler-imge.qcow2，命令和回显如下：

    ```
    $ qemu-img create -f qcow2 openEuler-image.qcow2 4G
    Formatting 'openEuler-image.qcow2', fmt=qcow2 size=4294967296 cluster_size=65536 lazy_refcounts=off refcount_bits=16
    ```


## 修改镜像磁盘空间大小<a name="section195364915292"></a>

当虚拟机需要更大的磁盘空间时，可以使用qemu-img工具，修改虚拟机镜像磁盘空间的大小，修改方法如下。

1.  查询当前虚拟机镜像磁盘空间大小，命令如下：

    ```
    # qemu-img info <imgFiLeName>
    ```

    例如，查询openEuler-image.qcow2镜像磁盘空间大小的命令和回显如下，说明该镜像磁盘空间大小为4GiB。

    ```
    # qemu-img info openEuler-image.qcow2 
    image: openEuler-image.qcow2
    file format: qcow2
    virtual size: 4.0G (4294967296 bytes)
    disk size: 196K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    ```

2.  修改镜像磁盘空间大小，命令如下，其中_imgFiLeName_为镜像名称，“+”和“-”分别表示需要增加或减小的镜像磁盘空间大小，单位为K、M、G、T，代表KiB、MiB、GiB、TiB。

    ```
    # qemu-img resize <imgFiLeName> [+|-]<size>
    ```

    例如，将上述openEuler-image.qcow2镜像磁盘空间大小扩展到24GiB，即在原来4GiB基础上增加20GiB，命令和回显如下：

    ```
    # qemu-img resize openEuler-image.qcow2 +20G
    Image resized.
    ```

3.  查询修改后的镜像磁盘空间大小，确认是否修改成功，命令如下：

    ```
    # qemu-img info <imgFiLeName>
    ```

    例如，上述openEuler-image.qcow2镜像磁盘空间已扩展到24GiB，命令和回显如下：

    ```
    # qemu-img info openEuler-image.qcow2 
    image: openEuler-image.qcow2
    file format: qcow2
    virtual size: 24G (25769803776 bytes)
    disk size: 200K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    ```


