先日から回復に努めていて、復旧と更新を完了した FreeBSD 9.3 のHDDですが、元々は FreeBSD 7.x の時代から稼働していたもので、構築当時のHDD容量は問題なかったのですが、その後 8.3, 8.4 と更新してゆくうちにバランスが悪くなってきました。9.3 へのアップグレードでは確認不足により起動しなくしてしまいました。
現在、/ と /usr で 6GB ですので、20GB のものを使いたいところです。40GBのHDDが空いたのでこれを使おうとしたら、fsck が大量エラーを検出!200GBのHDDを接続したら、(マザーボードは、HP Vectra VEi7 DT というPCのもので2000年頃のBIOS)今度はHDDが128GB までしか認識されない気がします。同世代の i810 マザーボードで認識しないので。2ndary HDD はいいとして、ルートHDDには120GB以下のHDDを使うのが安全。
丁度いいサイズのものがないので、マシン全体をアップグレードするまでのつなぎで Western Digital 製 13GB の HDD に / と /usr とスワップを移し替えることにしました。
前のメモにも書きましたが、FreeBSD 9.3 のインストールCDは使い物になりません。 sysinstall コマンドや bsdinstall コマンドも一部は使えるものの、パッチレベルが更新されているFreeBSD 9.3-p21ではこの作業をやり遂げる事は出来なさそうです。幸い今回 FreeBSD 9.3 にアップグレード済みの HDD があるので、このHDDにインストールされているツールとコマンドをうまく組み合わせれば新しいHDDにOSを移し替える事ができそうです。
- 6GB の HDD をプライマリマスターに、13GB の HDD をプライマリーマスター以外にして OS を起動。
あらかじめ 6GB HDD をバックアップダンプしておいたファイルもファイルシステム上のどこかに置いておく。 - bsdinstall コマンドを起動して、HDDを fdisk + disklabel でパーティショニング(実際にはbsdinstall の流れの中でHDDを構成します)
- パーティションはBIOSがGPTを知らないためMBRを選択
- 11GB の freebsd-ufs /dev/ada1s1a と 1GB の freebsd-swap パーティション /dev/ada1s1b を作成する。
- この後で ftp サーバーに接続しに行くが、9.3-RELEASE-p21 というディレクトリは存在しないのでエラーで終了する。
- この後はコマンドを直接入力する
# newfs -b 16384 -f 2048 /dev/ada1s1a
- /dev/ada1s1a を /mnt にマウントする。
# mount /dev/ada1s1a /mnt - 事前にバックアップしておいた dump ファイルから restore コマンドで /mnt に戻す。必要な dump ファイル数分 cd と restore を繰り返す。
# cd /mnt
# restore -rvf path/to/6gb_hdd.dump
- restore が終了したら、/mnt/etc/fstab を新しい接続方法に合わせて書き換える。
- ファイルをコピーしたHDDをプライマリーマスターとしてPCと接続して起動する。
/home に割り当てているデータHDDも後ほど処理予定ですが、こっちはブートとは関係ないので dump/restore で移動するか、cpio でコピーすれば簡単にできるでしょう。
ブートできないブートCD とダウンロード出来ない xz 圧縮ファイルのおかげで、HDD を増量するために丸1日以上の時間を費やしましたけど、ようやく終わりが見えてきました。
私がドキュメントを良く読んでなくて理解不足ならいいのですが、FreeBSD 9.3 のインストールシステムは最低だ!