2015年5月11日月曜日

SSD->仮想ハードディスク

 今だにThinkPadを使用している。FreeBSDをインストールしたやつだけれど。
 これが飛んでしまったらどうしよう……、とずっと怯えていてついにこのあいだ、SSDでread errorが発生してしまった。いよいよくるべきものがきたか。
 ある程度はMacBook Airに環境を移してあるのだが、あいにくPostgreSQLとかのデータベース環境はそのままだ。空き容量の問題があって二の足を踏んでいる。悩んでいたのはこのまま、ThinkPadの環境を残しておきたかったからだ。
 環境の再構築が面倒だ。
 ThinkPadの環境を丸ごと——つまり、SSDそのものをコピーできれば、いいのだが——それ自体はddでできるだろうことは承知していたのでいろいろ頭をひねった末。

 VirtualBoxの仮想ハードディスクへddコピーすれば、いいんじゃないか。

 と気づいた。
 もちろんThinkPadのSSDの容量は128G。MacBook Airも同じサイズなのでローカルには無理だ。そこでネットワークドライブ——TimeCupsleに作成することにした。オフライン環境では使えないが、まぁ、そこはしかたがない。
 手順は以下。

  1. FreeBSDのインストールディスク(isoファイル)を起動ディスクにしてVirtualBoxでbsdinstallを立ち上げる。その際、仮想ハードディスクをネットワークドライブに作成しておく。
  2. 「Live CD」でFreeBSDを動かす。
  3. お立ち台でSSDをUSDドライブとしてFreeBSDに認識させる。
  4. dd if=/dev/da0 of=/dev/ada0 bs=10m
  5. 終わるまで待つ(7、8時間かかった)。

 終了後、コピーした仮想ハードディスクで起動してみたたところ、見事にFreeBSDが動作した。ThinkPadと同じように。ところがマウスは効くのがだ、キーボード入力を受け付けなかった。VirtualBoxのゲストとして動くために必要なVirtualBox-Guest Additionsをいれてないからだった。

 ThinkPadのFreeBSDは今だ動いている。