2010年4月29日木曜日

FreeBSDからUbuntu

 先週末に自宅サーバのOSをFreeBSDからUbuntu Linux Serverに移行した。このサーバとして使っているFMV LOOX T70Hが素直かと思いきや意外と曲者で、思わぬところで落とし穴があった。

 移行の手順は大まかに、
  1. 母艦のVMwareでLinuxを準備
  2. LOOXのFreeBSDを外付けHDDにバックアップ
  3. MondoRescueでVMwareからLOOXの内蔵HDDへarchive&restore
という3段階で行った。

1. 母艦のVMwareでLinuxを準備

 移行に先立ち、VMware上にUbuntu Serverをインストールしてデータの引越しをある程度進めておいた。rsyncでFreeBSDからLinuxに設定内容やデータをコピー。この段階は割と順調だった。

2. LOOXのFreeBSDを外付けHDDにバックアップ

 移行前のHDDの中身は、使っていなかったHDDを外付けして保存する事にしていた。シングルユーザモードで起動して、sysinstallで外付けHDDにパーティション切ってフォーマットが済んだらdump&restoreである。ところが、最近不安定なFreeBSD 8-STABLEがdump|restoreの最中に突然死してリブート。8.0-RELEASEになってから前触れなくリブートする事が月に数回起きていたが、dump | restoreしたら2回続けて昇天。ちっともstableじゃない8-STABLE。方針変更して8.0-RELEASEのLivefs CDからブートしてみることにした。
 Livefs ISOファイルを焼いたDVDで起動して、Fixitコンソールに入ってdump|resore、のはずだった。ところが、DVDから起動はするのだが、Livefsをマウントする段階でDVDドライブを見失う。DVDドライブが着脱式なのが関係していそうだが、解決法がすぐに見つからなかったので、またまた方針転換。USBメモリにFreeBSD 8.0-RELEASEをインストールして、ここから起動後にdump|restore。なんとか成功。

3. MondoRescueでVMwareからLOOXの内蔵HDDへarchive&restore

 次はLinuxの引越し。VMwareでmondoarchiveを使ってリカバリーISOイメージを作成。sambaで母艦に持ってきてDVDに焼いて、いざLOOXへ。ところが、LOOXのCPUであるPentiumMがPAE無しのため、PAE前提のUbuntu Serverのカーネルでは起動しない。VMwareの上でカーネルをPAE無しに入れ替えて、リカバリーISOイメージ作成、DVD書き込みをやり直した。
 さて、カーネルを入れ替えたおかげでリカバリーDVDで起動はするのだが、いざリカバリーという段階でDVDドライブを見失う。FreeBSDのLivefsと同様の症状らしい。こちらも方針変更して、mondoarchiveのバックアップ先をUSBメモリにしてみたが、こっちはLOOXに挿しても起動の初期段階で死んでしまう。状況はかえって悪くなった。しかたがないので、LOOXの内蔵HDDを外してVMwareに物理ドライブとして接続し、mondoarchiveで作ったリカバリーDVDからリストアした。さすがにVMwareでは素直に動く。
これでやっと引越し完了。HDDをLOOXに戻したら無事に起動した。

 予想していなかったトラブルは、
  1. LOOX T70HではLivefs DVDが役に立たない
  2. PentiumMはPAE無し
  3. mondoarchiveは、動く環境が割と限られる。LVMにしたらリストア失敗。USBでもリストア失敗。
が痛かった。土曜の朝から初めて、終わったのは日曜の朝4時ころ。さすがに力尽きて、最終的な目的だったMotionのセットアップをする前に沈没。