web-dev-qa-db-ja.com

qcow2イメージをより小さな実ドライブに抽出する

Qcow2イメージ(512ギガバイト、ほとんどは空き領域)を128ギガバイトのSSDに抽出するにはどうすればよいですか?その後、起動ドライブとして使用されます

1
Jackson Doak

大きなブロックデバイス(128 GiB_ SSD)に大きなイメージ(512 GiB_ディスクイメージ)を配置する前に、最初にイメージを縮小する必要があります。これを行うには、qcow2ファイルと共にインストールメディア(たとえば、ubuntu-14.04.2-desktop-AMD64.iso)から仮想マシンを起動します。次に、GPartedを使用して、画像を128 GiBより小さいサイズに縮小します。

最終的な画像サイズの決定に間違いはありません。以下を考慮する必要があります。

  • パーティション外の予約済みスペース。従来の「msdos」パーティションテーブルの場合、ディスクの先頭に512バイトのギャップがあります。最新のGPTパーティションスキームでは、ディスクの最初と最後にGPTテーブルが存在します。
  • スワップパーティション(ある場合)は、変更する前に無効にする必要があります。これはGPartedから実行できます。
  • 128 GiBはnot128 GBです。 128 GiB = 137.4 GBおよび128 GB = 119.2 GiB(1 GiB = 1024 ^ 3 = 1,073,741,824バイト、1 GB = 1000 ^ 3 = 1,000,000,000バイト) 。新しいサイズを計算するときは、この違いに注意してください!
  • サイズの選択を控えめにして、未使用のスペースを残しておくことをお勧めします。拡大は縮小するよりも簡単で、画像が大きくなりすぎる可能性が低くなります。
  • ディスクイメージは、コピー先ディスクとは別のディスクに存在する必要があります。
  • 不明な場合は、関連するツールのマニュアルページを参照してください。念のため、ソース画像のバックアップを作成してください!

ディスクイメージ内のパーティションを縮小した後、仮想マシンをシャットダウンし、ディスクイメージを縮小しますqemu-img resize your.qcow2 128G(128 GiB!)。不明な場合は、代わりに virt-resize(1) プログラムを使用することもできます。

ディスクイメージが縮小したら(qemu-img info your.qcow2で確認できます)、qcow2からrawディスクに変換します(未使用のSSDで/ dev/sdbを置き換えます)。

qemu-img convert -p -O raw your.qcow2 /dev/sdb

GPTパーティションテーブルの場合、 ディスクの最後にあるGPTテーブルを修復する が必要になる場合があります。

2
Lekensteyn