doc/ja_JP.eucJP/FAQ/install.sgml
Motoyuki Konno 0615b19fa0 Merge the following changes in the English version:
install.sgml : 1.9 -> 1.11

Submitted by:	Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
1998-10-11 15:32:16 +00:00

658 lines
29 KiB
Text

<!-- $Id: install.sgml,v 1.7 1998-10-11 15:32:16 motoyuki Exp $ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.11 -->
<sect>
<heading>インストール<label id="install"></heading>
<p><em>訳: &a.iwasaki; <newline>&a.murata; .<newline>8 November 1997.</em>
<sect1>
<heading>
FreeBSD を入手するにはどのファイルをダウンロードすればいいですか?
</heading>
<p>通常は <em>floppies/boot.flp</em> というファイルの
フロッピーディスクイメージが一つだけ必要になります. 1.44MB の
フロッピーディスクに書き込み, そこからブートしてその他のファイル群を
ダウンロードします (インストールプログラムが TCP/IP 接続, テープ, CD-ROM,
フロッピーディスク, DOS パーティションなど, インストールに必要なもの
すべてに関する処理を担当します).
<p>自分で配布ファイルをダウンロードする必要がある場合 (たとえば DOS
ファイルシステムからのインストールなど), おすすめの配布ファイル構成は
以下の通りです.
<itemize>
<item> bin/<newline>
<item> manpages/<newline>
<item> compat*/<newline>
<item> doc/ <newline>
<item> src/ssys.* <newline>
</itemize>
<p>この手続きの完全な説明と, 一般的なインストール時の問題については
<url url="../handbook/install.html" name="ハンドブックのインストールの節">
を参照してください.
<sect1>
<heading>ブートフロッピーイメージが一枚のフロッピーディスクに納まらないみたい!
</heading>
<p>3.5 インチ (1.44MB) のフロッピーディスクには 1474560 バイトのデータを
格納できます. ブートイメージはちょうど 1474560 バイトの大きさです.
<p>ブートフロッピーディスクを準備する際のよくある間違いには
以下のものがあります.
<itemize>
<item><tt>FTP</tt> によってフロッピーイメージをダウンロードする際に,
<tt>binary</tt> モードにしていなかった.
<p>FTP クライアントの中には転送モードのデフォルトを <tt>ascii</tt>
モードにしてクライアント側システムの慣習にあうようにすべての行末の
文字を変更するものがあります. この場合は常にブートイメージが
壊れたものになります. ダウンロードしたブートイメージのサイズを
チェックしてください. サーバ上のものと <em>正確に</em> 同じでない場合,
ダウンロードの処理を疑いましょう.
<p>これを回避するには, サーバに接続してイメージのダウンロードを
開始する前に, FTP のコマンドプロンプトで <tt>binary</tt> とタイプします.
<item>ブートイメージを DOS の <tt>copy</tt> コマンド (または GUI の同等のツール)
でフロッピーディスクへ転送した.
<p><tt>copy</tt> のようなプログラムは, 直接起動するように作成された
ブートイメージに関してはうまく処理できません.
イメージにはフロッピーディスクの完全な中身がトラック単位で
格納されており, フロッピーディスク上に通常のファイルとして
格納されるようには想定されていません.
<url url="../handbook/install.html" name="FreeBSD のインストール">
に記述されているように, ローレベルのツール (例 <tt>fdimage</tt> または
<tt>rawrite</tt>) を使用して ``raw'' の状態でフロッピーディスクに
転送する必要があります.
</itemize>
<sect1>
<heading>FreeBSD のインストールについての説明書はどこにありますか?</heading>
<p>インストールの説明書は次のところにあります.
<url url="../handbook/install.html"
name="ハンドブックの「FreeBSD のインストール」の章">
<sect1>
<heading>FreeBSD を動作させるには何が必要ですか?</heading>
<p>386 以上の PC, 5MB 以上の RAM, そして最低 60MB の
ハードディスク容量が必要となります. ローエンドの MDA カード
でも動作しますが, X11R6 を使うには VGA かそれ以上のビデオカード
が必要となります.
<p><ref id="hardware" name="ハードウェアコンパチビリティ">
の節も併せてご覧ください.
<sect1>
<heading>4 MB しかメモリがないのですが, インストールできますか?</heading>
<p>4MB のシステムにインストールできた FreeBSD の最新版は
FreeBSD 2.1.7 でした. 2.2 のように, 2.2 などのより新しいバージョンの
FreeBSD は新規のインストールに最低 5MB は必要になります.
<p>インストールプログラムが 4MB では動作しないだけで, 3.0 を含む
FreeBSD のすべてのバージョンは 4MB の RAM で動作可能です.
インストールする時だけさらに 4MB 追加しておき, システムが
セットアップされて動作するようになった後に, また 4MBを取り出して
もとに戻すこともできます. あるいは 4MB より多くメモリを搭載
したシステムにディスクを持っていき, そのマシンでインストール
した後にディスクを戻すこともできます.
<p>また, FreeBSD 2.1.7 でも 4MB ではインストールできない場合も
あります. 正確には, 640KB のベースメモリ + 3MB の拡張メモリ
ではインストールはできません. もしマシンのマザーボードが
640KB から 1MB の領域で「失われた」メモリを再マップできる
場合は, FreeBSD 2.1.7 をインストールできるかもしれません.
<p>BIOS のセットアップ画面で, `remap' のオプションを探して
有効 (Enable) にしてみてください. また, ROM shadowing を無効
(Disable) にしておかなくてはなりません.
<p>簡単なやり方としては, インストールする時だけあと 4MB 追加
しておく方法があります. 必要なオプションだけを選択して
カスタムカーネルを構築し, また 4MB を取り出してもとに戻せば
いいのです.
<p>また, 2.0.5 をインストールして, それから 2.1.7 のインストーラ
の ``upgrade'' オプションでシステムを 2.1.7 へアップグレード
するというやり方もあります.
<p>インストールしたあとでカスタムカーネルの構築をした場合, 4MB
でも動作します. 2MBでブートに成功した人もいます. (でもその
システムはほとんど使いものになりませんでした :-))
<sect1>
<heading>
自分用のインストールフロッピーを作るには?
</heading>
<p>現在はカスタムインストールフロッピーディスク「だけ」を作る方法はありません.
カスタムインストールフロッピーディスクイメージを含む, release 環境全体を
新たに作る必要があります. <tt>/usr/src/release/floppies/Makefile</tt>
にあるコードでフロッピーディスクイメージ「だけ」を作れるはずですが,
まだ完全なものにはなっていません.
<p>カスタムの release 環境をつくるには<ref id="custrel" name="ここ">
の指示にしたがってください.
<sect1>
<heading>自分の PC に複数のオペレーティングシステムを入れるには?</heading>
<p><url url="../../tutorials/multios/multios.html"
name="multi-OS のページ"> をご覧ください.
<sect1>
<heading>同じマシンで Windows 95 と共存できますか?</heading>
<p>まず Windows 95 をインストールして, そのあとで FreeBSD を
インストールしてください. FreeBSD のブートマネージャが Win95
と FreeBSD のブート管理をしてくれるようになります.
Windows 95 を後にインストールした場合はひどいことに,
問い合わせることもなくブートマネージャを上書きしてしまいます.
そうなってしまった場合は次の節をご覧ください.
<sect1>
<heading>
Windows 95 がブートマネージャを潰しちゃった! どうやって戻すの?
</heading>
<p>ブートマネージャの再インストールの方法として, FreeBSD では
以下に示す二通りの方法が用意されています:
<itemize>
<item>DOS を起動し, FreeBSD の配布物の中にある tools/ ディレクトリ
へ移動し, <bf>bootinst.exe</bf> を探してみてください.
そして次のように実行してください:
<p><bf>bootinst.exe boot.bin</bf>
<p>ブートマネージャが再インストールされます.
<item>FreeBSD のブートフロッピーディスクから起動し, 「カスタム」
インストールメニューを選択し, 続いて「パーティション」を
選択します. ブートマネージャがインストールされていたドライブ
(多分最初のもの) を選択し, パーティションエディタにたどり着いたら,
(何も変更せず) そのまま (W)rite を指定します. 確認のメッセージ
が出ますので「はい」と答え, ブートマネージャ選択の画面で確実に
"Boot Manager" を選択します.
これでブートマネージャがディスクに再び書き込まれます.
インストールメニューから抜けてリブートするとハードディスクは
元通りになります.
</itemize>
<sect1>
<heading>不良ブロックのあるディスクにインストールできますか?</heading>
<p>FreeBSD の不良ブロックの扱い (<htmlurl
url="http://www.freebsd.org/cgi/man.cgi?bad144" name="bad144">
コマンド) は,
(ひいき目に見ても) 100&percnt; 完全ではなく, 残念ながら
多数の不良ブロックのある IDE や ESDI ドライブは FreeBSD
では使用できないと言わざるをえません! でも, 非常に多くの IDE
ベースのシステムで動作しているようですので, 簡単にあきらめて
しまう前にとりあえず試してみましょう.
<p>不良ブロックのある SCSI ドライブの場合は,
<ref id="awre" name="この回答"> を参照してください.
<sect1>
<heading>インストーラからブートしたら変なことになりました!</heading>
<p>インストーラからブートしようとしたときに, マシンが固まってし
まうとか自然とリブートしてしまうといった現象であれば,
次の三つの項目を確認してください:-
<enum>
<item>新品の, フォーマットしたての, エラーフリーの
フロッピーディスクを使っていますか? (三年間もベッドの下に
放置されていた雑誌の付録みたいなやつではなくて,
買ってきたばかりの新品が好ましいですね)
<item>フロッピーイメージをバイナリモードでダウンロード
しましたか? (困った顔をしないでください. 私たちの中
で一番優秀な人でさえ, 少なくとも一回はバイナリファイルを
ASCII モードで思いがけずダウンロードしたことがあるのです!)
<item>Windows95 や Windows NT のような最近ご流行の
オペレーティングシステムを使用している場合, システムを
シャットダウンしてありのままの本物の DOS を再起動
しましたか? これらの OS は, ディスク作成プログラム
のようなハードウェアに直接書き込みをおこなうプログラムに
干渉できます: GUI の中の DOS シェル内部で動作している
場合でも, この問題は発生します.
</enum>
<p>また, Netscape でブートイメージをダウンロードする場合も問題
があることが報告されていますので, できれば別の FTP クライアント
を使うのがよいでしょう.
<sect1>
<heading>あれ! テープからインストールできません!</heading>
<p>2.1.7R をテープからインストールする場合, tar ブロックサイズ
を 10 (5120 バイト) にしたテープを作る必要があります.
デフォルト の tar ブロックサイズは 20 (10240 バイト) で,
このデフォルトサイズで作られたテープでは 2.1.7R を
インストールすることはできません. もしこうしたテープを使うと,
レコードサイズが大き過ぎるというエラーが起きることになります.
<sect1>
<heading>
ラップトップ PC に PLIP (パラレルライン IP) 経由でインストールできますか?
</heading>
<p>次のようにして二つのコンピュータを Laplink パラレルケーブル
を通して接続してください:
<verb>
+----------------------------------------+
|A-name A-End B-End Descr. Port/Bit |
+----------------------------------------+
|DATA0 2 15 Data 0/0x01 |
|-ERROR 15 2 1/0x08 |
+----------------------------------------+
|DATA1 3 13 Data 0/0x02 |
|+SLCT 13 3 1/0x10 |
+----------------------------------------+
|DATA2 4 12 Data 0/0x04 |
|+PE 12 4 1/0x20 |
+----------------------------------------+
|DATA3 5 10 Strobe 0/0x08 |
|-ACK 10 5 1/0x40 |
+----------------------------------------+
|DATA4 6 11 Data 0/0x10 |
|BUSY 11 6 1/0x80 |
+----------------------------------------+
|GND 18-25 18-25 GND - |
+----------------------------------------+
</verb>
<p>また, <ref id="pao" name="この"> Mobile Computing についての
ページもご覧ください.
<sect1>
<heading>
ハードディスクドライブには, どのジオメトリを使うべきでしょうか?
<label id="geometry">
</heading>
<p>(ここでディスクの「ジオメトリ」とは, ディスクのシリンダ,
ヘッダ, トラック当りのセクタの数を意味しています - 便宜上,
C/H/S とすることにします. これはディスクのどの領域で読み書きを
おこなうかを PC の BIOS が決定する手段となります.)
<p>これについてはある理由のために, 誤解されている点が多いようです.
まず最初に, FreeBSD はディスクブロックで動作しているため,
SCSI ドライブの<tt /物理的/なジオメトリという言い方は,
まったく見当違いのものです. 事実, セクタの密度はディスク
によってまちまちであるため, 物理的なジオメトリというものは
存在しません - 製造者が「本当の」物理的なジオメトリと公表
しているものは通常, 彼らが検査して得た最小の使用不可容量の
結果のジオメトリのことです. IDE の場合は, FreeBSD は C/H/S
で動作しますが, 最近のドライブすべては同様にこれを内部で参照
するブロックに変換しています.
<p>すべての問題は<tt /論理的な/ジオメトリです - これは BIOS が
そのディスクのジオメトリについて調べた際に取得されるものであり,
その後のディスクへのアクセスに使用します. FreeBSD はブート時に
BIOS を使用するため, これを正しく取得することは非常に重要な
ことなのです. 実際に, ディスク上に複数のオペレーティング
システムがある場合は, ジオメトリはどこからでも同じように解釈
される必要があり, さもないとブートの際に深刻な問題になります.
<p>SCSI ディスクでは, 使用するジオメトリはコントローラの拡張 BIOS
トランスレーションが有効になっているかどうかによります (``&gt;1GB の
DOS ディスクドライブのサポート'' とも呼ばれます).
無効になっている場合, N シリンダ, 64 ヘッド, 32 セクタ/トラック
を使用しますが, ここで `N' は MB 単位のディスク容量です.
例えば, 2GB ディスクは見かけ上 2048 シリンダ, 64 ヘッド,
32 セクタ/トラックとなります.
<p>それが「有効」になっており (MS-DOS ではこの方法で, ある制限
を回避する場合もあります), ディスク容量が 1GB を越える場合は,
M シリンダ, 63 ヘッド (64 「ではなく」), 255 セクタ/トラック
を使用します. `M' は MB 単位のディスク容量を 7.844238 (!)
で割った値となります. ということで, 2GB ディスクの例では,
261 シリンダ, 63 ヘッド, 255 セクタ/トラックとなります.
(訳注: 以上は Adaptec 社と NCR 社製の SCSI アダプタの場合です.
SCSI アダプタによって変換の数値が変わってくるのでマニュアルを
参照してください.)
<p>これについてよく分からない場合や FreeBSD がインストール中に
正しくジオメトリを取得できない場合, これを回避するもっとも
簡単な方法はディスクに小さな DOS パーティションを作ることです.
そうすると正しいジオメトリが取得されるはずです (そして,
残しておきたくないとかネットワークカードのプログラミング用に
使いたい場合などには, いつでもパーティションエディタで DOS
パーティションを削除することができます).
<p>もう一つの方法として, FreeBSDと一緒にに配布されているフリー
で使えるユーティリティに ``<tt/pfdisk/''(FreeBSD CD-ROM の
<tt>tools</tt>ディレクトリかいろいろな FTP サイトにあります)
と呼ばれるものがあり, ディスク上の他のオペレーティングシステム
が使用しているジオメトリを調べるのに役立ちます. そして, この
ジオメトリ情報をパーティションエディタに入力することができます.
<sect1>
<heading>ディスクの分割の仕方で何か制限はありますか?</heading>
<p>はい. BIOS がカーネルをブートできるようにルートパーティションが
1024 シリンダ以内にあることを確認する必要があります
(これは FreeBSD ではなく PC の BIOS の制限です).
<p>SCSI ドライブでは, 通常はルートパーティションが最初の 1024MB
に収まっていることが前提となります (または拡張 BIOS トランスレーション
が有効になっている場合は最初の 4096MB - 他の質問をご覧ください).
IDE でそれに相当する値は 504MB となります.
(訳注: E-IDE 対応の BIOS 搭載マシンの場合は IDE の 504MB という
制限はありません.)
<sect1>
<heading>
大容量ディスクを持っていますが, ディスクマネージャは使えますか?
</heading>
<p>FreeBSD は Ontrack Disk Manager を認識し, これを考慮にいれます.
他のディスクマネージャはサポートしません.
<p>ディスク全体を FreeBSD で使いたい場合は, ディスクマネージャ
は必要ありません. BIOS が扱える容量いっぱいで (通常は 504MB)
ディスクの設定をおこなうと, FreeBSD は実際の容量を算出する
はずです. MFM コントローラ付きの古いディスクを使っている場合は,
FreeBSD に使用するシリンダ数を詳細に指定する必要があります.
<p>FreeBSD と他のオペレーティングシステムが入っているディスクを
使用したい場合は, ディスクマネージャなしでもできるでしょう:
FreeBSD のブートパーティションと他のオペレーティングシステム
用のスライスが最初の 1024 シリンダ内に収まっている事を確認
するだけです. 気になる方は, ブートパーティションを 20 メガバイト
ぐらいにして大きめにするととよいでしょう.
<sect1>
<heading>
FreeBSD のブート時に ``Missing Operationg System'' と表示されます
<label id="missing_os">
</heading>
<p>これは FreeBSD や DOS, そのほかの OS がディスク領域
<ref id="geometry" name="ジオメトリ"> のとらえ方で衝突
しあっていることから起こる典型的な例です. こうなったら
FreeBSD をインストールし直す以外にはありませんが,
他のところで説明した手順にしたがってやれば,
ほぼ間違いなくうまくいくはずです.
<sect1>
<heading>ブートマネージャの `F?' プロンプトが表示されません. </heading>
<p>これはすでに前に質問されている問題のもう一つの症状です. BIOS
のジオメトリと FreeBSD のジオメトリ設定が一致していないのです!
コントローラや BIOS がシリンダの変換 (``&gt;1GB ドライブの
サポート'' とも呼ばれます) をサポートしていたら,
その設定を無効化して FreeBSD をインストールし直してみてください.
<sect1>
<heading>
16MB を越えるメモリを搭載していますが, 何か問題が起こりますか?
<label id="bigram">
</heading>
<p>性能問題以外は無しです. FreeBSD 2.X は bounce-buffer をサポートしており,
バスマスタリングコントローラは 16MB より上のメモリ領域に
アクセスできます. (ISA デバイスを使用している場合のみ必要
となりますが, 一部の EISA と VLB デバイスでも必要な場合
があります.)
<p>また, もっと多くのメモリを搭載している場合, Compaq や利用可能な
メモリサイズを正しく報告しない他の BIOS を使用している場合は,
<ref id="reallybigram" name="&gt;64M マシン"> の節をご覧ください.
<sect1>
<heading>ソースを全部インストールする必要はありますか?</heading>
<p>一般的には「いいえ」です. しかし最低でも, ``<tt/base/''
ソースキット (これにはこの FAQ で述べられているファイルの
いくつかが含まれています) と, ``<tt/sys/'' (kernel) ソースキット
(これにはカーネルのソースが含まれています) をインストール
する事を強くおすすめします. 通常, 何かの実行にソースが必要
になる事はありません. しかし, カーネルをコンフィグレーション
するためのプログラム <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?config" name="config">
を実行する時は例外です.
カーネルのソースをインストールしなくてもよい例として, どこか
別の場所からカーネルのソースを読み込み専用で NFS マウントする
事ができ, またそこから新しいバイナリを作成できるようになって
います. (カーネルソースの制限があるので, 直接 /usr/src を
マウントする事はおすすめできません. それよりもどこか別の
ディレクトリにマウントして, ソースツリーの複製ができるように
適切にシンボリックリンクを張ってください.)
<p>ソースをネットワーク上に持ち, そこからシステムをビルド
するようにしておけば, FreeBSD の将来のリリースへのアップグレード
がずっと簡単になります.
<p>実際にソースのサブセットを選択するには, システムインストール
ツールの「配布ファイル」メニューにある「カスタム」メニュー
を使用します. また, <tt>src/install.sh</tt> スクリプトでも
与える引数によってソース配布ファイルの一部分をインストールできます.
<sect1>
<heading>カーネルは作り直さなくちゃならないんですか?</heading>
<p>カーネルを新しく作り直すのは元々 FreeBSD のインストール時に
どうしても必要なことでした. でも最近のリリースでは, とても
ユーザフレンドリなカーネル設定ツールの恩恵を受けています.
FreeBSD のブートプロンプト (boot:) で "-c" と打てば
ビジュアルな設定画面になり, ほとんどの一般的な ISA カードに
ついてのカーネルの設定をすることができるのです.
<p>今でも, 必要なデバイスドライバだけを組み込んだカーネルを
作ることはよい事とされています. ほんのちょっとだけメモリを
節約できますからね. でもほとんどのシステムでは, もはや
どうしてもやらなくちゃならないことではないのです.
<sect1>
<heading>
アメリカ合衆国国外に住んでいますが, DES 暗号化ソフトウェアは使えますか?
</heading>
<p>DES スタイルの暗号化コードの使用が絶対避けられないものでない
場合は, <bf/よりよいセキュリティ/で輸出規制のない FreeBSD の
デフォルトの暗号化コードが使用できます. FreeBSD 2.0 ではパスワードの
デフォルトのスクランブラは <bf/MD5/ ベースになっています.
これは, パスワード破りのプログラムに対して DES よりも CPU
パワーを要求し, またより長いパスワードを使うことできます.
いまどき <bf/MD5/ ベースの crypt を使用しない理由があるとすれば,
それは FreeBSD とそれ以外のシステムで同じ password エントリを
使用しているぐらいのもんでしょう.
<p>DES 暗号化アルゴリズムを合法的に合衆国国外に持ち出す事
ができないため, 合衆国国外のユーザは合衆国の FTP サイト
から該当するソフトウェア (<tt/secrdist/ の部分) を
持ち出してはいけません.
<p>しかし, これに代わる libcrypt が, オーストラリアの David
Burren によって書かれたソースをベースに作られています.
これは合衆国国外のいくつかの FTP ミラーサイトで公開されています.
この制限の課せられていない libcrypt のソースと, それを
使ったプログラムのバイナリは, 以下の FTP サイトから入手する
事ができます:
<descrip>
<tag/南アフリカ/
<tt>ftp://ftp.internat.freebsd.org/pub/FreeBSD</tt><newline>
<tt>ftp://storm.sea.uct.ac.za/pub/FreeBSD</tt>
<tag/ブラジル/
<tt>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</tt>
<tag/フィンランド/
<tt>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</tt>
訳注: 日本国内では以下のサイトにあります.
<tag/日本/
<tt>ftp://jaz.jp.freebsd.org/pub/FreeBSD-internat</tt>
</descrip>
<p>この合衆国国外向けの <tt/securdist/ は, 合衆国国内向けの
<tt/securedist/ をちょうど置き換えるように使う事ができます.
この <tt/securedist/ は合衆国国内版のパッケージと同じ方法で
インストールできます (詳しい方法はインストールノートを
ご覧ください). DES 暗号化コードをインストールしたい場合は,
他のアプリケーションをインストールする前に, なるべく早い段階で
インストールしておく必要があります.
<p>合衆国国外のユーザは, お願いですからいかなる暗号化ソフトウェア
も合衆国内からダウンロードしないでください. ダウンロードされた
サイトの管理者は, 法律的にとても難しく困難な立場に立たされる
事になります.
<p>合衆国以外向けの Kerberos も開発されつつあります. 現在の
バージョンは anonymous FTP で <tt>braae.ru.ac.za</tt> から
入手できます.
<p>また, 合衆国国外向けの暗号化ソフトウェアに関する議論のための
<ref id="mailing" name="メーリングリスト">もあります.
より詳しい情報については, メールの本文に ``<tt/help/'' とだけ書いて
<tt>&lt;majordomo@braae.ru.ac.za&gt;</tt> まで送ってください.
<sect1>
<heading>ブートフロッピーで起動すると, ``Probing Devices...'' の画面でハングアップします.</heading>
<p>IDE Zip か Jaz ドライブが接続されていたら, それを取り外して
もう一度試してみましょう. ブートフロッピーはこの種のドライブを誤認して
しまうのです.
システムがインストールされた後は, そのドライブを再度接続することができます.
うまくいけばこの問題は将来のリリースで解決されるでしょう.
<sect1>
<heading>インストール終了後にシステムをリブートすると, ``panic: cant mount root'' のエラーとなります.</heading>
<p>このエラーはディスクデバイスについてブートブロックとカーネルの
認識が混乱しているために起こります. このエラーは通常 2 台の IDE
ディスクがそれぞれ別の IDE コントローラのマスターかシングルデバイス
として接続されているシステムにおいて, FreeBSD がセカンダリ IDE
コントローラに接続されたディスクにインストールされている場合に発生します.
ブートブロックは FreeBSD が wd1 (2 台目の BIOS ディスク) にインストール
されていると認識するのに対し, カーネルは セカンダリ IDE の 1 台目の
ハードディスクである wd2 にインストールされていると認識するのです.
デバイスプローブの後で, カーネルはブートブロックがブートディスクだと
認識したディスクである wd1 を mount しようとします. 実際には
ブートディスクは wd2 なので失敗してしまうのです.
<p>この問題を解決するには, 以下のどれか一つを行ってください:
<enum>
<item>Boot: プロンプトで,
<tt>1:wd(2,a)kernel</tt> と入力してエンターキーを押します.
システムが起動したら,
<verb>
echo "1:wd(2,a)kernel" > /boot.config
</verb>
というコマンドを実行してこれをデフォルトのブート文字列とします.
<item>FreeBSD のディスクをプライマリ IDE コントローラに接続して,
ハードディスクが連続したドライブ番号で認識されるようにします.
<item>カーネルのコンフィグレーションファイルで wd の行を以下のように
変更してから<url url="../handbook/kernelconfig.html"
name="カーネルを再構築"> を行い, 新しいカーネルをインストールします.
<verb>
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # この行をコメントアウト
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # wd2 から wd1 へ変更
disk wd2 at wdc1 drive 1 # wd3 から wd2 へ変更
</verb>
ディスクの接続を変更して元の設定に戻したい場合は, ディスクを
お望みの設定の通りの接続に戻してからリブートします.
システムは正常に起動するはずです.
</enum>
<sect1>
<heading>メモリの大きさの制限は?</heading>
<p>メモリは, (論理的な) 限界は 4 ギガバイトです. 1 ギガバイトのものは
すでにテストがされています. 普通は i386 の PC ではそれ以上のメモリを
サポートしているものを買うことはできません.
<sect1>
<heading>ffs ファイルシステムの大きさの制限は?</heading>
<p>ffs ファイルシステムは, 論理的な最大の上限は 8 テラバイト (2G ブロック) か,
デフォルトのブロックサイズを 8K とすると 16 テラバイトとなります.
実際問題として, 1 テラバイトのソフトウェアの限界がありますが,
修正すれば 4 テラバイトのファイルシステムが可能です (実際に存在します).
<p>一つの ffs のファイルの最大のサイズは, ブロックサイズが 4K の場合で
約 1 ギガブロック (4 テラバイト) です.
<verb>
maxfilesize
----------------------------------
2.2.7 3.0
fs block size -stable -current works should-work
------------- ------- -------- ----- -----------
4K 4T-1 4T-1 4T-1 4+T
8K 32+G 8T-1 32+G 16T-1
16K 128+G 16T-1 128+G 32T-1
32K 512+G 32T-1 512+G 64T-1
64K 2048+G 64T-1 2048+G 128T-1
</verb>
<p>fs ブロックサイズが 4K の場合は三重間接ブロックが使用され,
いづれの場合でも三重間接ブロックを使用して表現できる最大の
fs ブロック番号 (およそ 1K^3 + 1K^2 + 1K) に制限されるはずなのですが,
実際は fs ブロック番号の (間違った) 上限 1G-1 で制限されます.
fs ブロック番号の制限は 2G-1 となるはずです. 2G-1 付近に
fs ブロック番号のバグが多少ありますが, fs ブロックサイズが
4K の場合は, ここまでのブロック番号には到達しません.
<p>ブロックサイズが 8K 以上の場合, いづれの場合も fs ブロック番号の
上限 2G-1 で制限されるはずですが, 実際は fs ブロック番号の上限
1G-1 で制限されます. 例外的に -stable では三重間接ブロックまでは
到達しないため, 制限は二重間接ブロックで表現できる最大の
fs ブロック番号 (およそ (blocksize/4)^2 + (blocksize/4)) となります.
-current ではこの制限を超えると問題を引き起こすかもしれません.
正しい制限値である 2G-1 ブロックを使用すると明らかに問題が出ます.
<sect1>
<heading>フロッピーに 1 テラバイトのファイルを格納するには?</heading>
<p>わたしのところではフロッピーにいくつかの実際のファイルを保存しています :-).
最大のファイルサイズは最大のディスクサイズとはあまり関係はありません.
最大のディスクサイズは 1TB です. ファイルサイズがディスクサイズより
大きくなりうるというのは仕様です.
<p>以下の例は, 32K のディスク容量 (3 つの間接ブロックと
1 つのデータブロック) を使って, 小さなルートパーティションに
8T-1 の大きさのファイルを作成します. ここでの dd コマンドは
大きなファイルが扱えるものが必要です.
<verb>
ttyv0:bde@alphplex:/tmp/q> cat foo
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
ttyv0:bde@alphplex:/tmp/q> sh foo
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27702 31619 47% /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
32 z
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27734 31587 47% /
ttyv0:bde@alphplex:/tmp/q> exit
</verb>
<p>Bruce Evans, September 1998
</sect>