実行中の仮想マシンのディスクを複製し、VirtualBoxで実行します。

実行中の仮想マシンのディスクを複製し、VirtualBoxで実行します。

私は次のような状況にあります。

SSH経由で実行されているCentOS仮想マシンのディスク(sda、sdb)を「複製」する必要があります(次の手順に従ってこれを実行しました)。このガイド)VirtualBoxと同じ場所に配布してください。

試してみましたが、残念ながらsdaとsdbの生イメージを取得し、VBoxManageを使用してVHDに変換した後、それを新しいVMに追加し、起動時に「ブータブルメディアなし」というメッセージが表示されました。

コメントありますか?

自動回復のためにCentOS Live CDを試しましたが、回復可能なディスクが見つかりませんでした。また、情報を取得するためにfdiskを試してみましたが、残念ながらパーティションを読み取ることができないようです。

助けてくれてありがとう!

答え1

ネットワークアクセスを介してLive CDから起動できる場合は、次のことができます。

  1. VirtualBox VMで実行されているLive CDからルートシェルをインポートする

  2. 必要に応じて仮想ディスクを分割してフォーマットします。 LVMツールがLive CDにある場合は、LVMを使用することもできます。

  3. 走るmkdir -p /target

  4. /targetに目的のrootfsをマウントし、マウントポイント(/target/home、/target/varなど)のディレクトリを作成し、適切なパーティションをマウントします。

  5. cd /target

  6. rsync -a --exclude proc/** --exclude sys/** --exclude dev/** root@remoteVM:/ ./

(rsyncコマンドには微調整が必​​要な場合があります。--dry-run適切になるまでオプションを使用して実行してください)

  1. for i in dev dev/pts proc sys ; do mount -o bind /$i /target/$i ; done

  2. chroot /target

  3. /etc/fstab/etc/default/grub必要に応じて新しいシステムに合わせて編集します。

  4. update-grub

  5. exit

  6. /target およびその下のすべての項目をマウント解除します (上記のバインドマウントを含む)。

  7. 再起動。

または、をrsync使用してtarリモート仮想マシンのファイルシステムをバックアップし、Live CDから入手できる場所にtar.gzファイルを配置することもできます。バックアップから/proc、/dev、および/sysディレクトリを除外します。

注:mysql、postgres、またはdbファイルまたは他のプレーンテキストファイルに書き込むすべてのものを実行している場合は、rsyncデータベースバックアップを実行する必要があります。すべてのデータベースをテキストにダンプするのも良い考えです。

rsync中にプレーンテキストファイル(ログファイルなど)に書き込むことは、rsyncを実行した後に発生したログエントリを失っても大丈夫であればそれほど危険ではありません。少なくともファイルが破損する可能性はありません。 。

systemdのログはバイナリです。したがって、systemdを実行している場合は、破損を防ぐためにログをオフにする必要があります。システムをシャットダウンせずにこれが可能かどうかわかりません。

関連情報