/ / 最新

swk's log - ディスク飛ぶ

2002-05-05

* ディスク飛ぶ [nocturne]

OS をアップグレードしようとしたらディスクの内容が飛んでしまったので頑張って復旧する.以下,その顛末.

installkernel までしたところで single user mode で起動して,その後 installworld する前にふと思うところがあって multi user で起動し直そうと shutdown -r now とか打ったところ,

syncing disks 8 5 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 giving up

おわー.ただし数字は適当(メモ: syncing disks は /sys/kern/kern_shutdown.c).

で,起動しない.

Disk error 0x1 (lba=0x7fc11004)
Disk error 0x1 (lba=0x7fc11004)
No /boot/loader

>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:
Disk error 0x1 (lba=0x7fc11004)
No /kernel

>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:

がるる.

fixit で起動してみる./dev には

116, 0x00010002  ad0
116, 0x00020002  ad0s1
116, 0x00030002  ad0s2
116, 0x00040002  ad0s3
116, 0x00050002  ad0s4

なファイルがあるので,

Fixit# mknod /dev/ad0s1a c 116 131072

とかしてデバイスファイルを作っておいて,ためしにマウント.

Fixit# mount /dev/ad0s1a /mnt
mount: /dev/ad0s1a on /mnt: incorrect super block

だめ.fsck を(面倒くさいしどうせわからないので) -y つきでかける.これがよくなかった(?).

Fixit# fsck -y -b 32 /dev/ad0s1a

と打つと,だーーとすごい数の修正がなされた上で,

***** PLEASE RERUN FSCK *****

と出て来て終了したので,もう一度やるとなんかごにょごにょ出て来た上で

BAD SUPER BLOCK: NCYL LESS THAN NCG*CPG

アウトですか? アウトですね?

というわけですっかりあきらめて,全部消して再インストール.DMA がこけるから PIO にしなければいけない点は以前と同様なのだが,sysctl 入りの fixit 作ったりとかまでする必要はなくなっていて,ブート時の ok プロンプトで

set hw.ata.ata_dma="0"

と打ってやればよい(実はこれをすっかり忘れていて,しばらく悩んだ.これをやらないと disk に書き込みを開始する瞬間,すなわち sysinstall で commit してすぐにこける).インストール後,最初に起動するときもこれが必要で,そのとき,/boot/loader.conf に

hw.ata.ata_dma="0"

と書いておいてやれば,それ以降は必要ない.

/etc のバックアップはずっとさぼっていて,一番最後のものが ADSL 導入前のものだったので全く役に立たない.だめすぎ.ほぼ最初から設定し直し.とはいえ,そもそもごく普通な設定しかしていないのでそれほど困りはしなかった.

だいたい回復したのだけど,どういうわけか infoseek.co.jp とか nikkei.co.jp といった辺りにつながらないことに気づく.あれー path MTU discovery な問題ですか? 解決済なはずなんだが…と思っていろいろ見ていると,ppp.conf で

set mru 1454
set mtu 1454

と設定しているはずなのに,

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
       inet6 fe80::280:98ff:fea0:3fd6%tun0 prefixlen 64 scopeid 0x7 
       inet 61.202.239.227 --> 211.15.32.248 netmask 0xff000000 
       Opened by PID 1680

とかなっちゃってることに気づく.で,調べてみると, こういうことらしい.

set mru max 1454
set mtu max 1454

と max をつけて解決.こういうの UPDATING に書いといて欲しいんですけど.

最終更新時間: 2009-01-04 15:31


Shingo W. Kagami - swk(at)kagami.org