Ubuntu 26.04 講座 / スナップショットで復元する方法とVM複製時の注意点

スナップショットは、VMの特定の時点の状態に戻るための機能であり、独立バックアップの代わりにはなりません。クローンは別のVMを作成する作業ですが、内部アカウント・ホストキー・マシン識別子まで新たに作成されると考えてはいけません。

復元前に保存する資料を区別する

スナップショット以降に作成したファイルや設定は復元過程で消える可能性があります。ホスト共有フォルダ・外部DB・ネットワークストレージの資料はゲストスナップショットとは別扱いです。復元前に残すべき原稿やログをVMの外にコピーし、コピーを実際に開いて確認します。

最初はVMを正常にシャットダウンした状態で基準スナップショットを作ります。メモリ状態を含む稼働中のスナップショットとシャットダウン状態のディスク基準点では復元特性が異なります。名前にはclean-installのように意味を書き、日付・確認した状態・復元理由を別途残します。

確認用ファイルで復元を試す

  1. VMを正常にシャットダウンし、VirtualBoxのスナップショット画面で基準点を作ります。
  2. 起動して以下の練習ファイルを作成し、内容を確認します。重要な元のパスでは実行しません。
  3. VMを再び正常にシャットダウンし、基準スナップショットを復元します。現在の状態を別途保存するかどうかの選択も読み、決定します。
  4. 起動後、練習ファイルの有無、アカウントのログイン、アドレスと必要なサービスの状態を確認します。

snapshot-labがすでにある場合は別のディレクトリ名を使い、既存の確認ファイルを上書きしないでください。

mkdir -p "$HOME/snapshot-lab"
printf 'after-snapshot\n' > "$HOME/snapshot-lab/marker.txt"
cat "$HOME/snapshot-lab/marker.txt"

基準点にファイルがなかった場合は復元後にファイルがないことが予想される結果です。ファイルが残っている場合は、共有フォルダーかどうか、基準点をファイル作成後に作ったのではないかを確認します。スナップショット以降に作成した練習ファイルが消えたからといって、重要なデータの復元まで検証したとは記録しません。

VirtualBoxのVM管理の文書はスナップショット・クローン・エクスポートの保存範囲について説明しています。

クローンVMはまず隔離して起動する

元のVMとクローンVMを同時に接続する前に、クローンVMのネットワークを切るか隔離された練習網にします。固定IP・同じホスト名・DHCP識別子・共有パスが重複すると、実際のデバイスと誤認したり、アドレス衝突が発生する可能性があります。仮想NICのMACアドレスを新しく作成するオプションも確認します。

hostnamectl
ip -br address
cat /etc/machine-id
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

上記の情報は、複製後に照合する項目です。マシンIDやSSHホストキーが同じでも、すぐに起動が失敗するとは限りませんが、それらの値を使う仕組みでは、別々のサーバーとして正しく区別できなくなります。値や内部アドレスを含む記録は公開しないでください。元のキーを消すことや、複製でのみ行う初期化を両方に適用しないでください。

一般的な複製と配布用テンプレートの区別

一回限りの比較実習であれば、アドレスやホスト名を区別した隔離VMとして使用できます。独立サーバーとして配布する場合は、OpenSSHホストキー・machine-id・cloud-init初期状態・アカウント秘密・固定ネットワーク設定の初期化計画を別途立てます。ファイル一つを無条件で消す万能コマンドは、テンプレート環境ごとに結果が異なる場合があります。

復元・複製後は、日付、ログイン、ネットワーク、マウント、サービスの応答を確認します。外部で保管したVMバックアップを実際に再取得して起動できるかも別途実習で確認してください。元のディスクやスナップショットファイルの一部を勝手に移動や削除はしないでください。