クラウドやサーバーの仮想化が一般的になった現在、物理サーバーから仮想サーバーへ移行したいという方も多いかと思います。
そんな時はLinuxを用いることで簡単に仮想化ができます。
仮想化したいストレージがあるマシンをUSBやLiveCDを使って外部からLinuxを起動します。
Gpartedなどを使って、コピー対象のデバイスファイル(/dev/sdXのような記号)を確認します。
UbuntuのLiveCDを起動した場合で、他に外部の記憶領域を一切接続していない場合、大抵内装ディスクは”/dev/sda”として認識されますが、システムや周辺機器によっては異なる可能性があるので慎重な確認が必要です。(誤ったデバイスファイルを選んでしまうと、最悪の場合データの消失につながる恐れがあります。)
対象のデバイスファイルがわかったら早速ディスクを仮想化してみます。
もし仮想化対象とは別のストレージがコピー元マシンにあり、そこへイメージを作成する場合は下記のようにします。
sudo dd if=/dev/デバイスファイル名 of=ファイル作成先のディレクトリパス bs=1M
または
sudo dd if=/dev/デバイスファイル名 bs=1M > 作成ファイルのパス(ex. /home/hoge/server_storage.img)
ディスクそのものに書き込むこともできます。(間違ったデバイスファイルを指定すると意図しないドライブやファイルのデータが消失します。)
sudo dd if=/dev/コピー元のデバイスファイル名 of=/dev/コピー先のデバイスファイル名 bs=1M
ネットワーク経由も可能です。
サーバー(コピー先)側
nc -l ポート番号 > disk.img
クライアント(コピー元側)
dd if=/dev/sdX bs=1M | nc サーバー側IP ポート番号
学生時代にOpenStackを使ってプライベートクラウドサーバーを構築した際、物理サーバーからOpenStackのインスタンスに変換する際にこの方法を使いました。
実際にOpenStack内のKVMで動作させましたが、物理サーバー同様に問題なく利用することができました。
できたイメージファイルはいろいろな仮想ディスク形式に変換可能ですので、VirtualBoxやVMWareでも利用可能のはずです。
仮想化ツールを持っていない、ディスクのバックアップを取りたい、という方は是非活用してみてください。
参考URL:
http://hogem.hatenablog.com/entry/20120204/1328355984