(ここでディスクの「ジオメトリ」とは, ディスクのシリンダ, ヘッダ, トラック当りのセクタの数を意味しています - 便宜上, C/H/S とすることにします. これはディスクのどの領域で読み書きを おこなうかを PC の BIOS が決定する手段となります.)
これについてはある理由のために, 誤解されている点が多いようです.
まず最初に, FreeBSD はディスクブロックで動作しているため,
SCSI ドライブの物理的
なジオメトリという言い方は,
まったく見当違いのものです. 事実, セクタの密度はディスク
によってまちまちであるため, 物理的なジオメトリというものは
存在しません - 製造者が「本当の」物理的なジオメトリと公表
しているものは通常, 彼らが検査して得た最小の使用不可容量の
結果のジオメトリのことです. IDE の場合は, FreeBSD は C/H/S
で動作しますが, 最近のドライブすべては同様にこれを内部で参照
するブロックに変換しています.
すべての問題は論理的な
ジオメトリです - これは BIOS が
そのディスクのジオメトリについて調べた際に取得されるものであり,
その後のディスクへのアクセスに使用します. FreeBSD はブート時に
BIOS を使用するため, これを正しく取得することは非常に重要な
ことなのです. 実際に, ディスク上に複数のオペレーティング
システムがある場合は, ジオメトリはどこからでも同じように解釈
される必要があり, さもないとブートの際に深刻な問題になります.
SCSI ディスクでは, 使用するジオメトリはコントローラの拡張 BIOS トランスレーションが有効になっているかどうかによります (``>1GB の DOS ディスクドライブのサポート'' とも呼ばれます). 無効になっている場合, N シリンダ, 64 ヘッド, 32 セクタ/トラック を使用しますが, ここで `N' は MB 単位のディスク容量です. 例えば, 2GB ディスクは見かけ上 2048 シリンダ, 64 ヘッド, 32 セクタ/トラックとなります.
それが「有効」になっており (MS-DOS ではこの方法で, ある制限 を回避する場合もあります), ディスク容量が 1GB を越える場合は, M シリンダ, 63 セクタ/トラック (64 「ではなく」), 255 ヘッド を使用します. `M' は MB 単位のディスク容量を 7.844238 (!) で割った値となります. ということで, 2GB ディスクの例では, 261 シリンダ, 63 セクタ/トラック, 255 ヘッドとなります. (訳注: 以上は Adaptec 社と NCR 社製の SCSI アダプタの場合です. SCSI アダプタによって変換の数値が変わってくるのでマニュアルを 参照してください.)
これについてよく分からない場合や FreeBSD がインストール中に 正しくジオメトリを取得できない場合, これを回避するもっとも 簡単な方法はディスクに小さな DOS パーティションを作ることです. そうすると正しいジオメトリが取得されるはずです (そして, 残しておきたくないとかネットワークカードのプログラミング用に 使いたい場合などには, いつでもパーティションエディタで DOS パーティションを削除することができます).
もう一つの方法として, FreeBSDと一緒にに配布されているフリー
で使えるユーティリティに ``pfdisk
''(FreeBSD CD-ROM の
tools
ディレクトリかいろいろな FTP サイトにあります)
と呼ばれるものがあり, ディスク上の他のオペレーティングシステム
が使用しているジオメトリを調べるのに役立ちます. そして, この
ジオメトリ情報をパーティションエディタに入力することができます.