バックアップとクローン · 1 min read · Jan 05, 2026
VirtualBox: 実行中の仮想マシンのバックアップとクローンを作成する (ダウンタイムなし) LVMスナップショットを使用
VirtualBox: 実行中の仮想マシンのバックアップとクローンを作成する (ダウンタイムなし) LVMスナップショットを使用
Version 1.0
Author: Falko Timme
Follow me on Twitter
LVMボリュームを使用してVirtualBox VMを管理している場合 (チュートリアル「VirtualBox VMでのRAWデバイスの使用」に示されているように)、実行中のVMのバックアップやクローンをシャットダウンせずに作成できます。このチュートリアルでは、ダウンタイムなしで実行中のVirtualBox VMのバックアップとクローンを作成するためにLVMスナップショットを使用する方法を示します。
これがあなたにとって機能することを保証するものではありません!
1 前提条件
私はヘッドレスサーバーにVirtualBoxをインストールしたため、ここではphpvirtualboxをVirtualBox GUIとして使用しています。オリジナルのVirtualBox GUIを使用している場合も問題ありません。
バックアップを取りたい実行中の仮想マシンはvm10という名前で、LVMボリューム/dev/vg0/vm10にあります。
rootとしてログインしていることを確認してください (rootになるには
sudo suと入力します)。このチュートリアルのすべてのステップはrootユーザーとして実行する必要があります。
2 LVMスナップショットを使用して実行中のVMのバックアップを作成する
実行中の仮想マシンvm10のバックアップを作成するために、まず/dev/vg0/vm10のLVMスナップショットをvm10_snapという名前で作成します。スナップショットは元のボリュームよりも小さくすることができます - 512MBで十分かもしれませんが、ここでは5GBのサイズを使用します:
lvcreate -L5G -s -n vm10_snap /dev/vg0/vm10次に、ddを使用してスナップショットの内容を読み取り、gzipにパイプして、/backupディレクトリにgzippedバックアップイメージを作成します (もちろん、他のディレクトリを使用することもできます):
dd if=/dev/vg0/vm10_snap bs=64k | gzip -c > /backup/vm10.img.gzこれで完了です - vm10のバックアップは/backup/vm10.img.gzにあります。
次に、LVMスナップショットを削除します:
lvremove -f /dev/vg0/vm10_snap3 バックアップからの復元/バックアップからのクローン作成
復元とクローン作成は本質的に同じですので、先ほど作成したバックアップからvm11というクローンを作成する方法を示します。
まず、元のLVMボリュームと同じサイズのLVMボリュームを作成します (この例では20GB):
lvcreate -L20G -n vm11 vg0vm10のバックアップを新しい論理ボリューム/dev/vg0/vm11に復元します:
gunzip -c /backup/vm10.img.gz | dd of=/dev/vg0/vm11 bs=64k次に、/dev/vg0/vm11用の.vmdkファイルを作成します (例: vm11.vmdk)。これをVirtualBoxで使用できるようにします。VirtualBoxが実行されているユーザーのホームディレクトリに作成するのが最適です (例: phpvirtualboxを使用している場合は/home/vbox) - ファイルはそのユーザーが所有している必要があります:
cd /home/vbox
VBoxManage internalcommands createrawvmdk -filename vm11.vmdk -rawdisk /dev/vg0/vm11
chown vbox:vbox vm11.vmdk次に、VirtualBox GUI (オリジナルのVirtualBox GUIまたはphpvirtualbox)に移動し、「新規」をクリックします:

「新しい仮想マシンの作成」ウィザードで「次へ>>」をクリックします:

新しいVMの名前を指定し、元のVMで使用されているのと同じオペレーティングシステムとバージョンを選択します:

クローンのメモリを指定します:

「仮想ハードディスク」画面で「既存のハードディスクを使用」を選択し、「仮想ハードディスクファイルを選択」アイコンをクリックします:

vm11.vmdkファイルを選択し、「OK」をクリックします:

「次へ>>」をクリックします:

「作成」をクリックします:

クローンを開始する前に、いくつかの設定を調整することをお勧めします。たとえば、元のVMがブリッジ接続を使用している場合、クローンのネットワーク設定でもブリッジ接続を選択することをお勧めします:


「開始」をクリックしてクローンを起動します:

起動中に、ネットワーク設定がハングすることに気付くかもしれません:

これは、VirtualBoxがクローンに対してインターフェースeth0に異なるMACアドレスを割り当てたためですが、クローンの/etc/udev/rules.d/70-persistent-net.rulesファイルはまだ元のMACアドレスを使用しています。起動が完了したら、クローンにログインし、…
ifconfig…と入力すると、eth0が欠落していることがわかります (MACアドレスの問題のため)、つまりクローンはネットワークを使用できません:

この問題を修正するには、クローンの/etc/udev/rules.d/70-persistent-net.rulesを開きます…
vi /etc/udev/rules.d/70-persistent-net.rules…そしてeth0の行 (eth0のMACアドレスが間違っていたために起動中に追加されたeth1の行も) をコメントアウトします。これにより、次回の起動時にシステムが正しいMACアドレスを持つ新しいeth0行を追加することが保証されます。

クローンを再起動します。再起動後、ネットワークが機能するはずで、…
ifconfigの出力にeth0が表示されるはずです:

おめでとうございます。元のVMをシャットダウンせずにVMを正常にクローンしました。
4 リンク
- VirtualBox: http://www.virtualbox.org/
- phpvirtualbox: http://code.google.com/p/phpvirtualbox/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。