3.4. イメージの固定 VHD 形式への変換

すべての Microsoft Azure 仮想マシンイメージは、固定 VHD 形式である必要があります。イメージは、VHD に変換する前に 1 MB の境界で調整する必要があります。イメージを qcow2 から固定 VHD 形式に変換し、イメージを整列するには、次の手順を参照してください。イメージを変換したら、Azure にアップロードできます。

手順

  1. イメージを qcow2 形式から raw 形式に変換します。

    $ qemu-img convert -f qcow2 -O raw <image-name>.qcow2 <image-name>.raw
  2. 以下の内容でシェルスクリプトを作成します。

    #!/bin/bash
    MB=$((1024 * 1024))
    size=$(qemu-img info -f raw --output json "$1" | gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1) * $MB))
    if [ $(($size % $MB)) -eq  0 ]
    then
     echo "Your image is already aligned. You do not need to resize."
     exit 1
    fi
    echo "rounded size = $rounded_size"
    export rounded_size
  3. スクリプトを実行します。この例では align.sh という名前を使用します。

    $ sh align.sh <image-xxx>.raw
    • Your image is already aligned. You do not need to resize. (イメージはすでに整列しています。サイズを変更する必要はありません。)と表示されたら、次の手順に進みます。
    • 値が表示されると、イメージは調整されません。
  4. 次のコマンドを使用して、ファイルを固定 VHD 形式に変換します。

    サンプルでは qemu-img バージョン 2.12.0 を使用します。

    $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image-xxx>.raw <image.xxx>.vhd

    変換されると、VHD ファイルは Azure にアップロードする準備が整います。

  5. raw イメージが整列していない場合は、以下の手順で整列させてください。

    1. 検証スクリプトの実行時に表示される丸め値を使用して、raw ファイルのサイズを変更します。

      $ qemu-img resize -f raw <image-xxx>.raw <rounded-value>
    2. raw イメージファイルを VHD 形式に変換します。

      サンプルでは qemu-img バージョン 2.12.0 を使用します。

      $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image-xxx>.raw <image.xxx>.vhd

      変換されると、VHD ファイルは Azure にアップロードする準備が整います。