ハードディスクに不良ブロックがあります!
SCSI ディスクの場合は自動的に再マップする機能があるはずです.
しかし, 理解し難い理由から多くのドライブがこの機能が無効化
されて出荷されています...
これを有効化するには, 最初のデバイスのモードページを変更する
必要があります. これは次のコマンドを実行することで, FreeBSD
上でおこなうことができます (root 権限でおこないます).
scsi -f /dev/rsd0c -m 1 -e -P 3
そして, AWRE と ARRE の値を 0 から 1 へ変更します:-
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
他の種類のディスクでは, オペレーティングシステムからサポート
されているかによります. 残念ながら, この目的のために FreeBSD
が提供する ``bad144'' コマンドはかなり手を入れる必要があります...
IDE ディスクは, おそらく不良ブロックの再マップを内蔵していると
思います; ディスクの説明書がある場合は, この機能が無効になって
いるかを確認するとよいでしょう. しかし, ESDI, RLL, ST-506
ディスクは, 通常これをおこないません.
再マップが可能になっていて不良ブロックを見つけたのであれば,
ドライブを交換することを考えましょう. 不良ブロックの状態は時間と
ともに悪い方向にしか行きません.
Bustek 742a EISA SCSI が認識されません.
この情報は 742a のためのものですが, 他の Buslogic カードについても
同様のことが言えます. (Bustek = Buslogic)
742a カードには大きくわけて 2つのバージョンが存在します.
ハードウェアリビジョンの A-G と H 以降です. リビジョンの
文字はカードの隅にあるアセンブリ番号の後ろにあります.
742a は二つの ROM チップを持っており, 一つは BIOS チップで
もう一つはファームウェアチップです. FreeBSD はあなたの
持っているものがどの BIOS バージョンかは問題ありませんが,
ファームウェアバージョンについては問題となります.
Buslogic の技術サポート部門に連絡すれば, アップグレード版の
ROM を送ってくれることでしょう. BIOS チップと
ファームウェアチップはペアで出荷されます.
アダプタカードのハードウェアリビジョンにあわせた
最も新しいファームウェア ROM を使用しなければなりません.
リビジョン A-G のカードには, 2.41/2.21 までの
BIOS/ファームウェアのセットを使用することができます.
リビジョン H 以降のカードには, 最新のものである
4.70/3.37 の BIOS/ファームウェアのセットを
使用することができます. これらのファームウェアの違いは,
ファームウェア 3.37 が 「ラウンドロビン方式」
をサポートしているところからきています.
Buslogic のカードには, 製造番号も刻印されています. 古い
ハードウェアリビジョンのカードを持っている場合は, Buslogic の RMA
部門に問い合わせて製造番号を伝えると, 新しいハードウェアリビジョンの
カードに交換することもできます. もしカードが十分新しければ, 彼らは
交換に応じてくれるでしょう.
FreeBSD 2.1 は ファームウェアリビジョン 2.21
以降のものをサポートしています.
これよりも古いファームウェアリビジョンのものは,
Buslogic カードとして正常に認識されません.
しかし, Adaptec 1540 として認識されるかもしれません.
初期の Buslogic のファームウェアは AHA1540 互換モードを
持っています. しかし, EISA カードにとってこれは
よいことではありません.
古いハードウェアリビジョンのカードを持っていてファームウェア
2.21 を入手するのであれば, ジャンパ W1 の位置をデフォルトの
A-B から B-C に合わせる必要があるでしょう.
742a EISA カードには, [の節で説明している
「16 MB を越える」ことによる問題はありません.
これは Vesa-Local Buslogic SCSI カードで発生する問題です.
HP Netserver 上のオンボード SCSI コントローラが認識されません.
]基本的にこれは既知の問題です. HP Netserver マシンの
EISA オンボード SCSI コントローラは EISA のスロット番号 11
を占有しますが, 「本当の」EISA スロットはすべてそれよりも
前のアドレスに配置されているのです. 残念ながら,
10 番以上の EISA スロットは PCI に割り当てられたアドレス空間
と衝突し, FreeBSD
の自動コンフィグレーションは, 現状ではうまくこの状況を
処理できていないのです.
ですから現時点での最良の方法は, カーネルオプションの
に記述されているようにしてカーネルをコンパイルし,
構築してください.
もちろん, これはこのようなマシンにインストールする際に
卵が先か鶏が先か」といった問題を生み出すことになります.
この問題を回避するために, ユーザコンフィグ
(UserConfig) の中には特別な仕組みが組み込まれています.
このとき ``visual'' インタフェースは使用せず,
コマンドラインインタフェースを使用してください. 単純に
eisa 12
quit
とプロンプト上から打ち込み,
後は普通にインストールをおこなってください.
とにかくカスタムカーネルのコンパイルとインストールをおこなうことを
おすすめしますが,
も現時点ではこの値の変更を認識するようになっています.
うまくいけば, 将来のバージョンではこの問題が解決していることでしょう.
をご覧ください.
この CMD640 IDE コントローラはどこかおかしいようです.
それは壊れているのです. 両方のチャンネルを同時に制御できないのです.
現在ではこのチップを使っているシステムでは自動的に検出して
うまく動かすためのしくみが使えるようになっています. くわしくは
マニュアルページのディスクドライバ (man 4 wd) を参照してください.
CMD640 IDE コントローラを使っているシステムで FreeBSD 2.2.1
あるいは 2.2.2 を使っている場合でセカンダリのチャネルを
使いたいのであれば
``
たぶん IRQ の衝突が原因でしょう (二つのボードが同じ IRQ
を使用しているなど). FreeBSD 2.0.5R 以前では, これに関しては
寛大で IRQ の衝突があってもネットワークドライバは機能して
いました. しかし 2.0.5R 以降は IRQ の衝突はもはや寛大では
ありません. -c オプションをつけてブートして ed0/de0/... の
エントリをボードの設定に合わせてください.
ネットワークカードの BNC コネクタ (訳注: 10BASE-2 タイプ
のインターフェース) を使っている場合, デバイスのタイムアウト
はターミネーションの不良によっても起きます.
これをチェックするにはケーブルを外してターミネータを直接 NIC
に接続します. そしてエラーメッセージが消えるかどうか
確認します.
NE2000 コンパチブルカードのなかには UTP ポートのリンクが
なかったりケーブルが接続されていない場合にこのエラーを出す
ものがあります.
CDROM をマウントしようとすると ``Incorrect super block'' と言われます.
にマウントしたいデバイスのタイプを指定する必要
があります. デフォルトでは
はファイルシステムを
`` オプションをつけて明示する必要があります.
これはもちろん
CDROM が ISO 9660 ファイルシステムである場合です. ほとんどの
CDROM はこの形式です. 1.1R の FreeBSD では (訳注: 現行の 2.1.5R,
2.2R でも同様です) 自動的に Rock Ridge 拡張
(長いファイル名への対応) をうまく解釈します.
CDROM のデバイス ``/dev/cd0c'' を
/mnt にマウントしたい場合の例では, 次のようにします:
mount -t cd9660 /dev/cd0c /mnt
デバイスの名前はインタフェースによっては別の名前になっている
かもしれないので注意してください (``/dev/cd0c'' は
この場合の例です).
オプション ``
mount_cd9660 /dev/cd0c /mnt
CDROM をマウントしようとすると ``Device not configured'' と言われます.
これは 一般的に CDROM ドライブの中に CDROM が入っていないか,
ドライブがバス上に見えないことを意味します. ドライブに CDROM
を入れるか, IDE (ATAPI) であれば master/slave の状態をチェック
してください. CDROM ドライブに CDROM を入れてから認識するまで
数秒かかりますので少し待ってみてください.
SCSI CDROM ではバスリセットへの応答時間が遅いために失敗する
ことがあるかもしれません. SCSI CDROM を持っている場合は
カーネルコンフィグレーションファイルに以下の行を加えて
再コンパイルして試してみてください.
options "SCSI_DELAY=15"
(訳注: 現在の GENERIC カーネルでは上の設定はデフォルトに
なっています. 問題のある場合は SCSI_DELAY の数値を増やして
みてください.)
私のプリンタはとてつもなく遅いのです. どうしたらよいのでしょう?
パラレルインタフェースで, 問題はとんでもなく遅いだけであるなら,
プリンタボートを ``polled'' モードに設定してみてください:
lptcontrol -p
HP の新しいプリンタのいくつかは割り込みモードでは
使えないようです. (完全にわかったわけではありませんが)
タイミングの問題のように思われます.
私のプログラムは時々 ``Signal 11'' のエラーで止まってしまいます.
これはハードウェア (メモリ, マザーボードなど) の不具合いが
原因です. PC でメモリテストプログラムを動かしてみてください.
ただしメモリが正常に動作していると報告されたとしても, ぎりぎりで
メモリテストにパスしたメモリは, 処理の内容 (例えば
kernel のコンパイルや特にシステムの負荷が高いような場合には,
Adaptec 1542 などの SCSI コントローラのバスマスタ DMA など)
によっては問題が起きる可能性は大いにあります.
SIG11 FAQ (後で URLを示します) では遅いメモリが一般的に問題
を起こしがちであることを指摘しています. BIOS セットアップで
ウエイトステート数を増やすかメモリを速いものに交換してください.
私の場合はキャッシュ RAM やオンボードキャッシュコントローラ
の問題でした. このような問題ではないか確認するために BIOS
セットアップでオンボード (セカンダリ) キャッシュを無効にして
みてください.
以下のところには広い範囲の FAQ があります.
ブートの時に画面が真っ暗になって同期も取れません.
これは ATI Mach 64 ビデオカードの既知の問題です.
この問題はカードがアドレス
ドライバのバグ
(仕様?) のため4番目のシリアルポートがなくても, 通常この
アドレスを使う sio3 (4 番目のポートにあたります) を無効にしても,
ドライバはこのアドレスをさわります.
バグが修正されるまでは, 次のようにして対処してください.
- ブートプロンプトが出たら 問題はありません.
- exit とタイプしてブートを続行します.
もしシリアルポートを有効にしたいのであれば以下の変更をおこなって
新しいカーネルを作る必要があります.
/usr/src/sys/i386/isa/sio.c の中で1ヵ所ある
この対処をおこなった後でもまだ X ウィンドウシステムはうまく
動かないかもしれません. いくつかの新しい ATI Mach 64 ビデオカード
(特に ATI Mach Xpression) は現在のバージョンの
を見てベータリリースへのリンクを追ってください.
以下のファイルを持ってきましょう.
AccelCards, BetaReport, Cards, Devices, FILES, README.ati,
README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc,
X312BMa64.tgz
古いファイルをこの新しいバージョンのファイルに置き換え,
をもう一度実行します.
128MB の RAM があるのですが, 64MB しか認識しません.
FreeBSD がメモリのサイズを BIOS から取得する方法の制限により,
KB 単位で 16 ビット分までしか検出できません
(すなわち最大 65535Kb=64MB です)(これより少ない場合もあります. ある BIOS
の場合はメモリサイズが 16MB に制限されます).
64MB 以上のメモリを積んでいる場合, FreeBSD はそれを検出しようとし
ます. しかしその試みは失敗するかもしれません.
この問題を回避するには, 以下に示すカーネルオプションを
使用する必要があります. 完全なメモリ情報を BIOS から取得する
方法もありますが, ブートブロックに空きが無いため実装できません.
ブートブロックの問題が解決されれば, いつか拡張 BIOS
機能を使用して完全なメモリ情報を取得できるようになるでしょう.
とりあえず現在は, カーネルオプションを使ってください.
options "MAXMEM=<n>"
FreeBSD 2.0 が ``kmem_map too small!'' と言ってパニックします.
このパニックは, ネットワークバッファ (特に mbuf クラスタ)
の仮想メモリが無くなったことを示します. 以下のオプションを
カーネルコンフィグファイルに追加して mbuf クラスタに使用できる
仮想メモリの量を増やしてください.
options "NMBCLUSTERS=<n>"
<n> には, 同時に使用したい TCP コネクションの数に応じて
512 から 4096 までの数値を指定できます. とりあえず 2048 を
試してみるのを勧めます. これでパニックは完全の予防できるはずです.
mbuf クラスタの割り当て/使用状況については,
で知ることができます.
name="netstat -m"> で知ることができます. NMBCLUSTERS の
デフォルト値は
新しいカーネルでリブートすると ``CMAP busy panic'' となってパニックを起こしてしまいます.
ファイル /var/db/kvm_*.db において範囲外のデータを
検出するためのロジックは失敗することがあり, こうした矛盾のある
ファイルを使用することでパニックを引き起こすことがあります.
これが起こったなら, シングルユーザでリブートした後に,
以下のコマンドを実行してください.
rm /var/db/kvm_*.db
ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 というエラーが出ます
これは Ultrastor SCSI Host Adapter と衝突しています.
ブート時に kernel configuration メニューに入り, 問題を起こしている
を disable にしましょう.
sendmailが ``mail loops back to myself'' というメッセージを出すのですが.
この事は, sendmail FAQ に次のように書いてあります.
* "Local configuration error" というメッセージが出ます. 例えば:
553 relay.domain.net config error: mail loops back to myself
554 ... Local configuration error
のような物ですが, どのようにしたらこの問題を解決できますか?
これは, 例えば domain.net のようなドメイン宛てのメールを
MX record で特定のホスト (ここでは relay.domain.net) に送ろう
としたのに, そのホストでは domain.net 宛てのメールを受け取れる
ような設定になっていない場合です. 設定の際に
FEATURE(use_cw_file) を指定してある場合には/etc/sendmail.cw
の中に domain.net を追加してください. もしくは, /etc/sendmail.cf
の中に "Cw domain.net" を追加してください.
もはや現在の は sendmail release とは一緒には保守されて
いません. しかし次のネットニュースに定期的に投稿されてます.
,
,
,
,
.
また, メール経由でコピーを入手する場合は
宛まで本文に "send
usenet/news.answers/mail/sendmail-faq" と書いて送ります.
リモートマシン上のフルスクリーンアプリケーションがうまく動かない
リモートマシンのターミナルタイプが FreeBSD のコンソールで
つかわれている cons25 以外のものです.
この問題を解決する方法はいろいろあります:
- リモートマシンに login した後, shell 変数の TERM に
ansi か sco のいずれかを設定します.
- ローカル側で のような VT100 エミュレータを使用します.
screen は一つのターミナルの中で複数のセッションを
並列動作させることができますし, 本来の機能も優れています.
- リモートマシンのターミナルデータベースに cons25
のエントリをインストールします.
- Xを起動してリモートマシンに xterm から login
します. (訳注: 日本語が必要な場合は kterm 等を
利用します)