先週の土曜日、とうとう自宅が IPv6 になった。
フレッツ光ネクストなので OCN の IPv6 サービスに申し込んだ。
接続自体はとっても簡単。まあ、NEC の無線ルータが IPv6 に対応していなかったので YAMAHA のルータに交換したくらい。OCN の接続IDもプレフィクスの部分が ipv6 に変わるだけで特に書類を待つ必要もなし。新たに pp を作ってそこに IPv6 PPPoE の設定をするくらい。詳しくはこのあたり。
で、自宅の Mac や Windows 7 なんかも /64 のプレフィクスがおりてきたので ping6 なんかをしてみたりしつつ、「あ、マルチプレフィックスだ・・」なんて改めて考えてみたりしながら、そういえば、このページをホストしている FreeBSD はカーネル的に #INET6 な状態でだったよな・・、と思い出したのが運の尽き。
なにを思ったか、リモートから buildkernel && installkernel reboot をしたら上がってこなくなった・・・。最初はあれ、sshd_enable="YES" 忘れてたかなぁ〜、なんて気軽に考えていたけども、帰宅してモニタをつけたらカーネルが panic してしかもループしてるし・・。
ま、kernel.old で起動すりゃいいや、と思ってやって mv 後、reboot したけどなぜか同じ。あら、なんか変だぞ、とようやくここで /usr/src/UPDATING をみた。6.4RC だけど、前回の build.log を見ると 7.4 になってるし・・。
じゃ、ということで kernel.GENERIC で起動したらなんとか上がってきたけど、2,3分で panic 。そろそろ焦り出す。まあ、データやバックアップは別スライスにあるので最悪OSをインストールし直せばいいか、と思っていたけど作業を考えると超絶おっくう。なんとか再インストールは避けたいなぁ、と livecd で起動して /etc をごちゃごちゃ修正、ファイルをコピーし、panic に怯えながら buildkernel をするけどやっぱり途中で panic 。この時点で午前3時くらいなのであきらめて寝る。んで、翌朝、同じように試すも当然ながら同じ。出勤時間になったのでいったん中止。
お昼前にもしかして、buildkernel がいかんのかなー、とふと思いつき、昼飯を食べがてら帰宅。まあ、まともな会社員は就業途中で帰宅してはイケません。
んで、昔ながらの方法、
# config KERN_NAME
#cd ../../compile/KERN_NAME
# make cleandepend; make depend; make
を試したらなんと最後までコンパイルが通った。はやる気持ちを抑えつつ、現状のカーネルを cp した後、make install した。5分経過・・・、10分経過・・・、おっ、panic しないぞ、負荷をかけてみるか、ということで buildworld をやっても panic は起こらない。
お昼休み終了5分前に復旧完了〜。さて戻るか、とDHCP にもなっていた FreeBSD が死んでいいたため、急遽、yamaha に肩代わりして貰っていた DHCPサービスを止めるのを忘れてた。会社に戻ってブラウザを開いても connection refused だし、おかしいなぁ、もしかして single user mode だったのかなぁ、なんて思いながら帰宅してみると、
May 29 16:13:06 goza kernel: arp: bb:bb:bb:bb:bb:bb is using my IP address xxx.xxx.xxx.xxx!
なんてログが大量に出てる。あ、dhcp 切り替えるの忘れてた・・、とやっと思い出して yamaha のDHCPを止めてアドレスをつかんでいる奴のケーブルを引っこ抜いて、今度こそ復旧しました。。
いやはや、リモートから kernel の入れ替えなんてするもんじゃない、てか、そもそも GENERIC でいいんじゃ?、というのが教訓でした。