私はqemuイメージを持っていますB.qcow2
。A.qcow2
byB.qcow2
を使用してコピーを作成し、2つのコピーをcp B.qcow2 C.qcow2
独立して作業しました。したがって、とendは異なりますが、共通部分があります(C.qcow2がB.qcow2からコピーされたため)。B.qcow2
C.qcow2
B.qcow2
C.qcow2
common.qcow2
ディスクスペースを節約するために(qemu-imgを使用するか、プログラム的に)すべての共通部分を含む別のイメージを作成し、この共通B.qcow2
部分C.qcow2
を削除して次のイメージからリセットできるかどうかを知りたいです。画像の基盤はどのように基盤を置いており、基盤を置いているのか?B.qcow2
C.qcow2
B.qcow2
C.qcow2
common.qcow2
common.qcow2
A.qcow2
ベストアンサー1
秘密は、基本イメージと違いを含む2つのイメージを持つことです。これは次のことで達成できます。
- 混乱を避けるには:
mv B.qcow2 common.qcow2
- Aに基づく一般的なリベース:
qemu-img rebase -b common.qcow2 A.qcow2
- 共通に基づいてBを再生成します。
git create -b common B.qcow2
- Cサイジングの共通点:
qemu-img rebase -b common.qcow2 C.qcow2
もちろん、B.qcow2は共通に比べて変更がない「空のシェル」であり、CにはAとBの間のすべての変更が含まれていますが、2つのファイルのいずれかが重要ではないと仮定すると、より多くのスペースを節約する方法がありますありません。変更が含まれており、他のソリューションと同じくらい良いです。