ネットワーク越しにディスクコピーする(Linux , macOS)
環境
Ubuntu 14.04 LTS
ディスクのパーテーションは
- swap 2GB
- / (ext4) 40GB
動機
物理マシン上で動いている Linux をそのまま仮想マシンにしたかった。
動機は Linux マシンの転送ですが、仮想マシンの Windows(ESXi)を同(Hyper-V)に移行する際に
同様の手順で実施可能な事を確認しています。その他、物理マシン上の Windows のディスクコピー等、物理コピーでどうにかなるものなら大抵なんとかなります。
準備(転送元)
パーティションをできるだけ小さくする。 gparted live dvd を使用した。
この手順はオプションなので、やらなくても良い。
準備(転送先)
仮想マシンを作成(ディスク容量は、転送元のパーティションがコピーできるだけの容量を確保)
Ubuntu の Live DVD で起動して、パーティションを転送元と同じブロック数で確保した。
転送元と転送先で、fdisk のブロック数が同じになるようにパーティションを作成。
ブート可能フラグを立てるのを忘れない(ブートしたい場合は)
なお、この手順はディスク丸ごと転送する場合は不要。
次の手順のデバイス名を /dev/sda とすればディスク丸ごと転送になる。
この場合、ブート可能フラグは自動で立つはず。
転送準備
転送元、転送先の両方の PC で同じ操作をする。
PC を Ubuntu Live DVD で起動する。(以下の手順は 14.04LTS で動作確認している)
起動後、Ubuntu を試す を選択してしばらく待ち、UI が起動するのを待つ。
起動したら、Windows キー(Linux 的には Super キー)を押下して、 terminal とタイプ。
すぐ下に、端末 というアイコンが出るのでそれをクリックする。
紫色のコマンドプロンプトみたいな何かが起動すれば OK。
転送
転送先 → 転送元の順で操作する。
ようするに、書いてある順に操作すれば OK。デバイス名を間違えると悲しいことになるので要注意。
1 | # 転送先で以下のコマンドを打つ。デバイス名は適宜調整して下さい。(例: ディスク全体なら /dev/sda等) |
1 | # 転送元で以下のコマンドを打つ。デバイス名は適宜調整して下さい。(例: ディスク全体なら /dev/sda等) |
1 | # 進捗確認用 |
起動してみる
新しくできた VM を起動してみると、GRUB Rescue の画面に入ってしまい起動できない場合がある(あった)
その場合の操作は以下の通り
1 | grub rescue> set prefix=(hd0,2)/boot/grub |
Windows の場合は、とりあえず Windows のセットアップ用 ISO を入れて起動し、diskpart コマンドを
使ってブートローダを上書きしてみる感じでしょうか(未検証)
20180123 追記 macOS 上でやる場合
いくつか違いがあります。
1 | ディスクの一覧を表示 |
ここでは、ディスクのデバイス名が /dev/diskN と表示されますが、ddを行う際は
/dev/rdiskN を使用するほうがよいかもしれないです。
参考
ddの進捗を確認 - Qiita
http://qiita.com/tukiyo3/items/5e3fd748287ffa4b6612
Linux 上の GRUB 2 がブートできなくなったときの対処方法
https://jp.linux.com/news/linuxcom-exclusive/418274-lco20140625
MacでRaspberry PiのSDカードをハードコピー(バックアップ) http://karaage.hatenadiary.jp/entry/2015/06/09/080000