TransFreeBSDの日記 このページをアンテナに追加 RSSフィード

2008-01-05

[]ルートファイルシステムを壊すまで ルートファイルシステムを壊すまで - TransFreeBSDの日記 を含むブックマーク

去年末からのお話。完全に壊したわけじゃないけど、いくつか重要なファイルを失った。でも、ルートだけで良かった。

手順

  1. 新しいHDD(SATA)を装着し、ddでコピーする
  2. 中身を確認せずにfstabを書き換える
  3. しかも何故か元のディスクのfstabを書き換える
  4. コピーに失敗していたのでブートできない
  5. しかたないのでFreeBSDのディスクを探すと5.1しかなかった
  6. fixedを選択するがmountがなくてマウントする方法がわからない
  7. customからdisklabelでnewfsなしで「/」を設定し、インストール物をどれもチェックせずに実行する
  8. どうやらuserかminimumが選択されているとみなされ次々と上書きされ「/」が溢れる
  9. もちろんカーネルも/etc以下もorz
  10. やる気をなくす。ふてる。バタバタする。大晦日を迎える。
  11. でもfstabが書き替わってちょっと前進
  12. loader.confに上書きされなかった6のカーネルモジュールがあってpanicする
    1. 5.1のディスクで起動
    2. /をnewfsなしで設定
    3. mediaで既存のファイルシステムを選択し適当に入力
    4. /がマウントされるがインストールは失敗
      • ただし、passwd、group、fstabなどいくつかは上書きされる
    5. mvが使えるようになる
    6. とりあえずloader.confをmv
  13. シングルユーザモードでは動くようになる
  14. /usr/objに前回makeworldしたバイナリがあったはず
    1. /usrをマウントしてなくて良かった
    2. /usrをマウントすると5.1のカーネルなので/usr/bin/makeは動かず
    3. /usrを/mntにマウントし、/mnt/obj/usrを/mnt/obj/mntにmvしてinstallkernelする
    4. 再起動する
  15. 6.1のカーネルが動く
    1. /usr/objを元に戻す
    2. installworldする
    3. mergemasterする
  16. 書き替わっているファイルがまだある
    1. loader.rcは手動で更新しないと/boot/modulesを読まくなる
    2. 退避していたloader.confを元に戻す
    3. /var/log/mount.todayを参考にfstabを修正する
    4. /var/backupsからaliases、group、master.passwdを戻す
      1. 本当に/だけで助かった
      2. vipwしてspwd.db、pwd.db、passwdの更新、/etc/makeでmake aliasesしてaliases.dbの更新を忘れない
    5. rc.confは無事
    6. その他*.confは記憶で直す
    7. もしくはあきらめる
  17. 正月を迎える :-)

反省点

  • 不用意にddを使わない、使ったら中身くらい確認する、せめてfsckくらいはかける
  • 不用意にfstabの/のエントリをいじらない、編集はよく確認して、落ち着いて
  • バックアップは大事、特にディスク操作や大きな作業の前には取っておく
  • 1CDブートのディスクやせめてメジャーバージョンの合ったインストールディスクは持っておく
  • 失敗しても焦らない、なれない事はしない、危ない橋は渡らない、落ち着いてプランを立てる

結局、ディスクコピーを失敗した原因だけれど、チップセット*1SATAコントローラ*2のドライバが怪しいのか、オーバークロックのためなのか、エラー等は何もでないけれど、アクセスなのか負荷なのか、うまく読み書き出来なくなる事があり、挙げ句にはfsck中にリセットがかかったりする。

しかし、運よくというか、こっちの方が性能がよいのだけれど、<JMicron JMB363 SATA300 controller>というSATA RAIDコントローラなる物がオンボードであったりして、こっちにつけると何事もなく滞りなく移行が済んだ。

でもって快適に。ディスクもやはり重要だ。あとバックアップも。

*1VIA P4M890とVIA VT8237A

*2VIA 8237S SATA150 controllerと認識

ktkt2008/02/23 16:02私もCCSMで設定変更するとemeraldが動かなくなることに悩まされていて、Dbusのチェックで解決しました。ありがとうございました。

通りすがり通りすがり2008/05/09 10:59同様のトラブルに悩まされていた者ですが、VT8237Aは内蔵SATAポートに負荷を与え続けると熱暴走しやすいようです。
ヒートシンクを買ってきて貼り付けたところ、ピタリとおさまりました。

トラックバック - http://freebsd.g.hatena.ne.jp/TransFreeBSD/20080105