<!doctype linuxdoctr system>

<!-- 
$Id: Bootdisk-HOWTO.sgml,v 1.12 2000/05/12 15:15:46 nakano Exp $
-->

<article>

      <title>The Linux Bootdisk HOWTO</title>
      <author>
	Tom Fawcett (<tt>fawcett@croftj.net</tt>)
	<newline>
      </author>
      <date>3.6, January 2000</date>
<trans>The Linux Japanese FAQ Project (<tt>JF@linux.or.jp</tt>)
<tdate>v3.6j, 20 January 2000

      <abstract>

<!--
This document describes how to design and build your own boot/root diskettes
for Linux.  These disks can be used as rescue disks or to test new system
components.  If you haven't read the Linux FAQ and related documents, such as
the Linux Installation HOWTO and the Linux Install Guide, you should not be
trying to build boot diskettes.  If you just want a rescue disk to have for
emergencies, see Appendix <ref id="distbootdisks" name="Pre-made
bootdisks">.
-->
この文書は Linux 用のブートディスク/ルートディスクを独自に設計・作成す
る方法について述べたものです．これらのディスクはレスキューディスクとし
て使ったり，システムの新しいコンポーネントをテストする時に使えます．
これらのディスクを作る前に， Linux Installation HOWTO や
Linux Install Guide などの FAQ や関連文書を読んでください．読んでいな
い方はブートディスクを作るべきではありません．単に緊急用のレスキューディ
スクが欲しいだけならば，
付録 A <ref id="distbootdisks" name="既製のブートディスクの入手">をご覧ください．
</abstract>

    <toc>

<!--    <sect>Preface.<p> -->
    <sect>前書き<p>

<!--
<bf>Note: This document may be outdated.</bf> If the date on the title page
is more than six months ago, please check the Linux Documentation Project
homepage <URL url="http://linuxdoc.org/HOWTO/Bootdisk-HOWTO.html">
to see if a more recent version exists.
-->
<bf>注意: この文書の内容は古いかもしれません</bf>．表紙の日付が 6 ヵ月
以上古ければ，Linux Documentation Project のホームページ
<URL url="http://linuxdoc.org/HOWTO/Bootdisk-HOWTO.html">
をチェックして，もっと新しい版が出ていないかどうか確認してください．

<!--
Although this document should be legible in its text form, it looks
<em/much/ better in Postscript (<tt/.ps/) or HTML because of the
typographical notation used.  We encourage you to select one of these
forms.  The Info version, as of this writing, ends up so damaged as to
be unusable.
-->
この文書はテキスト形式でも読めないことはないと思いますが，
Postscript (<tt/.ps/)や HTML のほうが<em/ずっと/読みやすいでしょう．
用途に応じて様々なフォントが使えますから．これらの形式の
いずれかを選ぶのがよいと思います．Info 形式のものは，現時点ではまとも
な変換ができていないので採録していません．

<!-- <sect1>Version notes.<p> -->
<sect1>バージョンに関する注意<p>
<nidx/kernel, versions/

<!--
Graham Chapman (<tt>grahamc@zeta.org.au</tt>) wrote the original
Bootdisk-HOWTO and he supported it through version 3.1.  Tom Fawcett
(<tt>fawcett@croftj.net</tt>) added a lot of material for kernel 2.0,
and he is the document's maintainer as of version 3.2.  Much of
Chapman's original content remains.
-->
Graham Chapman さん(<tt>grahamc@zeta.org.au</tt>)がオリジナルの
Bootdisk-HOWTO を作成し，バージョン 3.1 まで管理していました．私 Tom
Fawcett (<tt>fawcett@croftj.net</tt>)がカーネル 2.0 に合わせてかなりの
量を書き足し，バージョン 3.2 以降を管理しています．Chapman さんのオリ
ジナルの内容もまだたくさん残っています．

<!--
This document is intended for <bf/Linux kernel 2.0 and later/.  If you
have an older kernel (1.2.xx or before), please consult previous
versions of the Bootdisk-HOWTO archived on <url
url="http://www.zeta.org.au/~grahamc/linux.html" name="Graham
Chapman's homepage">.
-->
この文書は<bf/Linux カーネル 2.0 以降/を想定しています．古いカーネル
(1.2.xx 以前)を使っている人は，
<url url="http://www.zeta.org.au/~grahamc/linux.html" name="Graham
Chapman さんのホームページ">にアーカイブされている古いバージョンの
Bootdisk-HOWTO をご覧ください．

<!--
This information is intended for Linux on the <bf/Intel/ platform.  Much of
this information may be applicable to Linux on other processors, but we have
no first-hand experience or information about this.  If anyone has experience
with bootdisks on other platforms, please contact us.
-->
本文書の情報は <bf/Intel/ プラットフォーム上で動作する Linux を想定し
ています．多くの情報は他のプロセッサで動く Linux でも使えると思いますが，
著者らはこれらに直接触れた経験がありませんし，あまり詳しくありません。
他のプラットフォームでブートディスクを作成した経験をお持ちの方は，ぜひ
ご連絡ください．

<!--O
<sect1>Yet to do.<p>
-->
<sect1>まだできていないこと<p>

<!--O
Any volunteers?
-->
手伝ってくださる方はいませんか?

<enum>

<!--O
<item>Describe (or link to another document that describes) how to create other
bootable disk-like things, such as CDROMs, ZIP disks and LS110 disks.
-->
<item>例えば CD-ROM や ZIP ディスク，LS110 ディスクなど，起動ディスク
のように使える別のメディアの作り方を説明する(あるいは説明している他の
文書へのリンクを用意する)．

<!--O
<item>Describe how to deal with the huge <file>libc.so</file> shared
libraries.  The options are basically to get older, smaller libraries or to
cut down existing libraries.
-->
<item>巨大な <file>libc.so</file> 共有ライブラリの扱い方を説明する．
選択肢は基本的に，古くて小さいライブラリを入手するか，または既存の
ライブラリを切り詰めるかのどちらかでしょう．

<!--O
<item>Re-analyze distribution bootdisks.  Upgrade the "How the Pros do it"
section.
-->
<item>ディストリビューションの起動ディスクの分析をやり直す．
「プロが使う方法」の章を更新する．

<!--O
<item>Delete section that describes how to upgrade existing distribution
bootdisks.  This is usually more trouble than it's worth.
-->
<item>ディストリビューションに用意されている起動ディスクのアップグレード
の方法を説明している章を削除する．この章は役に立つよりも
問題のもとになっているほうが多いようです．

<!--O
<item>Rewrite/streamline the Troubleshooting section.
-->
<item>トラブルシューティングの章を書き直すか，整理する．

</enum>


<!-- <sect1>Feedback and credits.<p> -->
<sect1>フィードバックとクレジット<p>

<!--
We welcome any feedback, good or bad, on the content of this document.  We
have done our best to ensure that the instructions and information herein are
accurate and reliable.  Please let us know if you find errors or omissions.
-->
いい知らせであれ悪い知らせであれ，本文書の内容に対してのフィードバック
は歓迎です．文書中では操作手順や情報はできるだけ正確かつ信頼できるもの
にしたつもりですが，誤りや抜けがあればぜひお知らせください．

<!--
We thank the many people who assisted with corrections and suggestions.  Their
contributions have made it far better than we could ever have done alone.
-->
訂正や提案の形で本文書をサポートしてくれた多くの方々に感謝します．この
ような貢献のおかげで，自分達だけで作業した場合よりもずっとよい文書にな
りました．

<!--
Send comments, corrections and questions to the author at the email
address above.  I don't mind trying to answer questions, but please
read section <ref id="troubleshooting" name="Troubleshooting"> first.
-->
コメントや訂正，疑問点などは前述のメールアドレスまで送ってください．筆
者もできるだけ質問に答えるつもりですが，質問の前にはまず
<ref id="troubleshooting" name="トラブルシューティング">の章を読んでく
ださい．

<!--  Change history

v3.6, January 2000.  Changes in this version:
- Fixed some pesky persistent formatting errors.
- Added URL for FHS.
- Updated LDP copyright URL.
- Updated lots of Linuxdoc pointers.

v3.4, April 1999.  Changes in this version:
- Checked and changed URLs.
- Moved NIDX expressions around.  Seems to be a bug in sgmltools that NIDX
  expressions kill anything left on the line, though this doesn't happen
  with IDXs or anything else.
- Added troubleshooting item about "Kernel panic: VFS: Unable to mount root
  fs" which has become a FAQ.
- Removed warning about pruning users from /etc/passwd.  I thought
  archivers stored user/group names; they store UIDs and GIDs.
- Pruned some of the discussions of libraries, added direct mention of need
  to strip libraries (a FAQ because new libcs are huge).
- Updated ldd and file examples in /lib section.

v3.3, November 1998.  Changes in this version:
- Added section on PAM and PAM configuration
- Added section on the /lib/libnss_* stuff
- Added mention of debugfs utility
- Re-checked all the URLs and updated some.  Removed some specific
  filenames so URL points to FTP directory.
- Replaced Graham's root filesystem listing with a Yard listing, since some 
  of Graham's file choices were obsolete.
- Added paragraph on dead login prompts, mantioning PAM, NSS and shadow
  passwords.
- Cleaned up a few indexing problems.  sgml-tools still has a few bugs.

v3.2, June 1998.  Changes in this version:
- Removed Graham Chapman as a co-author, on his request.  Added paragraph to
  Version Notes crediting him with the original versions.
- Fixed up a few index commands that were producing spurious output.
- Updated mount filename and version at ftp.win.tue.nl
- In section "Reducing root filesystem size", added paragraph on reformatting
  diskete to higher density.
- Added paragraph and URLS for tomsrtbt rescue disk to the Pre-made Bootdisks
  section.
- Changed Makefile so that Info versions of this document are no longer
  produced or distributed, because they are completely broken.
- Changed lots of double quotes, fixed a few indexing commands.


v3.1, March 1998

v3.0, early 1998.  Substantial rewrite.

v2.3, 4 April 1997.  Changes in this version:
- Moved first FAQ question ("Why doesn't my disk boot?") 
  into its own section ("Troubleshooting") and added Yard
  troubleshooting information to it.
- Made a few changes suggested by D.Hill and J.R.Ganuza.
- Added ref and label tags in various places.
- Moved scripts and resources to appendices.
- Added URLs for distributions' bootdisks plus mirrors.

v2.2, 1 September 1996. Changes in this version:

- Fix: set ramdisk word via rdev on /dev/fd0 instead of zImage.


v2.1, 18 August 1996. Changes in this version:

Summary: this was a major cleanup to reflect changes between kernel
version 1.2 and 2.0. Specific changes are:

- Chg: replaced shell scripts and directory listings.
- Chg: removed most of the text of "oversize ramdisk" FAQ question.
- Fix: mkfs -i should have been mke2fs -i.
- Fix: missing parameter name in dd command to zero rootdisk device.
- Fix: remove accidental extra parameter from mke2fs command to create
    rootdisk filesystem.
- Chg: minor changes to reflect less reliance on the Bootkit utility.
- Chg: change section cross-references to refer to section title, not
    number (sometime I'll add hypertext links...)
- Add: use cpio as an alternate way of copying files.
- Add: tips for removing unnecessary device special files.
- Add: FAQ question - what to do if nothing happens at boot time.
- Add: various minor changes.


v2.0, 12 June 1996. Changes in this version:

- Add: additional author and maintainer, Tom Fawcett.
- Add: section 6.3, Ramdisk Usage.
- Add: section titled Advanced Bootdisk Creation, which describes how
    to take advantage of ramdisk changes in kernels 1.3.48+
- Chg: rewrite section on /lib directory.
- Chg: various minor tips on changed ramdisk usage.


======================= END OF CHANGE HISTORY  -->

<!-- <sect1>Distribution policy.<p> -->
<sect1>配布の方針<p>

Copyright &copy; 1995,1996,1997,1998,1999,2000 by Tom Fawcett and Graham
Chapman.  This document may be distributed under the terms set forth in the
Linux Documentation Project License at <URL
URL="http://linuxdoc.org/copyright.html">.  Please contact the authors if
you are unable to get the license.
<p>
This is free documentation.  It is distributed in the hope that it will be
useful, but <bf>without any warranty</bf>; without even the implied warranty
of <bf>merchantability</bf> or <bf>fitness for a particular purpose</bf>.

日本語訳:

<p>
Copyright &copy; 1995,1996,1997,1998,1999,2000 by Tom Fawcett and Graham

この文書は <URL URL="http://linuxdoc.org/copyright.html"> で入手できる
Linux Documentation Project License の条項に基づいて配布できます．
ライセンスを入手できない場合には，著者までご連絡ください．
<p>
この文書はフリーです．この文書は有用であることを期待して配布しています
が，<bf/いかなる保証も行いません/．また，<bf>商業利用</bf>や<bf>特定目
的への適合性</bf>に関しても，暗黙の保証も含めていかなる保証も行いませ
ん．

訳注:
この翻訳文書の著作権条項および免責事項に関しては，オリジナルに準ずるも
のとします．

<!--nakano: 二つあるのは混乱のもとのような...
<url url="http://metalab.unc.edu/LDP/COPYRIGHT.html">
-->

<!-- <sect>Introduction.<p> -->
<sect>はじめに<p>

<!--
Linux boot disks are useful in a number of situations, such as:
-->
Linux のブートディスクは色々な場面で役に立ちます．例えば:
<itemize>

<!--
<item>Testing a new kernel.
-->
<item>新しいカーネルのテスト．

<!--
<item>Recovering from a disk failure &mdash; anything from a lost boot sector to a
disk head crash.
-->
<item>ディスク障害からの復旧．このような障害の原因にはブートセクタの消
失やディスクヘッドのクラッシュなど様々なものがあります．

<!--
<item>Fixing a disabled system.  A minor mistake as root can leave your system
unusable, and you may have to boot from diskette to fix it.
-->
<item>壊れたシステムの修復．root ユーザがちょっとミスをしただけでもシス
テムは使えなくなってしまいます．このような場合はフロッピーディスクから
ブートして復旧しなければならないでしょう．

<!--
<item>Upgrading critical system files, such as <file/libc.so/.
-->
<item><file/libc.so/等，クリティカルなシステムファイルの更新．

</itemize>

<!--
There are several ways of obtaining boot disks:
-->
ブートディスクを作成する方法はいくつかあります:

<itemize>

<!--
<item>Use one from a distribution such as Slackware.  This will at
      least allow you to boot.
-->
<item>Slackware のようなディストリビューションのものを用いる．ディスト
リビューションに含まれているブートディスクを用いれば，少なくともブート
はできます．

<!--
<item>Use a rescue package to set up disks designed to be used
      as rescue disks.
-->
<item>レスキューディスク作成ソフトを用いる．

<!--
<item>Learn what is required for each of the types of disk to operate,
      then build your own.
-->
<item>ブートディスクを作成するのに何が必要かを学び，自分自身でブートディ
スクを作成する．

</itemize>

<!--
Some people choose the last option so they can do it themselves.  That
way, if something breaks, they can work out what to do to fix it.
Plus it's a great way to learn about how a Linux system works.
-->
最後の方法を選ぶ人もいます．自力でできるようにするのですね．
これなら何かが壊れた場合でも自力で修復手段を考え出すことがで
きますし，おまけに Linux の動作に関する深い理解が得られます．

<!--
This document assumes some basic familiarity with Linux system administration
concepts.  For example, you should know about directories, filesystems and
floppy diskettes.  You should know how to use <tt/mount/ and <tt/df/.  You
should know what <file>/etc/passwd</file> and <file>fstab</file> files are for
and what they look like.  You should know that most of the commands in this
HOWTO should be run as root.
-->
この文書では読者の皆さんは Linux のシステム管理の基本概念を理解して
いるものとします．例えば，ディレクトリやファイルシステム，フロッピーディ
スクについては知っていることとします．<tt/mount/ や <tt/df/ コマンドの
使い方， <file>/etc/passwd</file> ファイルや <file>fstab</file>ファイ
ルの目的や内容も知っている必要があります．また，この HOWTO で使うコマ
ンドの大部分は root で実行しなければならない点についても理解しているこ
ととします．
 
<!--
Constructing your own bootdisk from scratch can be complicated.  If you
haven't read the Linux FAQ and related documents, such as the Linux
Installation HOWTO and the Linux Installation Guide, you should not be
trying to build boot diskettes.  If you just need a working bootdisk for
emergencies, it is <em>much</em> easier to download a prefabricated one.
See Appendix <ref id="distbootdisks" name="Pre-made bootdisks">, below, for
where to find these.
-->
ゼロから独自のブートディスクを作ることは難しいかもしれません．これらの
ディスクを作る前に， Linux Installation HOWTO や Linux Installation Guide 
などの FAQ， 関連文書を読んでください．読んでいない方はブートディスクを
作るべきではありません．単に緊急時に使えるブートディスクが必要なだけなら，
出来合いのものをダウンロードしてくるほうが<em/ずっと/簡単です．
このようなブートディスクを入手するには，後述の付録 <ref
id="distbootdisks" name="既製のブートディスクの入手">をご覧ください．

<!-- <sect>Bootdisks and the boot process. <p> -->
<sect>ブートディスクとブートのプロセス<p>
<nidx/boot process/

<!--
A bootdisk is basically a miniature, self-contained Linux system on a floppy
diskette.  It must perform many of the same functions that a complete
full-size Linux system performs.  Before trying to build one you should
understand the basic Linux boot process.  We present the basics here, which
are sufficient for understanding the rest of this document.  Many details and
alternative options have been omitted.
-->
ブートディスクは基本的にはシステムのミニチュアであり，必要なものが全て
揃った Linux システムを1枚のフロッピーディスクに収めたものです．このミ
ニチュアシステムは，完全なフルサイズの Linux システムの機能の多くを実
行できなければなりません．したがって，ブートフロッピーを作る前には 
Linux のブートのプロセスの基本を理解しておくべきです．ここで基礎知識を
説明しますが，これを理解できていれば本書の残りの部分もわかると思います．
ただし，詳しい部分や変更可能なオプションについては省略している部分も多
くあります．

<!-- <sect1>The boot process.<p> -->
<sect1>ブートのプロセス<p>
<nidx/boot sector/

<!--
All PC systems start the boot process by executing code in ROM
(specifically, the <idx/BIOS/) to load the sector from sector 0,
cylinder 0 of the boot drive.  The <idx/boot drive/ is usually the
first floppy drive (designated <tt>A:</tt> in DOS and
<file>/dev/fd0</file> in Linux).  The BIOS then tries to execute this
sector.  On most bootable disks, sector 0, cylinder 0 contains either:
-->
全ての PC システムのブート処理では，まず ROM のコード(特に 
<idx/BIOS/)が実行されます．このコードはブートドライブのシリンダ 0，セ
クタ 0 にあるセクタを読み込んで実行します．<idx/ブートドライブ/は普通
はフロッピーディスクドライブ (DOS では<tt>A:</tt>，Linux では
<file>/dev/fd0</file>) です．BIOS は次にこのセクタを実行しよ
うとします．ブート可能なディスクのシリンダ 0，セクタ 0 には，
たいてい以下のどちらかが入っています:
<itemize>

<!--
<item>code from a boot loader such as LILO, which locates the kernel,
      loads it and executes it to start the boot proper.
-->
<item>LILO のようなブートローダのコード．ブートローダはカーネルの位置
を見つけてそれをロード・実行してブートを適切に開始します．

<!--
<item>the start of an operating system kernel, such as Linux.
-->
<item>Linux のような OS のカーネルの先頭部分．

</itemize>

<!--
If a Linux kernel has been raw-copied to a diskette, the first sector of the
disk will be the first sector of the Linux kernel itself.  This first sector
will continue the boot process by loading the rest of the kernel from the boot
device.
-->
Linux カーネルがフロッピーに生書きされている(raw デバイスとして書き込
まれている)場合，フロッピーの最初のセクタは Linux カーネルそのものにな
ります．この最初のセクタはブートデバイスからカーネルの残りの部分をロー
ドしてブート処理を続けます．

<!--
Once the kernel is completely loaded, it goes through some basic
device initialization.  It then tries to load and mount a
<bf><idx/root filesystem/</bf> from some device.  A root filesystem is
simply a filesystem that is mounted as ``/''.  The kernel has to be
told where to look for the root filesystem; if it cannot find a
loadable image there, it halts.
-->
カーネルのロードが完全に終了すると，ロードされたカーネルは基本デバイス
を初期化します．次にデバイスのどれかを<bf><idx/ルートファイルシステム/</bf>
としてロード・マウントします．ルートファイルシステムはごく普通の
ファイルシステムで、``/'' としてマウントされます。
カーネルにはルートファイルシステムの場所を指示してやらなければなり
ません．この場所にロードできるイメージが無ければ，カーネルは停止してし
まいます．

<!--
In some boot situations &mdash; often when booting from a diskette &mdash; the root
filesystem is loaded into a <bf><idx/ramdisk/</bf>, which is RAM accessed
by the system as if it were a disk.  There are two reasons why the system
loads to ramdisk.  First, RAM is several orders of magnitude faster than a
floppy disk, so system operation is fast; and second, the kernel can load a
<bf><idx/compressed filesystem/</bf> from the floppy and uncompress it onto
the ramdisk, allowing many more files to be squeezed onto the diskette.
-->
状況によっては -- フロッピーからブートする場合にはしばしば -- ルートファ
イルシステムは <bf><idx/RAM ディスク/</bf> にロードされます．これはシステム
からディスクのようにアクセスできる RAM です．システムを RAM ディスクにロー
ドする理由は 2 つあります．まず RAM はフロッピーディスクよりも桁違いに速
く，システムを速く操作できるからです．またカーネルは
<bf><idx/圧縮されたファイルシステム/</bf> をフロッピーから読み込んで，
これを RAM ディスクに展開することができるからです．これを使えばフロッピー
にずっと多くのファイルを入れることができます．

<!--
Once the root filesystem is loaded and mounted, you see a message like:
-->
ルートファイルシステムがロード，マウントされると，次のようなメッセージ
が表示されます:

<verb>
	VFS: Mounted root (ext2 filesystem) readonly.
</verb>

<ncdx>init</ncdx>
<ncdx>inittab</ncdx>
<ncdx>sysinit</ncdx>

<!--
At this point the system finds the <tt/init/ program on the root filesystem
(in <tt>/bin</tt> or <tt>/sbin</tt>) and executes it.  <tt/init/ reads its
configuration file <file>/etc/inittab</file>, looks for a line designated
<tt/sysinit/, and executes the named script .  The <tt/sysinit/ script is
usually something like <file>/etc/rc</file> or
<file>/etc/init.d/boot</file>.  This script is a set of shell commands that
set up basic system services, such as:
-->
次にシステムはルートファイルシステム(の <tt>/bin</tt> または 
<tt>/sbin</tt>ディレクトリ)で<tt/init/プログラムを見つけ，これを実行し
ます．<tt/init/ は設定ファイル<file>/etc/inittab</file>を読み込み，
<tt/sysinit/ と書いてある行を探し，そこで指定されているスクリプトを実
行します．<tt/sysinit/スクリプトは通常は <file>/etc/rc</file> や 
<file>/etc/init.d/boot</file> 等です．このスクリプトはいろいろなシェル
コマンドが書かれたものであり，以下のような基本的なシステムサービスの設
定を行います:

<itemize>

<!--
<item>Running <tt><cdx/fsck/</tt> on all the disks,
<item>Loading necessary kernel <idx/modules/,
<item>Starting swapping,
<item>Initializing the network,
<item>Mounting disks mentioned in <tt><cdx/fstab/</tt>.
-->
<item>全てのディスクに対して <tt><cdx/fsck/</tt> を実行．
<item>必要なカーネル<idx/モジュール/のロード．
<item>スワップの開始．
<item>ネットワークの設定．
<item><tt><cdx/fstab/</tt>に記述されたディスクのマウント．

</itemize>

<!--
This script often invokes various other scripts to do modular
initialization.  For example, in the common SysVinit structure, the
directory <file>/etc/rc.d/</file> contains a complex structure of
subdirectories whose files specify how to enable and shut down most system
services.  However, on a bootdisk the sysinit script is often very simple.
-->
システムの初期化をモジュール化するため，このスクリプトから別のスクリプ
トを複数個起動することもよく行われます．例えば標準的な SysVinit の構造
では，<file>/etc/rc.d/</file> ディレクトリに複雑なサブディレクトリがあ
り，それぞれのサブディレクトリにはシステムサービスの起動と停止の方法を
指定しているファイルがあります．ですが，ブートディスクの sysinit スク
リプトは普通はとてもシンプルなものになるでしょう．

<!--
When the sysinit script finishes control returns to <tt/init/, which
then enters the <em/default runlevel/, specified in <tt/inittab/ with
the <tt/initdefault/ keyword.  The runlevel line usually specifies a
program like <tt><cdx/getty/</tt>, which is responsible for handling
commununications through the console and ttys.  It is the <tt/getty/
program which prints the familiar ``<tt/login:/'' prompt.  The
<tt/getty/ program in turn invokes the <tt><cdx/login/</tt> program to
handle login validation and to set up user sessions.
-->
sysinit スクリプトが終了すると，制御は <tt/init/ に返されます．
<tt/init/ は続いて<em/デフォルトの実行レベル/に入ります(これは 
<tt/inittab/ の <tt/initdefault/ の項目で指定します)．実行レベルの行で
は普通は <tt><cdx/getty/</tt> のようなプログラムを指定します．ここで指
定したプログラムはコンソールや tty 経由の通信を処理します．おなじみの
``<tt/login:/'' というプロンプトを出しているのも <tt/getty/ プログラム
です．<tt/getty/ プログラムは続いて <tt><cdx/login/</tt> プログラムを
実行し，これがログイン認証やユーザセッションの設定を行います．

<!-- <sect1>Disk types.<p> -->
<sect1>ディスクの種類<p>

<!--
Having reviewed the basic boot process, we can now define various
kinds of disks involved.  We classify disks into four types.  The
discussion here and throughout this document uses the term ``disk'' to
refer to floppy diskettes unless otherwise specified, though most of
the discussion could apply equally well to hard disks.
-->
これまで説明した基本的なブート処理を理解していれば，ブートに必要となる
色々な種類のディスクを定義することができます．ここではディスクを4つに
分類します．特に断らない限り，これ以降の議論では「ディスク」という言葉
はフロッピーディスクを指すものとします．ただし，議論の大部分はハードディ
スクにも同様に適用できるだろうと思います．

<descrip>
<!--
<tag/boot/ A disk containing a kernel which can be booted.  The disk
   can be used to boot the kernel, which then may load a root file system on
   another disk.  The kernel on a bootdisk usually must be told where to find
   its root filesystem.
-->
<tag/ブート/ ブート可能なカーネルを含むディスク．このディスクを使えば
カーネルをブートすることができます．この時，他のディスクにあるルートファ
イルシステムを使うこともできます．通常ブートディスクに入っているカーネ
ルには，ルートファイルシステムの場所を教えてやらなければなりません．

<!--
   Often a bootdisk loads a root filesystem from another diskette, but
   it is possible for a bootdisk to be set up to load a hard disk's
   root filesystem instead.  This is commonly done when testing a new
   kernel.  (in fact, ``<tt/make zdisk/'' will create such a bootdisk
   automatically from the kernel source code).
-->
ブートディスクは他のフロッピーにあるルートファイルシステムをロードする
ことが多いですが，ハードディスク上のルートファイルシステムをロードする
ようにブートディスクを設定することもできます．この方法は新しいカーネル
のテストをする時によく使います(実は，``<tt/make zdisk/'' とすれば，
カーネルのソースコードから自動的にこのようなブートディスクを作成するこ
とができます)．

<!--
<tag>root</tag> A disk with a filesystem containing files
    required to run a Linux system.  Such a disk does not necessarily
    contain either a kernel or a boot loader.  <nidx/root disk/
-->
<tag/ルート/ Linux のシステムを動作させるために必要なファイルが入って
いるファイルシステムを持つディスクです．カーネルやブートローダは
含まれなくてもかまいません． <nidx/root disk/

<!--
    A root disk can be used to run the system independently of any other
    disks, once the kernel has been booted.  Usually the root disk is
    automatically copied to a ramdisk.  This makes root disk accesses much
    faster, and frees up the disk drive for a utility disk.
-->
一旦カーネルがブートすれば，他のディスクなしに，ルートディスクだけ
でシステムを動作させることができます．普通はルートディスクは自動的に 
RAM ディスクにコピーされます．こうすればずっと速くルートディスクにアクセス
できますし，ディスクドライブが空くのでユーティリティディスクを利用する
こともできます．

<!--
<tag>boot/root</tag> A disk which contains both the kernel 
    <nidx>boot/root disk</nidx>
    and a root filesystem.  In other words, it contains everything necessary
    to boot and run a Linux system without a hard disk.  The advantage of this
    type of disk is that is it compact &mdash; everything required is on a single
    disk.  However, the gradually increasing size of everything means that it
    is increasingly difficult to fit everything on a single diskette, even
    with compression.
-->
<tag>ブート/ルート</tag> カーネルと
<nidx>boot/root disk</nidx>
ルートファイルシステムが両方入っているディスクです．言い換えれば，ハー
ドディスク無しで Linux システムの起動と実行を行うために必要なものが全
て入っているディスクです．このようなディスクの利点はコンパクトである 
-- 1 枚のディスクの中に必要なもの全てが納められている -- こ
とです．しかし昨今では色々なもののサイズが大きくなってきていますので，
1 枚のディスクに必要なもの全てを収めることは(圧縮を使っても)難しくなり
つつあります．

<!--
<tag>utility</tag> A disk which contains a filesystem, but is not
    intended to be mounted as a root file system.  It is an additional data
    disk.  You would use this type of disk to carry additional utilities where
    you have too much to fit on your root disk. <nidx/utility diskette/
-->
<tag>ユーティリティ</tag>ファイルシステムを含みますが，ルートファイル
システムとしてマウントするために作られたのではないディスク． ユーティ
リティディスクは付加的なデータディスクです．このタイプのディスクはルー
トディスクに入り切らない復旧用のユーティリティなどを別に入れておくため
に使います．

</descrip>

<!--
In general, when we talk about ``building a bootdisk'' we mean
creating both the boot (kernel) and root (files) portions.  They may
be either together (a single boot/root disk) or separate (boot + root
disks).  The most flexible approach for rescue diskettes is probably
to use separate boot and root diskettes, and one or more utility
diskettes to handle the overflow.
-->
一般に「ブートディスクの作成」という時は，ブート(カーネル)とルート(ファ
イル)の部分を両方作成することを指します．これらは同じディスクになるこ
と(1 枚のブート/ルートディスク)も，別のディスクになること(ブートディス
ク + ルートディスク)もあります．レスキューディスクの用途には，別々のブー
トディスクとルートディスクを組み合わせて使えばとても柔軟に運用できるで
しょう．そして，入りきらない分に対してユーティリティディスクを別に用意
するとよいでしょう．

<!-- <sect>Building a root filesystem.<p> -->
<sect>ルートファイルシステムの作成<p>
<label id="buildroot">

<!--
Creating the root filesystem involves selecting files necessary for the
system to run.  In this section we describe how to build a
<em><idx/compressed root filesystem/</em>.  A less common option is to
build an uncompressed filesystem on a diskette that is directly mounted as
root; this alternative is described in section <ref id="nonramdiskroot"
name="Non-ramdisk Root Filesystem">.
-->
ルートファイルシステムを作る際には，システムを実行するために必要なファ
イルを選択する必要があります．この章では，
<em><idx/圧縮形式のルートファイルシステム/</em>の作り方を説明します．
あまり行われませんが、直接ルートファイルシステムとしてマウントされる，
圧縮形式でないファイルシステムをフロッピー上に作る方法もあります．この
方法は<ref id="nonramdiskroot" name="非 RAM ディスクのルートファイルシステム">
の章で説明します．

<!-- <sect1>Overview.<p> -->
<sect1>概要<p>

<!--
A root filesystem must contain everything needed to support a full Linux
system.  To be able to do this, the disk must include the minimum requirements
for a Linux system:
-->
root ファイルシステムには，完全に動作する Linux システムに必要なファイ
ル全てが入っていなければなりません．そのためディスクには Linux システ
ムにとって必要最小限のファイルが入っていなければなりません:

<!--
<itemize>
<item>The basic file system structure,
<item>Minimum set of directories: <tt>/dev, /proc, /bin, /etc, /lib, /usr,
	/tmp</tt>,
<item>Basic set of utilities: <tt>sh, ls, cp, mv</tt>, etc.,
<item>Minimum set of config files: <tt>rc, inittab, fstab</tt>, etc.,
<item>Devices: <tt>/dev/hd*, /dev/tty*, /dev/fd0</tt>, etc.,
<item>Runtime library to provide basic functions used by utilities.
</itemize>
-->
<itemize>
<item>基本的なファイルシステム構造
<item>最低限必要なディレクトリ: <tt>/dev, /proc, /bin, /etc, /lib, /usr,
	/tmp</tt>
<item>基本的なユーティリティ: <tt>sh, ls, cp, mv</tt>等
<item>最低限必要な設定ファイル: <tt>rc, inittab, fstab</tt>等
<item>デバイス: <tt>/dev/hd*, /dev/tty*, /dev/fd0</tt>等
<item>ユーティリティが使う実行時ライブラリ
</itemize>

<!--
Of course, any system only becomes useful when you can run something
on it, and a root diskette usually only becomes useful when you
can do something like:
-->
もちろん何かがその上で動かなければシステムは役に立ちません．以下のよう
なことができなければ，ルートディスクは役に立つとは言えません:

<itemize>
<!--
<item>Check a file system on another drive, for example to check your root
file system on your hard drive, you need to be able to boot Linux from
another drive, as you can with a root diskette system.  Then you can run
<tt><cdx/fsck/</tt> on your original root drive while it is not
mounted.
-->
<item>他のドライブにあるファイルシステム(例えばハードディスク上のルー
トファイルシステム)の検査．これを行なうには，検査したいディスクとは別
のドライブ(例えばルートディスク)で Linux を立ち上げ，検査したいディ
スクをマウントしていない状態で <tt><cdx/fsck/</tt> を実行する必要があります．

<!--
<item>Restore all or part of your original root drive from backup
using archive and compression utilities such as <tt/cpio, tar, gzip/
and <tt/ftape/.
-->
<item>バックアップから元のルートドライブの全部または一部を
<tt/cpio, tar, gzip, ftape/ 等のアーカイブや圧縮用のユーティリティを用
いて復元する作業．

</itemize>


<!--
We will describe how to build a <em/compressed/ filesystem, so called because
it is compressed on disk and, when booted, is uncompressed onto a ramdisk.
<nidx/compressed root filesystem/
With a compressed filesystem you can fit many files (approximately six
megabytes) onto a standard 1440K diskette.  Because the filesystem is much
larger than a diskette, it cannot be built on the diskette.  We have to build
it elsewhere, compress it, then copy it to the diskette.
-->
ここで<em/圧縮形式/のファイルシステムの作り方を説明します．このファイ
ルシステムはディスク上では圧縮されていて，起動時に RAM ディスク上に展
開されます．
<nidx/compressed root filesystem/
圧縮形式のファイルシステムを使うと，標準の 1.44M のフロッピーにたくさ
んのファイル(約 6 メガバイト)を入れることができます．このファイルシステム
はフロッピーよりもずっと大きいため，フロッピー上で作ることはできません．
したがって，他の場所で作成して圧縮をしてからフロッピーに書き込まなけれ
ばなりません．

<!-- <sect1>Creating the filesystem.<p> -->
<sect1>ファイルシステムの作成<p>
<label id="creatingrootfs">

<!--
In order to build such a root filesystem, you need a spare device that
is large enough to hold all the files before compression.  You will
need a device capable of holding about four megabytes.  There are
several choices:
-->
このようなルートファイルシステムを作成するには，圧縮前のファイル全てを
格納できる大きさを持つデバイスが必要になります．およそ 4 メガバイト程
度の容量を持つデバイスが必要になるでしょう．いくつかの候補を以下に挙げ
ます:

<itemize>

<!--
<item>Use a <bf><idx/ramdisk/</bf> (DEVICE = <file>/dev/ram0</file>).  In this case,
memory is used to simulate a disk drive.  The ramdisk must be large enough
to hold a filesystem of the appropriate size.  If you use LILO, check your
configuration file (<file>/etc/lilo.conf</file>) for a line like:
-->
<item><bf><idx/ramdisk/</bf> (DEVICE = <file>/dev/ram0</file>)を用いる
方法．この場合はメモリ上に仮想的なディスクドライブが作成されます． 
RAM ディスクは適切なサイズのファイルシステムを納めるのに十分な容量を持っ
ていなければなりません． LILO を使っているならば，設定ファイル
(<file>/etc/lilo.conf</file>)に以下のような行を記述してください:

<verb>
	RAMDISK_SIZE = nnn
</verb>
<nidx/RAMDISK&lowbar;SIZE, LILO parameter/
<!--
which determines the maximum RAM that can be allocated to a ramdisk.  The
default is 4096K, which should be sufficient.  You should probably not try
to use such a ramdisk on a machine with less than 8MB of RAM.
-->
これによって，RAM ディスクに割り当てることができる最大の RAM 容量を指
定します．デフォルト値は 4096K です．たぶんこの大きさで十分でしょう．
メモリが 8M より少ないマシンでは，このような設定で RAM ディスクを使う
のは避けたほうがよいでしょう．

<!--
Check to make sure you have a device like <file>/dev/ram0, /dev/ram</file>
or <file>/dev/ramdisk</file>.  If not, create <file>/dev/ram0</file> with
<tt/mknod/ (major number 1, minor 0).
-->
<file>/dev/ram0</file>や<file>/dev/ram</file>, <file>/dev/ramdisk</file>と
いったデバイスファイルがあることを確認しましょう．もしなければ，
<tt/mknod/ を使って <file>/dev/ram0</file> を作りましょう(メジャー番号
は 1, マイナー番号は 0 です)．

<!--
<item>If you have an unused hard disk partition that is large enough (several
megabytes), this is a good solution.
-->
<item>十分な容量(数メガバイト程度)のある未使用のハードディスクパーティ
ションがあれば，これを使うと良いでしょう．

<!--
<item>Use a <bf><idx/loopback device/</bf>, which allows a disk file to be
treated as a device.  Using a loopback device you can create a three
megabyte file on your hard disk and build the filesystem on it.
-->
<item><bf><idx/ループバックデバイス/</bf>の利用．これを使うとディスク
上のファイルをデバイスとして扱うことができます．ループバックデバイスを
使うと，3 メガバイトのファイルをハードディスク上に用意し，その上にファ
イルシステムを作ることができます．
<!--nakano なぜに 3 メガ？(^_^; -->

<!--
Type <tt/man losetup/ for instructions on using loopback devices.  If you
don't have <tt/losetup/, you can get it along with compatible versions of
<tt/mount/ and <tt/unmount/ from the <tt/util-linux/ package in the
directory <url url="ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/">.
-->
ループバックデバイスの使い方は
<tt><htmlurl url="http://www.linux.or.jp/JM/html/util-linux/man8/losetup.8.html"
name="man losetup"></tt> で調べてください．
<tt/losetup/ がなければ，
<url url="ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/">
にある <tt/util-linux/ パッケージに含まれている，対応版
<tt/mount/ と <tt/unmount/ でも同じことができます．

<p>
<!--
If you do not have a loop device (<file>/dev/loop0</file>,
<file>/dev/loop1</file>, etc.) on your system, you will have to create
one with ``<tt>mknod /dev/loop0 b 7 0</tt>''.  One you've installed these
special <tt/mount/ and <tt/umount/ binaries, create a temporary file
on a hard disk with enough capacity (eg, <file>/tmp/fsfile</file>).
You can use a command like
-->
システム上にループバックデバイス(<file>/dev/loop0</file>,
<file>/dev/loop1</file>等)が無ければ，コマンド
``<tt>mknod /dev/loop0 b 7 0</tt>'' を実行して作成しましょう．
既に対応版の <tt/mount/ と <tt/umount/ のバイナリをインストール済みなら，
十分な大きさを持つハードディスクに一時ファイルを作成します(ここでは
<file>/tmp/fsfile</file> とします)．次のようなコマンドを使います:

<tscreen>
        dd if=/dev/zero of=/tmp/fsfile bs=1k count=nnn
</tscreen>
<!--
to create an <em/nnn/-block file.
-->
これにより，<em/nnn/ ブロックのファイルが作成されます．

<!--
Use the file name in place of DEVICE below.  When you issue a mount
command you must include the option ``<tt>-o loop</tt>'' to tell mount
to use a loopback device.  <nidx/loopback device/
For example:
-->
以下の手順でデバイス名を指定するところでは， DEVICE の代わりにこの作成
したファイルの名前を使ってください． mount をループバックデバイスに対し
て使うには ``<tt>-o loop</tt>'' オプションを用います．<nidx/loopback device/
以下に例を示します:

<verb>
	mount -o loop -t ext2 /tmp/fsfile /mnt
</verb>

<!--
will mount <file>/tmp/fsfile</file> (via a loopback device) at the mount
point <tt>/mnt</tt>.  A <tt/df/ will confirm this.
-->
このようにすればファイル <file>/tmp/fsfile</file> が <tt>/mnt</tt>に
(ループバックデバイス経由で)マウントされます． <tt/df/ コマンドを使っ
て確認してください．
</itemize>

<!--
After you've chosen one of these options, prepare the DEVICE with:
-->
以上のどれかを用いてデバイスを作ったら，まず次のようなコマンドを実行し
ます．
<verb>
	dd if=/dev/zero of=DEVICE bs=1k count=3000
</verb>

<!--
This command zeroes out the device.  This step is important because the
filesystem on the device will be compressed later, so all unused
portions should be filled with zeroes to achieve maximum compression.
-->
このコマンドによってデバイスの中身が 0 で埋め尽くされます．圧縮ファイ
ルシステムを作成するにあたってはこの作業は重要です．未使用の部分を全て 
0 にしておくと圧縮率を最大にできるからです．

<nidx/inodes, allocation/
<!--
Next, create the filesystem.  The Linux kernel recognizes two file system
types for root disks to be automatically copied to ramdisk.  These are minix
and ext2, of which ext2 is the preferred file system.  If using ext2, you may
find it useful to use the <tt>-i</tt> option to specify more inodes than the
default; <tt/-i 2000/ is suggested so that you don't run out of inodes.
Alternatively, you can save on inodes by removing lots of unnecessary
<tt>/dev</tt> files.  <tt/mke2fs/ will by default create 360 inodes on a
1.44Mb diskette.  I find that 120 inodes is ample on my current rescue root
diskette, but if you include all the devices in the <tt>/dev</tt> directory
then you will easily exceed 360.  Using a compressed root filesystem allows a
larger filesystem, and hence more inodes by default, but you may still need to
either reduce the number of files or increase the number of inodes.
-->
次にファイルシステムを作成します． RAM ディスクに自動コピーされるルートディ
スクとして Linux カーネルが認識できるファイルシステムには，
minix と ext2 があります．ext2 の方がお勧めです．ext2 を使っている場合は 
<tt>-i</tt> オプションを指定してデフォルトより多くの i-ノードを作って
おくとよいでしょう． <tt/-i 2000/ としておけば i-ノードを使い切る心配
はしなくてよいでしょう．あるいは <tt>/dev</tt> から不必要なファイルを消
して i-ノードを節約してもいいでしょう．デフォルトでは <tt/mke2fs/ は 
1.44 メガのフロッピーに 360 個の i-ノードを作ります．さっき筆者のレスキュー
ディスクを見てみたら 120 個の i-ノードが余っていました．しかし 
<tt>/dev</tt> ディレクトリのファイルを全て含めると 360 個を簡単に越え
てしまうでしょう．圧縮形式のルートファイルシステムを用いるとファイルシ
ステムの大きさが増えますから，デフォルトの i-ノードの数も 360 以上にな
ります．しかしそれでもファイルを減らすか i-ノードを増やすかする必要が
あるでしょう．

<!--
So the command you use will look like:
-->
i-ノードを増やすには，次のようなコマンドを使います:
<verb>
	mke2fs -m 0 -i 2000 DEVICE
</verb>

<!--
(If you're using a loopback device, the disk file you're using should be
supplied in place of this DEVICE.  <tt/mke2fs/ may ask for confirmation.)
<nidx/loopback device/
-->
(ループバックデバイスを使うときは，上記の DEVICE の部分を使用するファ
イルに置き換えてください．この場合，<tt/mke2fs/ は実行の確認をしてくると
思います．)
<nidx/loopback device/

<!--
The <tt/mke2fs/ command will automatically detect the space available and
configure itself accordingly.  The <tt/-m&space;0/ parameter prevents it
from reserving space for root, and hence provides more usable space on
the disk.
-->
<tt/mke2fs/ コマンドは利用可能な容量を自動的に検知し，ファイルシステム
を適切に設定してくれます．<tt/-m&space;0/ パラメータを利用するとスーパー
ユーザ専用の予約領域を作らなくなるので，利用できるディスク領域が増えま
す．

<!--
Next, mount the device:
-->
次にデバイスをマウントします:

<verb>
	mount -t ext2 DEVICE /mnt
</verb>

<!--
(You must create a mount point <tt>/mnt</tt> if it does not already exist.)
In the remaining sections, all destination directory names are assumed
to be relative to <tt>/mnt</tt>.
-->
(まだ作っていなければ，マウントポイント <tt>/mnt</tt> を用意しなければ
なりません．)以降の章では，対象となるディレクトリ名は <tt>/mnt</tt>か
らの相対パスで表すものとします．

<!-- <sect1>Populating the filesystem.<p> -->
<sect1>ファイルシステムの移植<p>

<!--
Here is a reasonable minimum set of directories for your root filesystem:
-->
ルートファイルシステム用の現実的な最小のディレクトリ構成は以下のように
なります:

<itemize>

<!--
<item> <tt>/dev</tt> -/- Devices, required to perform I/O 
<item> <tt>/proc</tt> -/- Directory stub required by the proc filesystem
<item> <tt>/etc</tt> -/- System configuration files
<item> <tt>/sbin</tt> -/- Critical system binaries 
<item> <tt>/bin</tt>  -/- Basic binaries considered part of the system 
<item> <tt>/lib</tt> -/- Shared libraries to provide run-time support
<item> <tt>/mnt</tt> -/- A mount point for maintenance on other disks
<item> <tt>/usr</tt> -/- Additional utilities and applications
-->
<item> <tt>/dev</tt> -- デバイス，I/O の実行に必要
<item> <tt>/proc</tt> -- proc ファイルシステムに必要なディレクトリ
<item> <tt>/etc</tt> -- システム設定ファイル
<item> <tt>/sbin</tt> -- 必須のシステムバイナリ
<item> <tt>/bin</tt>  -- システムの一部とみなされる基本バイナリ
<item> <tt>/lib</tt> -- プログラム実行に使う共有ライブラリ
<item> <tt>/mnt</tt> -- 他のディスクを扱うためのマウントポイント
<item> <tt>/usr</tt> -- その他のユーティリティやアプリケーション
</itemize>

<!--
(The directory structure presented here is for root diskette use only.
Real Linux systems have a more complex and disciplined set of policies,
called the <HTMLURL url="http://www.pathname.com/fhs/2.0/fhs-toc.html"
name="Filesystem Hierarchy Standard">, for determining where files should
go.)
-->
(ここで示したディレクトリ構造はルートフロッピー用のものです．実際の 
Linux システムではもっと複雑ですし，ちゃんとした方針に従っています．こ
の方針は <HTMLURL url="http://www.pathname.com/fhs/2.0/fhs-toc.html"
name="Filesystem Hierarchy Standard"> と呼ばれるもので，ファイルを置
くべき場所を決める規則です．)

<ncdx/proc/<ncdx/mnt/<ncdx/usr/

<!--
Three of these directories will be empty on the root filesystem, so they
only need to be created with <tt/mkdir/.  The <tt>/proc</tt> directory is
basically a stub under which the proc filesystem is placed.  The
directories <tt>/mnt</tt> and <tt>/usr</tt> are only mount points for use
after the boot/root system is running.  Hence again, these directories only
need to be created.
-->
このディレクトリのうち 3 つは<!-- ルートファイルシステム上の -->
空ディレクトリなので，単に<tt/mkdir/コマンドで作成するだけでかまいませ
ん．<tt>/proc</tt>ディレクトリは proc ファイルシステムを配置するための
単なる器です．<tt>/mnt</tt>と<tt>/usr</tt>は，ブート/ルートシステムが
起動した後に使うただのマウントポイントです．というわけで，繰り返しにな
りますが，この 3 つのディレクトリは作成するだけでかまいません．

<!--
The remaining four directories are described in the following sections.
-->
残りの 4 つのディレクトリについては以降の章で説明します．

<!-- 原文のコメント
    Note:  I used to have <tt>/dev</tt> in here but sgml2txt screws up 
    the table of contents badly if you put such things in section headers.
-->



<sect2>/dev<p>

<nidx/device (dev) directory/


<!--
A <tt>/dev</tt> directory containing a special file for all devices to be
used by the system is mandatory for any Linux system.  The directory itself
is a normal directory, and can be created with <tt/mkdir/ in the normal
way.  The device special files, however, must be created in a special way,
using the <tt><cdx/mknod/</tt> command.
-->
<tt>/dev</tt> ディレクトリは全ての Linux システムに必須のディレクトリ
で，システムが使う全てのデバイスに対するスペシャルファイルがここにあり
ます．<tt>/dev</tt> 自身は普通のディレクトリで，ごく普通に <tt/mkdir/ 
コマンドで作成できます．しかしデバイスのスペシャルファイルは特別な方法
(<tt><cdx/mknod/</tt>コマンド)を用いて作成しなければなりません．

<!--
There is a shortcut, though &mdash; copy your existing <tt>/dev</tt> directory
contents, and delete the ones you don't want.  The only requirement is that
you copy the device special files using <tt/-R/ option.  This will copy the
directory without attempting to copy the contents of the files.  <em>Be sure
to use an upper case R</em>.  If you use the lower case switch <tt/-r/, you
will probably end up copying the entire contents of all of your hard disks
&mdash; or at least as much of them as will fit on a diskette!  Therefore,
take care, and use the command:
-->
もっと楽な方法もあります．既に存在する <tt>/dev</tt> ディレクトリの内
容をコピーして，それから不要なものを消去するのです．注意しなければいけ
ない点は，デバイスのスペシャルファイルをコピーする場合には <tt/-R/ オ
プションが必要なことくらいです．<tt/-R/ オプションを指定すると，ファイ
ルの内容はコピーせずにディレクトリがコピーされます．<em>R は必ず大文字
にします</em>．小文字の <tt/-r/ オプションを使うと全く異なった動作とな
ります．ハードディスクの内容が(少なくともフロッピーが一杯になるまで)全
部コピーされてしまうのです! ですから次のコマンドを使うときはオプション
に注意してください:

<verb>
	cp -dpR /dev /mnt
</verb>

<!--
assuming that the diskette is mounted at <tt>/mnt</tt>.  The <tt/dp/ switches
ensure that symbolic links are copied as links, rather than using the
target file, and that the original file attributes are preserved, thus
preserving ownership information.
-->
ここでフロッピーは <tt>/mnt</tt> にマウントされているものとします．
<tt/d/ オプションはシンボリックリンクをコピーする際に，リンク先の実体
ではなくリンクそのものをコピーするための指定です． <tt/p/ オプションは
元のファイルの属性を保存します(したがって所有者情報も保存されます)．

<!--
If you want to do it the hard way, use <tt/ls -l/ to display the major
and minor device numbers for the devices you want, and create 
them on the diskette using <tt/mknod/.
-->
あえて手間のかかる方法でやりたい場合は， コピーしたいデバイスのメジャー
番号とマイナー番号を <tt/ls -l/ で調べ， <tt>mknod</tt> コマンドでフロッ
ピー上にそれらを作成します．

<!--
However the devices are copied, it is worth checking that any special
devices you need have been placed on the rescue diskette.  For example,
<tt><cdx/ftape/</tt> uses tape devices, so you will need to copy all of
these if you intend to access your floppy tape drive from the bootdisk.
-->
デバイスをコピーしたあと，必要なデバイスが全部ちゃんとレスキューディス
クにあるかどうかを確認しましょう．例えば，<tt><cdx/ftape/</tt> はテー
プデバイスを使いますから，ブートディスクからテープデバイスにアクセスす
る予定があるなら，テープのデバイスファイルは全てコピーしておく必要
があります．

<!--
Note that one inode is required for each device special file, and
<idx/inodes/ can at times be a scarce resource, especially on diskette
filesystems.  It therefore makes sense to remove any device special files
that you don't need from the diskette <tt>/dev</tt> directory.  Many
devices are obviously unnecessary on specific systems.  For example, if you
do not have SCSI disks you can safely remove all the device files starting
with <tt/sd/.  Similarly, if you don't intend to use your serial port
then all device files starting with <tt/cua/ can go.
-->
それぞれのデバイスファイルにひとつづつ <idx/i-ノード/が必要です．フロッ
ピーのファイルシステムでは i-ノードは不足しがちですから，必要でないデ
バイスファイルをフロッピーの <tt>/dev</tt>ディレクトリから消しておくと
良いでしょう．明らかに不必要なデバイスが結構あるはずです．例えば SCSI 
ディスクを持っていないのなら <tt/sd/ ではじまる名前のファイルは全て消
してしまえます．同様にシリアルポートを使わないつもりなら <tt/cua/で始
まるファイルも消せます．

<!--
<em>Be sure to include the following files from this directory:</em>
<tt>console, kmem, mem, null, ram, tty1</tt>.
-->
<em>次のファイルはこのディレクトリに必ずなければなりません:</em>
<tt>console, kmem, mem, null, ram, tty1</tt>

<sect2>/etc<p>
<nidx/etc directory/

<!--
This directory must contain a number of configuration files.  On most
systems, these can be divided into three groups:
-->
このディレクトリには多くの設定ファイルが置かれます．大抵のシステムでは
設定ファイルは以下の 3 つに分類できます:

<enum>
<!--
<item>Required at all times, <it/e.g./ <tt/rc, fstab, passwd/.
      <ncdx/rc/<ncdx/fstab/<ncdx/passwd/
<item>May be required, but no-one is too sure.
<item>Junk that crept in. 
-->
<item>絶対に必要なもの．例えば <tt/rc, fstab, passwd/ など．
<item>必要かもしれないけれど，よくわからないもの．
<item>勝手にできてしまうゴミ．
</enum>

<!--
Files which are not essential can be identified with the command:
-->
必要でないファイルは以下のコマンドで見つけることができます:

<tscreen><verb>
	ls -ltru
</verb></tscreen>

<!--
This lists files in reverse order of date last accessed, so if any
files are not being accessed, they can be omitted from a root diskette.
-->
このコマンドを使うと，ファイルは最後にアクセスされた日が古い順に一覧表
示されるので，アクセスされていないファイルがあれば，ルートフロッピーから
取り除いてしまいましょう．

<!--
On my root diskettes, I have the number of config files down to
15.  This reduces my work to dealing with three sets of files:
-->
私の場合ルートフロッピーに入れる設定ファイルの数は下記の 15 個にまで減
らしています．これにより，以下の 3 種類のファイルを扱えばよいようになっ
ています:

<enum>
<!--
<item>The ones I must configure for a boot/root system:
-->
<item>ブート/ルートシステムに設定しなければならないファイル:

<enum>
<!--
<item><tt>rc.d/*</tt> -/- system startup and run level change scripts
<item><tt><cdx/fstab/</tt> -/- list of file systems to be mounted 
<item><tt><cdx/inittab/</tt> -/- parameters for the <tt/init/ process, the
		first process started at boot time. <ncdx/init/
-->
<item><tt>rc.d/*</tt> -- システムの起動と実行レベル変更のスクリプト
<item><tt><cdx/fstab/</tt> -- マウントするファイルシステムのリスト
<item><tt><cdx/inittab/</tt> -- <tt/init/ プロセス
                (起動時の最初のプロセス)のパラメータ．<ncdx/init/
</enum>

<!--
<item>The ones I should tidy up for a boot/root system:
-->
<item>ブート/ルートシステム用に短くしておいた方が良いファイル:
<enum>
<!--
	<item><tt><cdx/passwd/</tt> -/- list of users, home directories, etc.
	<item><tt/group/ -/- user groups. <nidx/user groups/
	<item><tt/shadow/ -/- passwords of users.  You may not have this.
               <nidx/shadow passwords/
        <item><tt/termcap/ -/- the terminal capability database.
-->
        <item><tt><cdx/passwd/</tt> -- ユーザ，ホームディレクトリのリスト
        <item><tt/group/ -- ユーザグループ <nidx/user groups/
        <item><tt/shadow/ -- ユーザのパスワード．このファイルは無いかもしれない．
               <nidx/shadow passwords/
        <item><tt/termcap/ -- 端末機能データベース
</enum>

<!--
If security is important, <tt/passwd/ and <tt/shadow/ should be pruned to
avoid copying user passwords off the system, and so that when you boot from
diskette, unwanted logins are rejected.  <nidx/restoring files/
-->
セキュリティが重要な場合は，<tt/passwd/ と <tt/shadow/ を整理して，
システムの外にユーザのパスワードがコピーされないようにすべきです．
またこうすれば，フロッピーからブートしたとき，予定外のログインを
拒否できます．<nidx/restoring files/

<!-- 
Be sure that <tt><cdx/passwd/</tt> contains at least <tt/root/.  If you
intend other users to login, be sure their home directories and shells
exist.
-->
<tt><cdx/passwd/</tt> には少なくとも<tt/root/ユーザを入れてください．
他にログインさせるつもりのユーザがいるなら，ホームディレクトリやシェル
も確認しましょう．

<!--
<tt/termcap/, the terminal database, is typically several hundred
kilobytes.  The version on your boot/root diskette should be pruned down to
contain only the terminal(s) you use, which is usually just the
<tt/linux-console/ entry.
-->
<tt/termcap/ (端末データベース) のサイズは，通常数百キロバイト程度です．
起動ディスクやルートディスクに入れる <tt/termcap/ ファイルには，使用す
る端末の項目だけを入れるようにしましょう．普通は <tt/linux-console/ の
項目だけになります．

<!--
<item>The rest. They work at the moment, so I leave them alone.
-->
<item>残り．現時点でこれらのファイルを置いたままでシステムはちゃんと働
いているので，そのままにしてあります．
</enum>

<!--
Out of this, I only really have to configure two files, and what they
should contain is surprisingly small.
-->
この中で本当に設定しなければならないのは 2 個のファイルだけです．その
中身は驚くほど小さいものです．

<itemize>

<!--
<item><tt/rc/ should contain:
-->
<item><tt/rc/ は以下のようになっています:
<verb>
	#!/bin/sh	
	/bin/mount -av
	/bin/hostname Kangaroo
</verb>

<!--
Be sure the directories are right.  You don't really need to run
<tt><cdx/hostname/</tt> -/- it just looks nicer if you do. 
-->
ディレクトリが正しいことを必ず確かめてください．
<tt><cdx/hostname/</tt> は特に実行する必要はありません．単に見栄えを良
くするためのものです．

<!--
<item><tt><cdx/fstab/</tt> should contain at least:
-->
<item>fstab の内容は以下の通りです:

<verb>
        /dev/ram0       /               ext2    defaults
	/dev/fd0	/		ext2	defaults
	/proc		/proc		proc	defaults
</verb>

<!--
You can copy entries from your existing <tt/fstab/, but you should not
automatically mount any of your hard disk partitions; use the <tt/noauto/
keyword with them.  Your hard disk may be damaged or dead when the bootdisk is
used.
-->
既に存在する <tt/fstab/ のエントリーをコピーしてもかまいませんが，ハー
ドディスクのパーティションが自動的にはマウントされないようにすべきです．
<tt/noauto/ オプションを使えば，そのような設定にできます．こうしておけ
ば，ハードディスクが壊れた時にもこのブートディスクを使用できます．
</itemize>

<!--
Your <tt><cdx/inittab/</tt> should be changed so that its
<tt><cdx/sysinit/</tt> line runs <tt>rc</tt> or whatever basic boot script
will be used.  Also, if you want to ensure that users on serial ports
cannot login, comment out all the entries for <tt/getty/ which include a
<tt/ttys/ or <tt/ttyS/ device at the end of the line.  Leave in the
<tt/tty/ ports so that you can login at the console.
-->
<tt><cdx/inittab/</tt>の <tt><cdx/sysinit/</tt> 行は変更して，
<tt>rc</tt> 等の基本的となる起動スクリプトを実行するようにしておかな
ければなりません．シリアルポートからのログインを禁止するならば，
<tt/inittab/ に含まれる <tt/getty/ のエントリのうち，行末が <tt/ttys/ ま
たは <tt/ttyS/ デバイスになっているものを全部コメントアウトします． 
コンソールからはログインできるように<tt/tty/ のエントリは残しておきま
しょう．

<!--
A minimal <tt><cdx/inittab/</tt> file looks like this:
-->
最小限の <tt><cdx/inittab/</tt> は次のようになるでしょう:
<verb>
	id:2:initdefault:
	si::sysinit:/etc/rc
	1:2345:respawn:/sbin/getty 9600 tty1
	2:23:respawn:/sbin/getty 9600 tty2
</verb>

<!--
The <tt><cdx/inittab/</tt> file defines what the system will run in various
states including startup, move to multi-user mode, etc.  Be sure to check
carefully the filenames mentioned in <tt/inittab/; if <tt/init/ cannot find
the program mentioned the bootdisk will hang, and you may not even get an
error message.
-->
<tt><cdx/inittab/</tt> ファイルは，起動時やマルチユーザモードへの移行時，
電源断のときなどにシステムが起動(あるいは再起動)するものを定義します．
ここで特に注意しておきたい点は， <tt/inittab/ に記述されているファイル名
を注意深く確認することです．記述されているプログラムを <tt/init/ が見
つけられないと，起動ディスクはハングします．このような場合にはエラーメッ
セージさえ表示されないかもしれません．

<nidx/hardcoded locations/

<!--
Note that some programs cannot be moved elsewhere because other programs
have hardcoded their locations.  For example on my system,
<file>/etc/shutdown</file> has hardcoded in it <file>/etc/reboot</file>.
If I move <tt/reboot/ to <file>/bin/reboot</file>, and then issue a
<tt/shutdown/ command, it will fail because it cannot find the <tt/reboot/
file.
-->
プログラムによっては，他の場所には移動させられないこともあります．
他のプログラムに位置がハードコード (直接記述) されている場合などが
これにあたります．
<file>/etc/reboot</file> の場所は <file>/etc/shutdown</file> でハード
コードされています．もし <tt/reboot/ を <file>/bin/reboot</file>
に移動させると， <tt/shutdown/ は <tt/reboot/ ファイルを
見つけられないので，実行できなくなってしまいます．

<nidx/etc directory/

<!--
For the rest, just copy all the text files in your <tt>/etc</tt> directory,
plus all the executables in your <tt>/etc</tt> directory that you cannot be
sure you do not need.  As a guide, consult the sample listing in Section <ref
id="listings" name="Sample rootdisk directory listings">.  Probably it will
suffice to copy only those files, but systems differ a great deal, so you
cannot be sure that the same set of files on your system is equivalent to the
files in the list.  The only sure method is to start with <tt/inittab/ and
work out what is required.
-->
残りのファイルについては <tt>/etc</tt> ディレクトリにある全てのテキストファイル
を単にフロッピーにコピーするだけです．加えて <tt>/etc</tt> ディレクトリにある実
行ファイルのうち，不要だという自信の無いものを全てコピーします．
<ref id="listings" name="ルートディスクのサンプルのディレクトリ一覧">
の章が役に立つでしょう．このようなファイルをコピーするだけでうまく行く
こともありますが，システムはそれぞれ大きく異なるのが普通ですから，当然
うまく行かない場合もありえます．絶対確実と言える方法は，<tt/inittab/ 
からたどって必要なファイルを全部確認することだけです．

<!--
Most systems now use an <file>/etc/rc.d/</file> directory containing shell
scripts for different run levels.  The minimum is a single <tt/rc/ script,
but it may be simpler just to copy <tt><cdx/inittab/</tt> and the
<file>/etc/rc.d</file> directory from your existing system, and prune the shell
scripts in the <tt/rc.d/ directory to remove processing not relevent to a
diskette system environment.
-->
現在ほとんどのシステムでは，実行レベルごとに異なるシェルスクリプトの置
き場所として <file>/etc/rc.d</file> ディレクトリを使っています．とにか
く小さくしたい場合には <tt/rc/ スクリプトひとつだけにすることもできま
すが，実際には今のシステムから <tt><cdx/inittab/</tt> と 
<file>/etc/rc.d</file> ディレクトリをコピーして，フロッピーベースのシ
ステムに不要なものを削っていく方がずっと簡単でしょう．

<!-- <sect2>/bin and /sbin<p> -->
<sect2>/bin と /sbin<p>
<nidx/bin directory/
<nidx/sbin directory/

<!--
The <tt>/bin</tt> directory is a convenient place for extra utilities you need
to perform basic operations, utilities such as <tt/ls/, <tt/mv/, <tt/cat/ and
<tt/dd/.  See Appendix <ref id="listings" name="Sample rootdisk directory
listings"> for an example list of files that go in a <tt>/bin</tt> and
<tt>/sbin</tt> directories.  It does not include any of the utilities required
to restore from backup, such as <tt/cpio/, <tt/tar/ and <tt/gzip/.  That is
because I place these on a separate utility diskette, to save space on the
boot/root diskette.  Once the boot/root diskette is booted, it is copied to
the ramdisk leaving the diskette drive free to mount another diskette, the
utility diskette.  I usually mount this as <tt>/usr</tt>.
-->
<tt>/bin</tt> ディレクトリには <tt/ls/ や <tt/mv/, <tt/cat/, <tt/dd/ 
などの基本的な操作を行うときに必要なコマンドを置いておくと良いでしょう．
付録の <ref id="listings" name="ルートディスクのサンプルのディレクトリ一覧">
で，<tt>/bin</tt> ディレクトリや <tt>/sbin</tt>ディレクトリに置いたファ
イルの例を見てください．この例では <tt/cpio/, <tt/tar/, <tt/gzip/ といっ
たバックアップの復元に必要なプログラムはありません．これはブート/ルー
トフロッピーの空き領域を増やすために，別のフロッピー(ユーティリティディ
スク)に入れてあるからです．いったんブート/ルートフロッピーを使ってブー
トすると，このフロッピーの内容は自動的に RAM ディスクにコピーされます．
すると，フロッピーディスクドライブは空いて他のディスクをマウントできる
ようになるので，ユーティリティディスクをマウントして使います．筆者はユー
ティリティディスクを普通 <tt>/usr</tt> にマウントしています．

<!--
Creation of a <idx/utility diskette/ is described below in the section
Section <ref id="utilitydisk" name="Building a utility disk">.  It is
probably desirable to maintain a copy of the same version of backup
utilities used to write the backups so you don't waste time trying to
install versions that cannot read your backup tapes.
-->
<idx/ユーティリティフロッピー/の作成方法は後述の
<ref id="utilitydisk" name="ユーティリティディスクの作成">の節で説明し
ています．バックアップの作成に使ったのと同じバージョンのバックアップユー
ティリティを保存しておく方がたぶんよいでしょう．そうすればバックアップ
テープを読めないバージョンのものをインストールして時間を無駄にすること
もないでしょう．

<!--
<em>Make sure you include the following programs:</em> <tt/init/, <tt/getty/
or equivalent, <tt/login/, <tt/mount/, some shell capable of running your rc
scripts, a link from <tt/sh/ to the shell.
-->
<em>次のプログラムは確実に入れましょう:</em> <tt/init/, <tt/getty/(ま
たは同等品), <tt/login/, <tt/mount/, rc スクリプトを実行できるシェル，
<tt/sh/ からそのシェルへのリンク．

<ncdx/init/<ncdx/getty/<ncdx/login/<nidx/shells/


<sect2>/lib<p>
<nidx/library (lib) directory/
<nidx/libraries/

<!--
In <tt>/lib</tt> you place necessary shared libraries and loaders.  If the
necessary libraries are not found in your <tt>/lib</tt> directory then the
system will be unable to boot.  If you're lucky you may see an error
message telling you why.
-->
<tt>/lib</tt> には必要な共有ライブラリとローダを置きます．必要な共有ラ
イブラリが /lib になければシステムをブートすることができません．運が良
ければエラーメッセージで何が足りないかがわかるでしょうが．

<ncdx/libc.so/
<!--
Nearly every program requires at least the <tt/libc/ library,
<tt>libc.so.<it/N/</tt>, where <it/N/ is the current version number.  Check
your <tt>/lib</tt> directory.   <tt/libc.so.N/ is usually a symlink
to a filename with a complete version number:
-->
ほとんど全てのプログラムは，少なくとも <tt/libc/ ライブラリである
<tt>libc.so.<it/N/</tt> を必要とします．ここで，<it/N/ は現在のバージョ
ン番号です．読者のみなさんの <tt>/lib</tt> をチェックしてみてください．
<tt/libc.so.N/ は通常，完全なバージョン番号を持つファイルへのシンボリッ
クリンクです:

<tscreen><verb>
% ls -l /lib/libc*
-rwxr-xr-x   1 root     root      4016683 Apr 16 18:48 libc-2.1.1.so*
lrwxrwxrwx   1 root     root           13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so*
</verb></tscreen>

<!--
In this case, you want <tt/libc-2.1.1.so/.  To find other libraries you
should go through all the binaries you plan to include and check their
dependencies with the <tt><cdx/ldd/</tt> command.  For example:
-->
この場合には <tt/libc-2.1.1.so/ が必要となります．コピーすべき他のラ
イブラリを見つけるには，入れようとするバイナリを全て調べ，
<tt><cdx/ldd/</tt> コマンドを使って依存関係をチェックします．例を示し
ます:
<verb>
	% ldd /sbin/mke2fs
        libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x40028000)
        libc.so.6 => /lib/libc.so.6 (0x4002c000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
</verb>

<!--
Each file on the right-hand side is required.  The file may be a symbolic
link.
-->
右側にあるファイルが必要なものです．ファイルはシンボリックリンクである
こともあります．

<!--
Note that some libraries are <em>quite large</em> and will not fit easily
on your root filesystem.  For example, the <tt/libc.so/ listed above is
about 4 meg.  You will probably need to strip libraries when copying them
to your root filesystem.  See Section <ref id="slimfast" name="Reducing
root filesystem size"> for instructions.
-->
一部のライブラリは<em>非常に大きく</em>，容易にはルートファイルシステ
ムに入れられないこともあります．例えば，先に挙げた <tt/libc.so/ のサイ
ズは約 4 メガバイトです．このファイルをルートファイルシステムにコピー
する際には，ライブラリを strip する必要があるかもしれません．この手順
については，<ref id="slimfast" name="ファイルシステムのサイズの削減">
の節を参照してください．

<nidx/loaders/<nidx/ELF/<nidx/a.out/

<!--
In <tt>/lib</tt> you must also include a loader for the libraries.
The loader will be either <tt/ld.so/ (for a.out libraries)
or <tt/ld-linux.so/ (for ELF libraries).
Newer versions of <tt/ldd/ tell you exactly which loader is needed, as in the
example above, but older versions may not.  If you're unsure which you
need, run the <tt/file/ command on the library.  For example:
-->
<tt>/lib</tt> にはライブラリをロードするためのローダも入れる必要があり
ます．ローダのファイルの名前は <tt/ld.so/ (a.out ライブラリ用) または 
<tt/ld-linux.so/ (ELF ライブラリ用) です．
新しいバージョンの <tt/ldd/ を使えば，(先に示した例のように)どのローダ
が必要なのかが正確に分かりますが，古いバージョンの <tt/ldd/ ではこれが
分からないことがあります．どちらが必要なのかが確かでなければ，ライブラ
リに対して <tt/file/ コマンドを実行してください．実行例を示します:
<verb>
	% file/lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so
	/lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped
	/lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped
	/lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped
</verb>

<!--
The <tt/QMAGIC/ indicates that <tt/4.7.2/ is for a.out libraries, and
<tt/ELF/ indicates that <tt/5.4.33/ and <tt/2.1.1/ are for
ELF.<nidx/ELF/<nidx/a.out/
-->
<tt/QMAGIC/ は <tt/4.7.2/ は a.out 用ライブラリであることを示し，
<tt/ELF/ は <tt/5.4.33/ と <tt/2.1.1/ が ELF 用ライブラリであることを
示します．<nidx/ELF/<nidx/a.out/

<!--
Copy the specific loader(s) you need to the root filesystem you're building.
Libraries and loaders should be checked <em/carefully/ against the included
binaries.  If the kernel cannot load a necessary library, the kernel will
usually hang with no error message.
-->
作ろうとしているルートファイルシステムに必要なローダをコピーしてくださ
い．両方とも必要な場合もあるかもしれません．入れるバイナリに対して，ラ
イブラリとローダは<em/慎重に/チェックしなければなりません．カーネルが
必要なライブラリをロードできない場合，普通カーネルはエラーメッセージも
出さずに止まってしまうでしょう．

<!-- <sect1>Providing for PAM and NSS.<p> -->
<sect1>PAM と NSS の設定<p>
<label id="PAMNSS">

<!--
Your system may require dynamically loaded libraries that are not visible
to <file>ldd</file>.  
-->
<file>ldd</file> では見えない，動的にロードされるライブラリがシステム
に必要とされるかもしれません．

<!-- <sect2>PAM (Pluggable Authentication Modules).<p> -->
<sect2>PAM (差し替え可能な認証モジュール)<p>

<!--
If your system uses PAM (Pluggable Authentication Modules), you must make
some provision for it on your bootdisk or you will not be able to login.
PAM, briefly, is a sophisticated modular method for authenticating users
and controlling their access to services.  An easy way to determine if your
system uses PAM is to check your hard disks's <file>/etc</file> directory
for a file <file>pam.conf</file> or a <file>pam.d</file> directory; if
either exists, you must provide some minimal PAM support.  (Alternatively,
run <file>ldd</file> on your <file>login</file> executable; if the output
includes <file>libpam.so</file>, you need PAM.)
-->
システムが PAM (差し替え可能な認証モジュール)を使っている場合，ブート
ディスクにいくらか手を加えないとログインできなくなってしまいます．PAM 
とはユーザの認証とサービスへのユーザアクセスとを制御するための手法で，
きれいにモジュール化されているものです．システムが PAM を使っているか
どうかを簡単に調べるには，ハードディスクの <file>/etc</file> ディレク
トリに <file>pam.conf</file> ファイルか <file>pam.d</file> ディレクト
リがあるかどうか確認することです．このどちらかが存在する場合，最低限の 
PAM サポートを準備しなければなりません．(調べるための別の方法としては，
<file>ldd</file> を <file>login</file> の実行ファイルに対して使ってみ
る方法もあります．出力に <file>libpam.so</file> が含まれる場合には，
PAM が必要です．)

<!--
Fortunately, security is usually of no concern with bootdisks since anyone
who has physical access to a machine can usually do anything they want
anyway.  Therefore, you can effectively disable PAM by creating a simple
<file>/etc/pam.conf</file> file in your root filesystem that looks like
this:
-->
好運なことに，ブートディスクでは通常，セキュリティを考える必要は全くあ
りません．なぜなら，マシンに物理的にアクセスできるならば，いずれにせよ
どんなことでもできるからです．よって，事実上は PAM を無効化しても構い
ません．これは次のような内容の簡単な <file>/etc/pam.conf</file> を
作成するだけで OK です:
<code>
OTHER	auth       optional	/lib/security/pam_permit.so
OTHER	account    optional	/lib/security/pam_permit.so
OTHER	password   optional	/lib/security/pam_permit.so
OTHER	session    optional	/lib/security/pam_permit.so
</code>

<!--
Also copy the file <tt>/lib/security/pam&lowbar;permit.so</tt> to your root
filesystem.  This library is only about 8K so it imposes minimal overhead.
-->

<tt>/lib/security/pam&lowbar;permit.so</tt> ファイルも
ルートファイルシステムにコピーします．このライブラリは 8K
程度しかないので，負担は最小限で済みます．

<!--
Note that this configuration allows anyone complete access to the files and
services on your machine.  If you care about security on your bootdisk for
some reason, you'll have to copy some or all of your hard disk's PAM setup
to your root filesystem.  Be sure to read the PAM documentation carefully,
and copy any libraries needed in <file>/lib/security</file> onto your root
filesystem.
-->
この設定にすると，そのマシンのファイルやサービスには誰でも完全なアクセ
スができるようになります．何らかの理由でブートディスクでもセキュリティ
に注意したい場合には，ハードディスクの PAM の設定の一部あるいは全部を
ルートファイルシステム上にコピーしなければなりません．PAM の文書をよく
読んで，<file>/lib/security</file> にあるライブラリのうち必要なものを
ルートファイルシステムにコピーしてください．

<!--
You must also include <file>/lib/libpam.so</file> on your bootdisk.  But
you already know this since you ran ldd on <file>/bin/login</file>, which
showed this dependency.
-->
また，ブートディスクには <file>/lib/libpam.so</file> を入れる必要があ
りますが，既に読者のみなさんはこれは知っているはずです．なぜなら，
<file>/bin/login</file> に ldd を実行したときに，このファイルが依存関
係で表示されたからです．


<!-- <sect2>NSS (Name Service Switch).<p> -->
<sect2>NSS (ネームサービス切り替え)<p>

<!--
If you are using glibc (aka libc6), you will have to make provisions for
name services or you will not be able to log in.  The file
<file>/etc/nsswitch.conf</file> controls database lookups for various
servies.  If you don't plan to access services from the network (eg, DNS or
NIS lookups), you need only prepare a simple <file>nsswitch.conf</file>
file that looks like this:
-->
glibc(別名 libc6)を使っている場合，ネームサービスに手を加えなければロ
グインできません．NSS ではファイル <file>/etc/nsswitch.conf</file> を
使って様々なサービスへのデータベース参照を制御します．ネットワークのサー
ビス(DNS や NIS の参照等)にアクセスするつもりがなければ，以下のような
簡単な <file>nsswitch.conf</file> を準備するだけです:

<code>
     passwd:     files 
     shadow:     files 
     group:      files 
     hosts:      files
     services:   files
     networks:   files
     protocols:  files
     rpc:        files
     ethers:     files
     netmasks:   files     
     bootparams: files
     automount:  files 
     aliases:    files
     netgroup:   files
     publickey:  files
</code>

<!--
This specifies that every service be provided only by local files.  You
will also need to include <tt>/lib/libnss&lowbar;files.so.1</tt>, which will
be loaded dynamically to handle the file lookups.
-->
この指定では全てのサービスをローカルファイルだけから受けるようになりま
す．また，<tt>/lib/libnss&lowbar;files.so.1</tt> ファイルも必要になる
でしょう．このファイルはファイルの参照を扱うために動的にロードされます．

<!--
If you plan to access the network from your bootdisk, you may want to
create a more elaborate <file>nsswitch.conf</file> file.  See the
<file>nsswitch</file> man page for details.  Keep in mind that you must
include a file <tt>/lib/libnss&lowbar;</tt><it>service</it><tt>.so.1</tt>
for each <it>service</it> you specify.
-->
ブートディスクからネットワークにアクセスすることを考えているならば，もっ
とちゃんとした <file>nsswitch.conf</file> を書こうと思うかもしれません．
指定しようとする<it>サービス</it>ごとに
<tt>/lib/libnss&lowbar;</tt><it>サービス</it><tt>.so.1</tt>を組み込む
必要があることを忘れないでください．
<!--nakano サービス.so.1 というのはちょっとアレかも(^_^; -->

<!-- <sect1>Modules.<p> <nidx/modules/ -->
<sect1>モジュール<p> <nidx/modules/

<!--
If you have a modular kernel, you must consider which modules you may want to
load from your bootdisk after booting.  You might want to include <tt/ftape/
and <tt/zftape/ modules if your backup tapes are on floppy tape, modules for
SCSI devices if you have them, and possibly modules for PPP or SLIP support if
you want to access the net in an emergency.<ncdx/ftape/
-->
モジュール化したカーネルを使っている場合，起動後にブートディスクからど
のモジュールをロードしたいのかを考えなければなりません．バックアップテー
プがフロッピーテープにある場合は<tt/ftape/ モジュールや <tt/zftape/モ
ジュールが必要でしょうし，SCSI 機器があるなら SCSI デバイス用のモジュー
ルが必要でしょう．また，緊急時にネットにアクセスしたければ PPP や SLIP
をサポートするためのモジュールも必要になるでしょう．

<!--
These modules may be placed in <file>/lib/modules</file>.  You should also
include <tt/insmod/, <tt/rmmod/ and <tt/lsmod/.  Depending on whether you
want to load modules automatically, you might also include <tt/modprobe/,
<tt/depmod/ and <tt/swapout/.  If you use <tt/kerneld/, include it along
with <file>/etc/conf.modules</file>.
-->
このようなモジュールは <file>/lib/modules</file> に置きます．また，
<tt/insmod/, <tt/rmmod/, <tt/lsmod/ も入れなければなりません．モジュー
ルを自動的にロードするかどうかによって，<tt/modprobe/, <tt/depmod/,
<tt/swapout/ が必要になるかどうかも決まります．<tt/kerneld/ を使うなら
ば <file>/etc/conf.modules</file> も一緒に入れましょう．

<!--
However, the main advantage to using modules is that you can move non-critical
modules to a utility disk and load them when needed, thus using less space on
your root disk.  If you may have to deal with many different devices, this
approach is preferable to building one huge kernel with many drivers built in.
-->
しかし，モジュールを使う最大の利点は，必須でないモジュールをユーティリ
ティディスクに移しておいて必要な時にロードできる点です．これにより，ルー
トディスクで使う容量が減ります．異なる種類のデバイスを多く扱わなければ
ならないかもしれない場合，たくさんのドライバを組み込んだ巨大なカーネル
を1つ作るよりもこのアプローチの方が好ましいでしょう．

<!--
<em/Note that in order to boot a compressed ext2 filesystem, you must have
ramdisk and ext2 support built-in/.  They cannot be supplied as modules.
-->
<em/圧縮形式の ext2 ファイルシステムを使う時には RAM ディスクと ext2 
のサポートはカーネルに組み込まなければなりません/．これらをモジュール
として使うことはできません．

<!-- <sect1>Some final details.<p> -->
<sect1>その他の細かい事項<p>

<!--
Some system programs, such as <tt/login/, complain if the file
<file>/var/run/utmp</file> and the directory <file>/var/log</file> do not
exist.<ncdx/utmp/ So:
-->
<file>/var/run/utmp</file> ファイルや <file>/var/log</file> ディレクト
リが存在しない場合，一部のシステムプログラム(<tt/login/ 等)は文句を言っ
てきます．そこで次のようにしておきます:

<verb>
	mkdir -p /mnt/var/{log,run}
	touch /mnt/var/run/utmp
</verb>

<!--
Finally, after you have set up all the libraries you need, run
<tt/ldconfig/ to remake <file>/etc/ld.so.cache</file> on the root
filesystem.  The cache tells the loader where to find the libraries.  To
remake <tt/ld.so.cache/, issue the following
commands:<ncdx/ldconfig/<ncdx/ld.so.cache/
-->
必要なライブラリを設定したら，最後に <tt/ldconfig/ を実行してルートファ
イルシステムの <file>/etc/ld.so.cache</file> を作り直します．このキャッ
シュがローダにライブラリの場所を教えます．<tt/ld.so.cache/ を作り直す
には次のコマンドを実行します: <ncdx/ldconfig/<ncdx/ld.so.cache/

<verb>
	chdir /mnt; chroot /mnt /sbin/ldconfig
</verb>

<!--
The <tt/chroot/ is necessary because <tt/ldconfig/ always remakes the
cache for the root filesystem.
-->
<tt/chroot/ が必要なのは，<tt/ldconfig/ が常にルートファイルシステムの
キャッシュを作り直すからです．

<!-- <sect1>Wrapping it up.<p> -->
<sect1>仕上げ<p>
<label id="wrappingitup">

<!--
Once you have finished constructing the root filesystem, unmount it, copy it
to a file and compress it:
-->
ルートファイルシステムの作成が終わったら，このファイルシステムをアンマ
ウントし，ファイルにコピーして，圧縮します:

<verb>
	umount /mnt
	dd if=DEVICE bs=1k | gzip -v9 > rootfs.gz
</verb>

<!--
When this finishes you will have a file <tt/rootfs.gz/ that is your
compressed root filesystem.  You should check its size to make sure it will
fit on a diskette; if it doesn't you'll have to go back and remove some
files.  Section
<ref id="slimfast" name="Reducing root filesystem size">
has some hints for reducing the size of the root filesystem.
-->
これが終わったら圧縮形式のルートファイルシステムである <tt/rootfs.gz/ 
ができるはずです．この大きさを調べ，フロッピーに収まることを確かめましょ
う．収まり切らない場合には，ファイルをいくつか消しましょう．
ルートファイルシステムのサイズを小さくする場合，
<ref id="slimfast" name="ルートファイルシステムのサイズの削減">セクショ
ンが参考になるでしょう．

<!-- <sect>Choosing a kernel.<p> -->
<sect>カーネルの選択<p>
<nidx/kernel, choosing/

<!--
At this point you have a complete compressed root filesystem.  The next step
is to build or select a kernel.  In most cases it would be possible to copy
your current kernel and boot the diskette from that.  However, there may be
cases where you wish to build a separate one.
-->
この時点で圧縮形式のルートファイルシステムは完成しています．次のステッ
プはカーネルを構築または選択することです．ほとんどの場合は現在使ってい
るカーネルをコピーし，それで作ったフロッピーからブートすればよいでしょ
う．それでも別のカーネルを作りたい場合もあることでしょう．

<!--
One reason is size.  If you are building a single boot/root diskette, the
kernel will be one of the largest files on the diskette so you will have to
reduce the size of the kernel as much as possible.  To reduce kernel size,
build it with the minumum set of facilities necessary to support the
desired system.  This means leaving out everything you don't need.
Networking is a good thing to leave out, as well as support for any disk
drives and other devices which you don't need when running your boot/root
system.  As stated before, your kernel <em/must/ have ramdisk and ext2
support built into it.
-->
理由の1つは大きさです．1枚のブート/ルートディスクを作る場合，カーネル
はフロッピー中で最大に近いファイルになるはずです．そこで，カーネルのサ
イズをできるだけ小さくしておく必要があります．カーネルのサイズを小さく
するには，サポートする機能をシステムに必要な最小限のものに絞ってカーネ
ルを構築します．つまり，不要なものを全て外すのです．ネットワーク機能は
外してよいでしょうし，ブート/ルートシステムでは不必要なディスクやその
他のデバイスも外せるでしょう．ただし，既に述べたように RAM ディスクと 
ext2 はカーネルに組み込んでおかなければ<em/なりません/．

<!--
Having worked out a minimum set of facilities to include in a kernel, you then
need to work out what to add back in.  Probably the most common uses for a
boot/root diskette system would be to examine and restore a corrupted root
file system, and to do this you may need kernel support.  For example, if your
backups are all held on tape using Ftape to access your tape drive, then, if
you lose your current root drive and drives containing Ftape, then you will
not be able to restore from your backup tapes.  You will have to reinstall
Linux, download and reinstall <cdx/ftape/, and then try to read your backups.
-->
カーネルに持たせる最低限の機能<!-- の組合せ-->が決まったら，次はカーネ
ルに戻すものを決める必要があります．ブート/ルートフロッピーのシステム
を使う一般的なユーザの多くは多分壊れたルートファイルシステムの検査と復
旧を行おうとしているのでしょうから，これを行うためのカーネルのサポート
が必要でしょう．例えば，バックアップが全て ftape を使ってテープに入れ
られており，かつ現在ルートにしているドライブと ftape が入っているドラ
イブが壊れてしまった場合，バックアップテープから復旧を行なうことはでき
ません．こうなってしまったら，Linux を再インストールして <cdx/ftape/ 
を入手・インストールし，それからバックアップの読み出しを行わなければな
りません．

<!--
The point here is that, whatever I/O support you have added to your kernel to
support backups should also be added into your boot/root kernel.
-->
つまり重要なのは，通常のカーネルに組み込んでいるバックアップ用の I/O 
サポートは，ブート/ルートのカーネルにも組み込んでおくべきだということ
です．

<nidx/kernel, building from source/

<!--
The procedure for actually building the kernel is described in the
documentation that comes with the kernel.  It is quite easy to follow, so
start by looking in <file>/usr/src/linux</file>.  If you have trouble
building a kernel, you should probably not attempt to build boot/root
systems anyway.  Remember to compress the kernel with ``<tt/make zImage/''.
-->
実際にカーネルを構築するための手順は，カーネルに付属の文書で説明されて
います．これはとても簡単なので，まずは <file>/usr/src/linux</file> を
ご覧ください．カーネルもちゃんと作れないようならば，ブート/ルートディ
スクを作ろうと考えるのはやめた方がいいでしょう．``<tt/make zImage/'' 
でカーネルを圧縮することを忘れないでください．

<!-- <sect>Putting them together: Making the diskette(s).<p> -->
<sect>全部をまとめる: フロッピーの作成<p>

<!--
At this point you have a kernel and a compressed root filesystem.  If you are
making a boot/root disk, check their sizes to make sure they will both fit on
one disk.  If you are making a two disk boot+root set, check the root
filesystem to make sure it will fit on a single diskette.
-->
これでカーネルと圧縮形式のルートファイルシステムができました．1枚のブー
ト/ルートディスクを作るならば，両方のサイズを合わせても1枚のディスクに
収まることを確認します．ブート+ルートを2枚組で作るならば，ルートファイ
ルシステムが1枚のフロッピーに収まることを確認します．

<!--
You should decide whether to use LILO to boot the bootdisk kernel.  The
alternative is to copy the kernel directly to the diskette and boot without
<cdx/LILO/.  The advantage of using LILO is that it enables you to supply some
parameters to the kernel which may be necessary to initialize your hardware
(Check the file <file>/etc/lilo.conf</file> on your system.  If it exists and
has a line like ``<tt/append=.../'', you probably need this feature).  The
disadvantage of using LILO is that building the bootdisk is more complicated
and takes slightly more space.  You will have to set up a small separate
filesystem, which we shall call the <bf/kernel filesystem/, where you transfer
the kernel and a few other files that LILO needs.
-->
次にブートディスクのカーネルを LILO で起動するかどうかを決めます．別の
方法としては，カーネルを直接フロッピーに書き込んで <cdx/LILO/ 無しで起
動させることもできます．LILO を使う利点は，システム上のハードウェアの
初期化に必要なパラメータを指定できる点です．(システムの 
<file>/etc/lilo.conf</file> を見てください．このファイルがあって，
``<tt/append=.../'' といった記述があれば，たぶんこの機能が必要です．)
LILO を使う欠点はブートディスクを作るのが面倒な点と，ディスクの使用量
が少し増えてしまう点です．また，小さな別のファイルシステム(いわば
<bf/カーネルファイルシステム/)も設定しなければならないでしょう．ここに 
LILO が必要とする他のファイルとカーネルを転送することになります．

<ncdx/lilo.conf/<nidx/lilo filesystem/<nidx/kernel, parameters/

<!--
If you are going to use LILO, read on; if you are going to transfer the
kernel directly, skip ahead to section <ref id="withoutlilo" name="Without
using LILO">.
-->
LILO を使うことにした人はこのまま読み続けてください．カーネル
を直接転送することにした人は，
<ref id="withoutlilo" name="LILO を使わない場合">の節へ進んでください．

<!-- <sect1>Transferring the kernel with LILO <ncdx/LILO/.<p> -->
<sect1>LILO を使ったカーネルの転送<ncdx/LILO/<p>
<label id="usinglilo">

<!--
The first thing you must do is create a small configuration file for LILO.
It should look like this:
-->
最初にすべきことは，LILO のための簡単な設定ファイルを作ることです．こ
れは次のようになります:

<code>
	boot	  =/dev/fd0
	install   =/boot/boot.b
	map	  =/boot/map
	read-write
	backup    =/dev/null
	compact
	image	  = KERNEL
	label     = Bootdisk
	root	  =/dev/fd0
</code>

<!--
For an explanation of these parameters, see LILO's user documentation.  You
will probably also want to add an <tt/append=.../ line to this file from
your hard disk's <file>/etc/lilo.conf</file> file.<ncdx/lilo.conf/
-->
パラメータの詳細については LILO のユーザ文書をご覧ください．
このファイルにはハードディスクの <file>/etc/lilo.conf</file> ファイル
から抜き出した  <tt/append=.../ の行を追加しておくべきかもしれません．
<ncdx/lilo.conf/

<!--
Save this file as <tt/bdlilo.conf/.
-->
このファイルは <tt/bdlilo.conf/ として保存します．

<!--
You now have to create a small filesystem, which we shall call a
<bf><idx/kernel filesystem/</bf>, to distinguish it from the root
filesystem.
-->
ここで小さいファイルシステムを作らなければなりません．ルートファイルシ
ステムと区別するため，このファイルシステムは
<bf><idx/カーネルファイルシステム/</bf>と呼びます．

<!--
First, figure out how large the filesystem should be.  Take the size of your
kernel in blocks (the size shown by ``<tt>ls -l KERNEL</tt>'' divided by 1024
and rounded up) and add 50.  Fifty blocks is approximately the space needed
for inodes plus other files.  You can calculate this number exactly if you
want to, or just use 50.  If you're creating a two-disk set, you may as well
overestimate the space since the first disk is only used for the kernel
anyway.  Call this number <tt/KERNEL&lowbar;BLOCKS/.<ncdx/KERNEL&lowbar;BLOCKS/
-->
まず，このファイルシステムの大きさを決めます．カーネルのサイズをブロッ
ク数で求め(``<tt>ls -l KERNEL</tt>'' で得られるサイズを 1024 で割り，
端数を切り上げます)，これに 50 ブロックを加えます．50 ブロックというの
は，i-ノードや他のファイルの分のおよそのサイズです．この数値を正確に求
めてもかまいませんが，単に50を使ってもかまいません．2枚組のディスクを
作る場合には，このサイズはもっと大きく見積もっても大丈夫でしょう．どう
せ最初のディスクにはカーネルしか入れないのですから．この数字を 
<tt/KERNEL&lowbar;BLOCKS/ とします．<ncdx/KERNEL&lowbar;BLOCKS/

<!--
Put a floppy diskette in the drive (for simplicity we'll assume
<file>/dev/fd0</file>) and create an ext2 kernel filesystem on it:
-->
ドライブにフロッピーを入れて，このフロッピーに ext2 カーネルファイルシ
ステムを作成します(表記を簡単にするため，ドライブは 
<file>/dev/fd0</file> であるものとします):

<verb>
	mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS
</verb>

<nidx/inodes, allocation/

<!--
The ``<tt/-i 8192/'' specifies that we want one inode per 8192 bytes.
Next, mount the filesystem, remove the <tt/lost+found/ directory,
and create <tt/dev/ and <tt/boot/ directories for LILO:
-->
``<tt/-i 8192/'' オプションは，1つのi-ノードで8192バイトを使うことを指
定します．次にファイルシステムをマウントし，<tt/lost+found/ ディレクト
リを消し，LILO 用に <tt/dev/ ディレクトリと <tt/boot/ ディレクトリを作
ります．

<verb>
	mount /dev/fd0 /mnt
	rm -rf /mnt/lost+found
	mkdir /mnt/{boot,dev}
</verb>

<!--
Next, create devices <file>/dev/null</file> and <file>/dev/fd0</file>.
Instead of looking up the device numbers, you can just copy them from your
hard disk using <tt/-R/:
-->
次に <file>/dev/null</file>デバイスと <file>/dev/fd0</file>デバイスを
作ります．デバイス番号を調べなくても，<tt/-R/ オプションを使えばハード
ディスクからそのままコピーできます．

<verb>
	cp -R /dev/{null,fd0} /mnt/dev
</verb>

<!--
LILO needs a copy of its boot loader, <tt>boot.b</tt>, which you can take from
your hard disk.  It is usually kept in the <tt>/boot</tt> directory.
-->
LILO にはブートローダのコピー(<tt>boot.b</tt>)が必要です．これはハード
ディスクから持ってくることができます．通常これは <tt>/boot</tt> ディレ
クトリに置かれます．

<verb>
	cp /boot/boot.b /mnt/boot
</verb>

<!--
Finally, copy in the LILO configuration file you created in the last section,
along with your kernel.  Both can be put in the root directory:
-->
最後に，先程の節で用意した LILO の設定ファイルをカーネルと一緒にコピー
します．両方ともルートディレクトリに置くことができます．

<verb>
	cp bdlilo.conf KERNEL /mnt
</verb>

<!--
Everything LILO needs is now on the kernel filesystem, so you are ready to run
it.  LILO's <tt/-r/ flag is used for installing the boot loader on some other
root: <ncdx/LILO/
-->
以上の手順で，LILO が必要とするものは全てカーネルファイルシステムに準
備できましたので，LILO を実行します．LILO の <tt/-r/ オプションを使う
と，ブートローダは他の場所をルートにしてインストールされます．

<verb>
	lilo -v -C bdlilo.conf -r /mnt
</verb>

<!--
LILO should run without error, after which the kernel filesystem
should look something like this: 
-->
LILO はエラーを起こさないはずです．そして LILO の実行後には，カーネル
ファイルシステムは以下のようになっているはずです:

<code>
total 361
  1 -rw-r--r--   1 root     root          176 Jan 10 07:22 bdlilo.conf
  1 drwxr-xr-x   2 root     root         1024 Jan 10 07:23 boot/
  1 drwxr-xr-x   2 root     root         1024 Jan 10 07:22 dev/
358 -rw-r--r--   1 root     root       362707 Jan 10 07:23 vmlinuz
boot:
total 8
  4 -rw-r--r--   1 root     root         3708 Jan 10 07:22 boot.b
  4 -rw-------   1 root     root         3584 Jan 10 07:23 map
dev:
total 0
  0 brw-r-----   1 root     root       2,   0 Jan 10 07:22 fd0
  0 crw-r--r--   1 root     root       1,   3 Jan 10 07:22 null           
</code>

<nidx/kernel filesystem/

<!--
Do not worry if the file sizes are slightly different from yours.
-->
ファイルサイズが少しくらい違っていても気にする必要はありません．

<!--
Now leave the disk in the drive and go to section <ref id="ramdiskword"
name="Setting the ramdisk word">.
-->
ドライブからディスクを抜き，
<ref id="ramdiskword" name="ramdisk 変数の設定">の節に進みましょう．

<!-- <sect1>Transferring the kernel without LILO.<p> -->
<sect1>LILO を使わないカーネルの転送<p>
<label id="withoutlilo">

<!--
If you are <em/not/ using LILO, transfer the kernel to the bootdisk with the
<tt/dd/ command:
-->
LILO を<em/使わない/場合には，<tt/dd/ コマンドを使ってカーネルをブート
ディスクに転送します．

<verb>
	% dd if=KERNEL of=/dev/fd0 bs=1k
	353+1 records in
	353+1 records out
</verb>

<!--
In this example, <tt/dd/ wrote 353 complete records + 1 partial record, so the
kernel occupies the first 354 blocks of the diskette.  Call this number
<tt/KERNEL&lowbar;BLOCKS/ and remember it for use in the next
section.<ncdx/KERNEL&lowbar;BLOCKS/
-->
この例では，<tt/dd/ は 353 レコード(の全体)と1レコード(の一部)を書き込
んでいます．したがって，カーネルはディスク先頭の 354 ブロックを使って
います．この数字を <tt/KERNEL&lowbar;BLOCKS/ とします．これは次のセク
ションで使うので，覚えておいてください．

<!--
Finally, set the root device to be the diskette itself, then set the
root to be loaded read/write:
-->
最後に，ルートデバイスをフロッピーに設定し，ルートを読み書き可能でロー
ドできるように設定します．

<verb>
	rdev /dev/fd0 /dev/fd0
	rdev -R /dev/fd0 0
</verb>

<ncdx/rdev/

<!--
Be careful to use a capital <tt/-R/ in the second <tt/rdev/ command.
-->
後の方の <tt/rdev/ では必ず <tt/-R/ を大文字にしましょう．

<!-- <sect1>Setting the ramdisk word.<p> -->
<sect1>ramdisk 変数の設定<p>
<label id="ramdiskword">

<!--
Inside the kernel image is the <bf><idx/ramdisk word/</bf> that specifies
where the root filesystem is to be found, along with other options.  The
word can be accessed and set via the <tt/rdev/ command, and its contents
are interpreted as follows:
-->
カーネルイメージの <bf><idx/ramdisk 変数/</bf>にはルートファイルシステ
ムの位置に関係するオプション等が指定されています．この変数には 
<tt/rdev/ コマンドでアクセスすることができ，変数の内容は以下のようになっ
ています:

<!--
<verb>
	bits  0-10:	Offset to start of ramdisk, in 1024 byte blocks
	bits 11-13:	unused
	bit     14:	Flag indicating that ramdisk is to be loaded
	bit	15:	Flag indicating to prompt before loading rootfs
</verb>
-->
<verb>
        第 0-10ビット:  RAM ディスク先頭位置へのオフセットアドレス．
                        1024 バイトのブロックが単位になります．
        第11-13ビット:  未使用です．
        第   14ビット:  RAM ディスクをロードするかどうかのフラグです．
        第   15 ビット: ルートファイルシステムをロードする前にフロッピー
                        交換のプロンプトを出すかどうかのフラグです．
</verb>

<!--
If bit 15 is set, on boot-up you will be prompted to place a new floppy
diskette in the drive.  This is necessary for a two-disk boot set.
-->
第 15 ビットがセットされていると，ブート時に 2 枚目のフロッピーをドライブに
入れるようにというプロンプトが出ます．ディスク 2 枚からなるブートシス
テムではこのフラグが必要になります．

<!--
There are two cases, depending on whether you are building a single
boot/root diskette or a double ``boot+root'' diskette set.
-->
1枚のブート/ルートディスクを作るか，2枚組の「ブート+ルート」ディスクを
作るかによって，手順は2つに分かれます．

<enum>

<!--
<item>If you are building a single disk, the compressed root filesystem will
be placed right after the kernel, so the offset will be the first free block
(which should be the same as <tt/KERNEL&lowbar;BLOCKS/).  Bit 14 will be set
to 1, and bit 15 will be zero.<ncdx/KERNEL&lowbar;BLOCKS/
-->
1 枚のディスクで作る場合，圧縮形式のルートファイルシステムをカーネルの
直後に置きます．つまり，オフセット位置は最初の空きブロックです(これは 
<tt/KERNEL&lowbar;BLOCKS/ に等しいはずです)．第14ビットに1を，第15ビッ
トに0をセットします．<ncdx/KERNEL&lowbar;BLOCKS/

<!--O
For example, say you're building a single disk and the root filesystem will
begin at block 253 (decimal).  The ramdisk word value should be 253
(decimal) with bit 14 set to 1 and bit 15 set to 0.  To calculate the value
you can simply add the decimal values.  253 + (2^14) = 253 + 16384 = 16637.
If you don't quite understand where this number comes from, plug it into a
scientific calculator and convert it to binary,
-->
例えば，1 枚組のディスクを構築しようとしていて，ルートファイルシステムを
ブロック 253 (10 進値)から始めようとしているとします．ramdisk 変数の値は
253 (10 進値)のはずであり，ビット 14 に 1 がセットされ，ビット 15 に 0 
がセットされています．この値を計算するには，単に 10 進値を足し合わせて
ください．すなわち「253 + (2^14) = 253 + 16384 = 16637」です．
この数値の由来が良く分からなければ，この値を関数電卓に入れて 2 進値に
変換してみてください．

<!--O
<item>If you are building a two-disk set, the root filesystem will begin at
block zero of the second disk, so the offset will be zero.  Bit 14 will be
set to 1 and bit 15 will be 1.  The decimal value will be
2^14 + 2^15 = 49152 in this case.
-->
<item>2 枚組のディスクを作る場合，ルートファイルシステムは 2 枚目のディスク
の第 0 ブロックから始まります．つまり，オフセット位置は 0 です．第 14,
15 ビットにはそれぞれ 1 をセットします．この場合，10 進値は
2^14 + 2^15 = 49152 となります．

</enum>



<ncdx/rdev/<nidx/ramdisk word/

<!--
After carefully calculating the value for the ramdisk word, set it with
<tt/rdev -r/.  Be sure to use the <em/decimal/ value.  If you used LILO,
the argument to <tt/rdev/ here should be the <em/mounted kernel path/,
e.g. <tt>/mnt/vmlinuz</tt>; if you copied the kernel with <tt/dd/, instead
use the floppy device name (<it/e.g.,/ <tt>/dev/fd0</tt>).
-->
ramdisk 変数がしっかりと計算できたら，<tt/rdev -r/ コマンドを使って設
定します．設定の際には <em/10 進数/を使ってください．LILO を使っている
場合には，<tt/rdev/ に渡す引き数は<em/マウントされるカーネルのパス/(例:
<tt>/mnt/vmlinuz</tt>)でなければなりません．カーネルを <tt/dd/ でコピー
した場合は，この代わりにフロッピーのデバイス名(例: <tt>/dev/fd0</tt>)
を使います．

<verb>
	rdev -r KERNEL_OR_FLOPPY_DRIVE  VALUE
</verb>

<!--
If you used LILO, unmount the diskette now.
-->
LILO を使っている場合には，フロッピーをアンマウントします．

<!-- <sect1>Transferring the root filesystem.<p> -->
<sect1>ルートファイルシステムの転送<p>

<!--
The last step is to transfer the root filesystem.
-->
最後のステップはルートファイルシステムの転送です．

<itemize>

<!--
<item>If the root filesystem will be placed on the <em/same/ disk as the
kernel, transfer it using <tt/dd/ with the <tt/seek/ option, which specifies
how many blocks to skip:
-->
<item>ルートファイルシステムをカーネルと<em/同じ/ディスクに置く場合，
<tt/dd/ コマンドに <tt/seek/ オプションを付けてファイルシステムを転送
します．このオプションは先頭からスキップするブロック数を指定するもので
す．

<verb>
	dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS
</verb>

<!--
<item>If the root filesystem will be placed on a <em/second/ disk, remove the
first diskette, put the second diskette in the drive, then transfer the root
filesystem to it:
-->
<item>ルートファイルシステムを<em/2番目/のディスクに置く場合，最初のフ
ロッピーを抜いて2番目のフロッピーを入れ，これにルートファイルシステム
を転送します．

<verb>
	dd if=rootfs.gz of=/dev/fd0 bs=1k
</verb>

</itemize>

<!--
Congratulations, you are done!  <em>You should always test a bootdisk
before putting it aside for an emergency!</em> If it fails to boot, read
on.
-->
お疲れさま，これで作業終了です! <em>緊急用のディスクとして保管する前に
は必ずテストをしましょう</em>．このディスクで起動できなければ，トラブ
ルシューティングがあるので，この先を読んでみましょう．

<!-- <sect>Troubleshooting, or The Agony of Defeat.<p> -->
<sect>トラブルシューティング，または挫折の苦しみ<p>
<label id="troubleshooting">
<nidx/troubleshooting/

<!--
When building bootdisks, the first few tries often will not boot.  The general
approach to building a root disk is to assemble components from your existing
system, and try and get the diskette-based system to the point where it
displays messages on the console.  Once it starts talking to you, the battle
is half over because you can see what it is complaining about, and you can fix
individual problems until the system works smoothly.  If the system just hangs
with no explanation, finding the cause can be difficult.  To get a system to
boot to the stage where it will talk to you requires several components to be
present and correctly configured.  The recommended procedure for investigating
the problem where the system will not talk to you is as follows:
-->
ブートディスクを作ろうとする場合，最初の何回かが失敗するのはよくあるこ
とです．ルートディスクを作成する際によく用いられる方針は，手持ちのシス
テムから部品を取り出してフロッピーベースのシステムに詰め込み，コンソー
ルにメッセージが出るまで試行錯誤を繰り返すことです．メッセージさえ出れ
ば半分勝ったも同然です．後はシステムが文句を言わなくなるまで，一つ一つ
問題を解決していけばよいのです．システムが何のメッセージも出さずにハン
グする場合は，その理由を調べるのは大変です．何とか表示が出る段階に達す
るには，いくつかの部品がちゃんと揃っていて，正しく設定されている必要が
あるのです．システムが何も言ってくれないような問題を見つけるためのお勧
めの手順を以下に示します:

<itemize>

<!--
<item>You may see a message like this:
-->
<item>以下のようなメッセージが出力されるかもしれません:

<verb>Kernel panic: VFS: Unable to mount root fs on XX:YY
</verb>

<!--
This is a common problem and it has only a few causes.  First, check the
device <it/XX:YY/ against the list of device codes; is it the correct root
device?  If not, you probably didn't do an <tt/rdev -R/, or you did it on
the wrong image.  If the device code is correct, then check carefully the
device drivers compiled into your kernel.  Make sure it has floppy disk,
ramdisk and ext2 filesystem support built-in.
-->
これはありがちな問題ですし，原因もごく限られています．まずデバイス
<it/XX:YY/ をデバイスコードのリストで確認してください．これが正しいルー
トデバイスですか? 正しくなければ，<tt/rdev -R/ の実行を忘れたか，間違っ
たイメージに対して <tt/rdev -R/ を実行したと思われます．デバイスコード
が正しければ，次にデバイスドライバがカーネルに組み込まれているかどうか
をしっかり調べてください．フロッピーディスク，RAM ディスク，ext2 ファ
イルシステムのサポートがカーネルに組み込まれていることを確かめてくださ
い．

<!--
<item>Check that the root disk actually contains the directories you think
it does.  It is easy to copy at the wrong level so that you end up with
something like <file>/rootdisk/bin</file> instead of <tt>/bin</tt> on your
root diskette.
-->
<item>ルートディスクに意図したディレクトリが本当に含まれているか，しっ
かり確認します．<file>/bin</file> でなく <file>/rootdisk/bin</file> の
ような間違ったディレクトリにコピーしてしまうということなどがありがちで
す．

<!--
<item>Check that there is a <file>/lib/libc.so</file> with the same link that
appears in your <tt>/lib</tt> directory on your hard disk.<ncdx/libc.so/
-->
<item><file>/lib/libc.so</file> があることと，<tt>/lib</tt> ディレクト
リのリンクがハードディスクと同じになっていることを確認します．<ncdx/libc.so/
<!--nakano これ libc.so.[56] じゃないかしらん？-->

<!--
<item>Check that any symbolic links in your <tt>/dev</tt> directory in your
existing system also exist on your root diskette filesystem, where those links
are to devices which you have included in your root diskette. In particular,
<tt>/dev/console</tt> links are essential in many cases.
<nidx/device (dev) directory/
-->
<item>現在のシステムの <tt>/dev</tt> ディレクトリにおけるシンボリック
リンクがルートディスクのファイルシステムにも存在していることを確認しま
す．またリンク先がちゃんとあることも確認します．特に 
<tt>/dev/console</tt> を忘れがちなので気を付けてください．

<!--
<item>Check that you have included <tt>/dev/tty1, /dev/null, /dev/zero,
/dev/mem, /dev/ram</tt> and <tt>/dev/kmem</tt> files.
-->
<item>ルートディスクに <tt>/dev/tty1, /dev/null, /dev/zero, /dev/mem,
/dev/ram, /dev/kmem</tt> があることを確認します．

<!--
<item>Check your kernel configuration &mdash; support for all resources
required up to login point must be built in, not modules.  
So <em>ramdisk and ext2 support must be built-in</em>.
-->
<item>カーネルの設定を確認してください． ログインするまでに必要なシス
テムリソースのドライバが全て組み込まれているでしょうか(モジュールでは
だめ)．
<em>RAM ディスクのドライバはカーネル組み込みでなければなりません．</em>

<!--
<item>Check that your kernel root device and ramdisk settings are
correct. 
-->
<item>カーネルのルートデバイスと RAM ディスクの設定が正しいかどうか確
認します．

</itemize>

<!--
Once these general aspects have been covered, here are some more
specific files to check:  
-->
以上のような一般的な点が確認できたら，次に示すようなファイルをチェック
してみましょう:

<enum>

<!--
<item> Make sure <tt/init/ is included as <file>/sbin/init</file> or
<file>/bin/init</file>.  Make sure it is executable.<ncdx/init/
-->
<item><tt/init/ が <file>/sbin/init</file> または 
<file>/bin/init</file> として存在しており，実行可能になっていることを
確認する．<ncdx/init/

<!--
<item>Run <tt>ldd init</tt> to check init's libraries.  Usually this is just
<tt/libc.so/, but check anyway.  Make sure you included the necessary
libraries and loaders.
-->
<item><tt>ldd init</tt> を実行して， init の使うライブラリを確認してく
ださい．通常は libc.so だけでしょうが，それでもチェックしてください．
必要なライブラリやローダがディスクに入っていることも確認します．

<!--
<item>Make sure you have the right loader for your libraries &mdash;
<tt/ld.so/ for a.out or <tt/ld-linux.so/ for ELF.<nidx/loaders/
-->
使っているライブラリに合ったローダがあることを確認します．
a.out 形式ならば <tt/ld.so/ ですし，ELF 形式ならば <tt/ld-linux.so/ で
す．

<!--
<item>Check the <file>/etc/inittab</file> on your bootdisk filesystem for
the calls to <tt/getty/ (or some <tt/getty/-like program, such as
<tt/agetty/, <tt/mgetty/ or
<tt/getty&lowbar;ps/).<ncdx/inittab/<ncdx/getty/ Double-check these against
your hard disk <tt/inittab/.  Check the man pages of the program you use to
make sure these make sense.  <tt/inittab/ is possibly the trickiest part
because its syntax and content depend on the init program used and the
nature of the system.  The only way to tackle it is to read the man pages
for <tt/init/ and <tt/inittab/ and work out exactly what your existing
system is doing when it boots.  Check to make sure
<file>/etc/inittab</file> has a system initialisation entry.  This should
contain a command to execute the system initialization script, which must
exist.
-->
<item>ブートディスクの <file>/etc/inittab</file> を見て， <tt/getty/
(あるいは <tt/agetty/, <tt/mgetty/, <tt/getty&lowbar;ps/ 等の 
<tt/getty/ と同等のプログラム) の呼び出し方を調べてください．
<ncdx/inittab/<ncdx/getty/ これらの記述をハードディスクの <tt/inittab/ 
と念入りに比べてください．ちゃんと意味を持った記述になっているか，お使
いのプログラムのマニュアルページも参照してください．<tt/inittab/ はお
そらく最も難しい部分です．なぜなら文法や内容が，使っている <tt/init/ 
プログラムやシステムの作りによって変わってしまうからです．<tt/inittab/
を正しく書くための手段はただ一つ，<tt/init/ と <tt/inittab/ のマニュア
ルページを読んで，現在のシステムがブート時にやっていることを解き明かす
ことです． <file>/etc/inittab</file> を見て，そこにシステムの初期化を
行っているエントリがあることを確認してください．このファイルにはシステ
ム初期化のために実行するスクリプトが書かれているはずです．ここで指定さ
れているファイルは存在していなければなりません．

<!--
<item>As with <tt/init/, run <tt/ldd/ on your <tt><cdx/getty/</tt> to see
what it needs, and make sure the necessary library files and loaders were
included in your root filesystem.
-->
<item><tt/init/ に行ったのと同じように， <tt><cdx/getty/</tt> に対して
も <tt/ldd/ を実行し，必要なライブラリを表示させます．そしてそのライブ
ラリのファイルとローダがルートファイルシステムに入っていることを確認し
ます．

<!--
<item>Be sure you have included a shell program (e.g., <tt/bash/ or <tt/ash/)
capable of running all of your rc scripts.<nidx/shells/
-->
<item> rc スクリプトを全て実行できるシェルプログラム(例: <tt/bash/ や
<tt/ash/)があることを確認します．

<!--
<item>If you have a <file>/etc/ld.so.cache</file> file on your rescue disk,
remake it. <ncdx/ld.so.cache/
-->
<item>レスキューディスクに <file>/etc/ld.so.chace</file> がすでに存在して
いるようでしたら，作り直してください．<ncdx/ld.so.cache/

</enum>

<p>

<!--
If <tt/init/ starts, but you get a message like:  
-->
<tt/init/ が起動しても次のようなメッセージが出力されることがあります:
<verb>
	Id xxx respawning too fast: disabled for 5 minutes  
</verb>

<ncdx/respawning too fast/

<!--
it is coming from <tt/init/, usually indicating that <tt/getty/ or
<tt/login/ is dying as soon as it starts up.
<ncdx/init/<ncdx/getty/<ncdx/login/ Check the <tt/getty/ and <tt/login/
executables and the libraries they depend upon.  Make sure the invocations
in <file>/etc/inittab</file> are correct.  If you get strange messages from
<tt/getty/, it may mean the calling form in <file>/etc/inittab</file> is
wrong.  The options of the <it/getty/ programs are variable; even different
versions of <tt/agetty/ are reported to have different incompatible calling
forms.<ncdx/inittab/
-->
これは <tt/init/ が出すもので，お使いの <tt/getty/ または <tt/login/ 
が起動してすぐに異常終了したことを示しています． 
<ncdx/init/<ncdx/getty/<ncdx/login/
<tt/getty/ や <tt/login/ の実行ファイル，そしてそれらが依存しているラ
イブラリをチェックしてください． また，<file>/etc/inittab</file> から
の呼び出し方が正しいかどうかも調べてください． <tt/getty/ がおかしなメッ
セージを出力する場合は，おそらく <file>/etc/inittab</file> からの呼び
出し方が間違っています．<it/getty/ のオプションはプログラムによって違
います．また <tt/agetty/ ではバージョンによって互換性がない場合さえあ
るそうです．

<!--
If you get a login prompt, and you enter a valid login name but the system
prompts you for another login name immediately, the problem may be with PAM
or NSS.  See Section <ref id="PAMNSS" name="PAM and NSS">.  The problem may
also be that you use shadow passwords and didn't copy
<file>/etc/shadow</file> to your bootdisk.
-->
ログインプロンプトが現われ，正しいログイン名を入力したのに，即座に次の
ログインプロンプトをシステムが出す場合には，PAM か NSS に問題があると
思われます．<ref id="PAMNSS" name="PAM と NSS"> の節をご覧ください．シャ
ドウパスワードを使っているのに <file>/etc/shadow</file> をブートディス
クにコピーしていない場合にも，この問題が出ることがあります．

<!--
If you try to run some executable, such as <tt/df/, which is on your rescue
disk but you yields a message like: <tt/df: not found/, check two things: (1)
Make sure the directory containing the binary is in your PATH, and (2) make
sure you have libraries (and loaders) the program needs.
-->
何かの実行ファイル(例えば <tt/df/)をレスキューディスクから起動したとき
に， <tt/df: not found/ のようなメッセージが出る場合には，次の 2 点を
確認してください: (1) バイナリがあるディレクトリが PATH に含まれているか．
(2) プログラムが必要とするライブラリ(とローダ)があるか．

<!-- <sect>Miscellaneous topics.<p> -->
<sect>その他のトピックス<p>

<!-- <sect1>Reducing root filesystem size.<p> -->
<sect1>ファイルシステムのサイズの削減<p>
<label id="slimfast">

<!--
Sometimes a root filesystem is too large to fit on a diskette even after
compression.  Here are some ways to reduce the filesystem size, listed 
in decreasing order of effectiveness:
-->
ファイルシステムが大きすぎて，圧縮してもフロッピーに入らないことがあり
ます．そこで，ファイルシステムのサイズを減らす方法をいくつか紹介します．
有効なものから順に紹介します:

<descrip>

<!--
<tag/Increase the disk density/ By default, floppy diskettes are
formatted at 1440K, but higher density formats are available.
<file>fdformat</file> will format disks for the following sizes: 1600, 1680,
1722, 1743, 1760, 1840, and 1920.  Most 1440K drives will support
1722K, and this is what I always use for bootdisks.  See the
<file>fdformat</file> man page and
<file>/usr/src/linux/Documentation/devices.txt</file>.
-->
<tag/ディスクの密度を上げる/ デフォルトでは，フロッピーディスクは 
1440K でフォーマットされています．しかし，もっと高い密度で使うこともで
きます．<file>fdformat</file> は次のサイズでディスクをフォーマットでき
ます: 1600, 1680, 1722, 1743, 1760, 1840, 1920. 1440K 対応ドライブの大
部分は 1722K にも対応しているので，筆者はいつもこのサイズをブートディ
スクで使っています．<file>fdformat</file> のマニュアルページと
<file>/usr/src/linux/Documentation/devices.txt</file> を参照してくださ
い．

<!--
<tag/Replace your shell/ Some of the popular shells for Linux, such as
<tt/bash/ and <tt/tcsh/, are large and require many libraries.
Light-weight alternatives exist, such as <tt/ash/, <tt/lsh/, <tt/kiss/ and
<tt/smash/, which are much smaller and require few (or no) libraries.  Most of
these replacement shells are available from <url
url="http://metalab.unc.edu/pub/Linux/system/shells/">.  Make sure any shell
you use is capable of running commands in all the <tt/rc/ files you include on
your bootdisk.
<nidx/shells/
-->
<tag/シェルを変える/ Linux で良く使われるシェル(<tt/bash/ や <tt/tcsh/ 
等)は大きい上に色々なライブラリを必要とします．
これらの代用として使える <tt/ash/, <tt/lsh/, <tt/kiss/ , <tt/smash/ の
ような軽量のシェルがあります．これらは小さいですし，必要なライブラリも
少ないです(あるいは全くありません)．このようなシェルのほとんどは <url
url="http://metalab.unc.edu/pub/Linux/system/shells/"> で入手できます．
ただし，このようなシェルを使う場合には，ブートディスクに組み込んだ 
<tt/rc/ ファイルで実行するコマンドを全て実行できることを確認しておいて
ください．
<nidx/shells/

<!--
<tag/Strip libraries and binaries/<nidx/libraries/
Many libraries and binaries are typically unstripped (include debugging
symbols).  Running '<tt>file</tt>' on these files will tell you '<tt>not
stripped</tt>' if so.  When copying binaries to your root filesystem, it is
good practice to use:
-->
<tag/ライブラリやバイナリをストリップする/<nidx/libraries/
バイナリやライブラリの多くは普通はストリップされていません(つまり，デ
バッグ用のシンボルが含まれています)．このようなファイルに '<tt>file</tt>' 
を行うと '<tt>not stripped</tt>' と表示されます．バイ
ナリをルートファイルシステムにコピーするときには，次のようにするとよい
でしょう:

<verb>
	objcopy --strip-all FROM TO
</verb>

<ncdx/strip/<ncdx/objcopy/<nidx/libraries, stripping/
<!--
When copying libraries, use:
-->
ライブラリをコピーするときには次のようにします:

<verb>
	objcopy --strip-debug FROM TO
</verb>

<!--
<tag/Move non-critical files to a utility disk/ If some of your binaries are
not needed immediately to boot or login, you can move them to a utility disk.
See section <ref id="utilitydisk" name="Building a utility disk"> for details.
You may also consider moving modules to a utility disk as well.
-->
<tag/必須でないファイルをユーティリティディスクに移す/ ブートやログイ
ンには直接必要がないバイナリは，ユーティリティディスクに移すことができ
ます．詳しくは
<ref id="utilitydisk" name="ユーティリティディスク作成">の節をご覧くだ
さい．モジュールをユーティリティディスクに移すことを考えてもよいかもし
れません．
<nidx/utility diskette/

</descrip>

<!-- <sect1>Non-ramdisk root filesystems.<p> -->
<sect1>非 RAM ディスクのルートファイルシステム<p>
<label id="nonramdiskroot">
<nidx/ramdisk/

<!--
Section <ref id="buildroot" name="Building a root filesystem"> gave
instructions for building a compressed root filesystem which is loaded to
ramdisk when the system boots.  This method has many advantages so it is
commonly used.  However, some systems with little memory cannot afford the
RAM needed for this, and they must use root filesystems mounted directly
from the diskette.
-->
<ref id="buildroot" name="ルートファイルシステム作成">の章では，圧縮形
式のルートファイルシステムの作成方法を説明しました．これはシステムの起
動時に ramkdisk へのロードを行うものです．この方法には利点が多いので，
一般的に使われています．ですがシステムによっては，メモリが少なくて 
RAM ディスクを用意できないこともあります．このような場合には，フロッピー
ディスクから直接ルートファイルシステムをマウントしなければなりません．

<!--
Such filesystems are actually easier to build than compressed root filesystems
because they can be built on a diskette rather than on some other device, and
they do not have to be compressed.  We will outline the procedure as it
differs from the instructions above.  If you choose to do this, keep in mind
that you will have <em/much less space/ available.
-->
圧縮形式のファイルシステムを作るよりも，このようなファイルシステムを作
る方が実は簡単です．なぜなら，何か別のデバイスではなく直接フロッピー上
に作成することができるし，圧縮する必要もないからです．ここでは前の説明
との相違点の形で作成方法の概略を示します．この方法を使う場合には，
<em/使える容量はずっと小さくなってしまう/点を忘れないようにしましょう．

<enum>

<!--
<item>Calculate how much space you will have available for root files.
-->
<item>ルートに置くファイルに使える容量を計算します．

<!--
If you are building a single boot/root disk, you must fit all blocks for the
kernel plus all blocks for the root filesystem on the one disk.
-->
1枚のブート/ルートディスクを作る場合，カーネル分のブロックとルートファ
イルシステム分のブロックが全て1枚のディスクに収まるようにしなければな
りません．

<!--
<item>Using <tt/mke2fs/, create a root filesystem on a diskette of the
appropriate size.
-->
<item><tt/mke2fs/ を用い，適切なサイズのルートファイルシステムをフロッ
ピー上に作成します．

<!--
<item>Populate the filesystem as described above.  
-->
<item>先に述べた手順でファイルシステムを移します．

<!--
<item>When done, unmount the filesystem and transfer it to a disk file 
but <em/do not compress it/.
-->
<item>これが終わったら，ファイルシステムをアンマウントし，これをディス
クのファイルに転送します．ただし<em/圧縮してはいけません/．

<!--
<item>Transfer the kernel to a floppy diskette, as described above.  When
calculating the ramdisk word, <bf/set bit 14 to zero/, to indicate that the
root filesystem is not to be loaded to ramdisk.  Run the <tt/rdev/'s as
described.<ncdx/rdev/<nidx/ramdisk word/
-->
<item>先に述べた手順でカーネルをフロッピーに転送します．ramdisk 変数を
求めるときには，<bf/第14ビットは0にして/ルートファイルシステムが 
RAM ディスクにロードされないことを指示します．前に説明したように 
<tt/rdev/ を実行します．<ncdx/rdev/<nidx/ramdisk word/

<!--
<item>Transfer the root filesystem as before.
-->
<item>先の説明と同じようにルートファイルシステムを転送します．

</enum>

<!--
There are several shortcuts you can take.  If you are building a two-disk set,
you can build the complete root filesystem directly on the second disk and you
need not transfer it to a hard disk file and then back.  Also, if you are
building a single boot/root disk and using LILO, you can build a 
<em/single/ filesystem on the entire disk, containing the kernel, LILO files
and root files, and simply run LILO as the last step.
-->
もうちょっと簡単な方法もいくつかあります．2枚組のディスクセットを作る
場合，最終的なルートファイルシステムを直接2枚目のディスクに作れば，一
度ハードディスクのファイルに移してから再び書き戻す必要はありません．ま
た，LILO を使って1枚のブート/ルートディスクを作る場合，ディスク全体を
<em/1つの/ファイルシステムにし，カーネル，LILO 関連ファイル，ルートに
置くファイルを全て置くことができます．この場合も前に述べたように LILO 
を実行するだけです．

<!-- <sect1>Building a utility disk.<p> -->
<sect1>ユーティリティディスクの作成<p>
<label id="utilitydisk">
<nidx/utility diskette/

<!--
Building a utility disk is relatively easy &mdash; simply create a filesystem
on a formatted disk and copy files to it.  To use it with a bootdisk,
mount it manually after the system is booted.
-->

<!--
In the instructions above, we mentioned that the utility disk could be
mounted as <tt>/usr</tt>.  In this case, binaries could be placed into a
<tt>/bin</tt> directory on your utility disk, so that placing
<file>/usr/bin</file> in your path will access them.  Additional libraries
needed by the binaries are placed in <tt>/lib</tt> on the utility disk.
-->
前の説明には，ユーティリティディスクは <tt>/usr</tt>にマウントすること
ができると書きました．この場合にはバイナリをユーティリティディスクの
<tt>/bin</tt> に置きます．こうすると，パスを <file>/usr/bin</file> に
通せばアクセスできるようになります．バイナリが必要とする追加のライブラ
リはユーティリティディスクの <tt>/lib</tt> に置きます．

<!--
There are several important points to keep in mind when designing a utility
disk:
-->
ユーティリティディスク作成の際には注意すべき点がいくつかあります:

<enum>

<!--
<item>Do not place critical system binaries or libraries onto the utility
disk, since it will not be mountable until after the system has booted.
-->
<item>システムに必須のバイナリやライブラリをユーティリティディスクに置
いてはなりません．このディスクはシステムが起動するまではマウントするこ
とができないからです．

<!--
<item>You cannot access a floppy diskette and a floppy tape drive
simultaneously.  This means that if you have a floppy tape drive, you will not
be able to access it while your utility disk is mounted.
-->
<item>フロッピーディスクドライブとフロッピーテープドライブに同時にアク
セスすることはできません．つまりユーティリティディスクのマウント中は，
フロッピーテープドライブにはアクセスできないということです．

<!--
<item>Access to files on the utility disk will be slow.
-->
<item>ユーティリティディスク上のファイルへのアクセスは遅くなります．

</enum>

<!--
Appendix <ref id="utilitylist" name="Sample utility disk directory listing">
shows a sample of files on a utility disk.  Here are some ideas for files you
may find useful: programs for examining and manipulating disks (<tt/format,
fdisk/) and filesystems (<tt/mke2fs, fsck, debugfs, isofs.o/), a lightweight text
editor (<tt/elvis, jove/), compression and archive utilities (<tt/gzip, tar,
cpio, afio/), tape utilities (<tt/mt, tob, taper/), communications utilities
(<tt/ppp.o, slip.o, minicom/) and utilities for devices (<tt/setserial,
mknod/).
-->
ユーティリティディスクに置くファイルの例を，付録の
 <ref id="utilitylist" name="ユーティリティディスクのサンプルのディレクトリ一覧">
に載せています．ここでは便利と思われるものをいくつか挙げておきます: ディ
スクの検査・操作用のプログラム(<tt/format, fdisk/)，ファイルシステムの
検査・操作用のプログラム(<tt/mke2fs, fsck, debugfs, isofs.o/)，軽量テ
キストエディタ(<tt/elvis, jove/)，圧縮・アーカイブのユーティリティ
(<tt/gzip, tar, cpio, afio/)，テープ用ユーティリティ(<tt/mt, tob,
taper/)，通信ユーティリティ(<tt/ppp.o, slip.o, minicom/)，デバイス用の
ユーティリティ(<tt/setserial, mknod/)．

<!-- <sect>How the pros do it.<p> -->
<sect>プロが使う方法<p>
<label id="pros">

<!--
You may notice that the bootdisks used by major distributions such as
Slackware, RedHat or Debian seem more sophisticated than what is described
in this document.  Professional distribution bootdisks are based on the
same principles outlined here, but employ various tricks because their
bootdisks have additional requirements.  First, they must be able to work
with a wide variety of hardware, so they must be able to interact with the
user and load various device drivers.  Second, they must be prepared to
work with many different installation options, with varying degrees of
automation.  Finally, distribution bootdisks usually combine installation
and rescue capabilities.
-->
本文書で説明したブートディスクよりも，メジャーなディストリビューション
(Slackware, RedHat, Debian 等)で使われているブートディスクの方が
よくできていることに読者の皆さんも気づかれるかもしれません．
このようなディストリビューションのブートディスクも基本的なところは
同じなのですが，他にも色々なテクニックが使われています．
というのも，このようなブートディスクには，必要条件がより多くあるからです．
まず，このようなブートディスクは
色々なハードウェアで動作しなければならないので，
ユーザが指定した各種デバイスドライバをロードできなければなりません．
次に，色々なインストールオプションで動作しなければなりません
(これはインストールの自動化の度合いによって変わりますが)．
さらに，ディストリビューションのブートディスクはインストールと
レスキューの機能を合わせ持っています．

<nidx/initial ramdisk (initrd)/

<!--
Some bootdisks use a feature called <bf/initrd/ (<bf/initial ramdisk/).
This feature was introduced around 2.0.x and allows a kernel to boot in two
phases.  When the kernel first boots, it loads an initial ramdisk image
from the boot disk.  This initial ramdisk is a root filesystem containing a
program that runs before the real root fs is loaded.  This program usually
inspects the environment and/or asks the user to select various boot
options, such as the device from which to load the real rootdisk.  It
typically loads additional modules not built in to the kernel.  When this
initial program exits, the kernel loads the real root image and booting
continues normally.  For further information on <tt/initrd/, see
<file>/usr/src/linux/Documentation/initrd.txt</file> and
<url url="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz">
-->
ブートディスクによっては <bf/initrd/ (<bf/初期 RAM ディスク (initial
ramdisk)/) という機能を使っているものもあります．
この機能はカーネル 2.0.x あたりで導入されたもので，2 つのフェーズに分
けてカーネルを起動できるようにします．最初にカーネルを起動するとき，
<tt/initrd/ は初期 RAM ディスクのイメージをブートディスクからロードし
ます．この初期 RAM ディスクはルートファイルシステムであり，実際のルー
トファイルシステムのロードの前に実行するプログラムが入っています．通常，
このプログラムはシステム環境を調べたり，ユーザに起動オプション(実際の
ルートディスクをロードするデバイス等)を問い合わせたりします．また 
<tt/initrd/ は，カーネルに組み込まれていない追加モジュールのロード
も行います．この初期プログラムが終了すると，カーネルは実際のルートイメー
ジをロードして通常通りに起動を続行します．<tt/initrd/ に関する詳しい情
報については，
<file>/usr/src/linux/Documentation/initrd.txt</file>や
<url url="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz">
をご覧ください．

訳注: JF には
<htmlurl url="http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/initrd.txt.html"
name="initrd.txt の翻訳"> があります．また，
<htmlurl url="http://www.linux.or.jp/JF/JFdocs/ext-root-mini-HOWTO.html"
name="Ext-Rootfs-mini-HOWTO"> という関連文書があります．

<!--
The following are summaries of how each distribution's installation
disks seem to work, based on inspecting their filesystems and/or
source code.  We do not guarantee that this information is completely
accurate, or that they have not changed since the versions noted.
-->
以下では各ディストリビューションのインストールディスクがどのように動作
するのかを簡単に説明します．これはそれぞれのファイルシステムやソースコー
ドを調べた結果に基づいたものです．この情報が正しい保証はありませんし，
本文書に書いてあるバージョン以降で変更されていない保証もありません．

<!--
Slackware (v.3.1) uses a straightforward LILO boot similar to what is
described in section <ref id="usinglilo" name="Transferring the kernel with
LILO">.  The Slackware bootdisk prints a bootup message (``<tt/Welcome to the
Slackware Linux bootkernel disk!/'') using LILO's <tt/message/ parameter.
This instructs the user to enter a boot parameter line if necessary.  After
booting, a root filesystem is loaded from a second disk.  The user invokes a
<tt/setup/ script which starts the installation.  Instead of using a modular
kernel, Slackware provides many different kernels and depends upon the user to
select the one matching his or her hardware requirements.
-->
Slackware (バージョン 3.1)は
<ref id="usinglilo" name="LILO を使ったカーネルの転送">の節で述べたよ
うな，素直な方法を使っています．Slackware のブートディスクは LILO の 
<tt/message/ パラメータを使って，起動メッセージ
(``<tt/Welcome to the Slackware Linux bootkernel disk!/'')を表示します．
このメッセージを使い，ユーザの必要に応じて起動パラメータ行を入力させま
す．起動の後に，2枚目のディスクからルートファイルシステムがロードされ
ます．それからユーザは <tt/setup/ スクリプトを実行して，インストールを
開始します．Slackware では，カーネルをモジュール化しないで，色々な種類
のカーネル(ブートディスク)を用意しています．ユーザは自分のハードウェア
に合うものを選択します．

<!--
RedHat (v.4.0) also uses a LILO boot.  It loads a compressed ramdisk on the
first disk, which runs a custom <tt/init/ program.  This program queries for
drivers then loads additional files from a supplemental disk if necessary.
-->
RedHat(バージョン 4.0)も LILO による起動を行います．LILO は圧縮形式の 
RAM ディスクを最初のディスクからロードし，この ramdisk でカスタマイズ
された <tt/init/ プログラムが実行されます．このプログラムはドライバの
問い合わせを行い，それから必要に応じて追加ディスクから追加のファイルを
ロードします．

<!--
Debian (v.1.3) is probably the most sophisticated of the installation disk
sets.  It uses the SYSLINUX loader to arrange various load options, then
uses an <tt><cdx/initrd/</tt> image to guide the user through installation.
It appears to use both a customized <tt/init/ and a customized shell.
-->
Debian (バージョン 1.3)のインストールディスクは多分もっとも凝っている
ものでしょう．このディスクは SYSLINUX というローダを使って各種ロードオ
プションを整理し，<tt><cdx/initrd/</tt> イメージを使ってインストールの
間ユーザのガイドを行います．Debian ではカスタマイズした <tt/init/ とカ
スタマイズしたシェルを使っているようです．

<!-- <sect>Frequently asked question (FAQ) list.<p> -->
<sect>FAQ(よくある質問)リスト<p>

<bf>
<!--
Q. I boot from my boot/root disks and nothing happens. What do I do?
-->
Q. boot/root ディスクからブートさせたのですが，何も起こりません．どう
すればよいでしょう?
</bf><p>

<!--
See section <ref id="troubleshooting" name="Troubleshooting">, above.
-->
本文書の<ref id="troubleshooting" name="トラブルシューティング">の章を
ご覧ください．

<!--
<bf>Q. How does the Slackware/Debian/RedHat bootdisk work?
</bf><p>
-->
<bf>Q. Slackware や Debian, RedHat のブートディスクはどのようにして動
いているのですか?
</bf><p>

<!--
See section <ref id="pros" name="What the pros do">, above.
-->
<ref id="pros" name="プロが使う方法">の章をご覧ください．

<!--
<bf>Q. How can I make a boot disk with a XYZ driver?
-->
<bf>Q. XYZ ドライバが入ったブートディスクを作るには?
</bf><p>

<!--
The easiest way is to obtain a Slackware kernel from your nearest 
Slackware mirror site. Slackware kernels are generic kernels which atttempt
to include drivers for as many devices as possible, so if you have a 
SCSI or IDE controller, chances are that a driver for it is included 
in the Slackware kernel.
-->
最も簡単な方法は Slackware のカーネルを最寄りの Slackware のミラーサイ
トから取ってくることです． Slackware のカーネルは可能な限りたくさんの
ドライバを詰め込んだ汎用のカーネルですから， SCSI か IDE のコントローラ
がすでに存在するなら，そのドライバが Slackware のカーネルに含まれている
可能性は高いでしょう．

<!--
Go to the <tt/a1/ directory and select either IDE or SCSI kernel depending on
the type of controller you have. Check the xxxxkern.cfg file for the selected
kernel to see the drivers which have been included in that kernel. If the
device you want is in that list, then the corresponding kernel should boot
your computer. Download the xxxxkern.tgz file and copy it to your boot
diskette as described above in the section on making boot disks.
-->
手持ちのコントローラに合うように <tt/a1/ ディレクトリから IDE または 
SCSI のカーネルを選びます． xxxxkern.cfg ファイルを見て，選んだカーネ
ルに必要なドライバが含まれているかどうか確認してください．もし必要なデ
バイスがリストにあればそのカーネルであなたのコンピュータをブートできる
はずです． xxxxkern.tgz をダウンロードし，ブートディスクの作成方法の章
で説明したやり方でディスクにコピーしてください．
<nidx/device drivers/

<!--
You must then check the root device in the kernel, using the rdev
command:
-->
次に以下の rdev コマンドを実行してカーネルのルートデバイスを確認してく
ださい:
<verb>
	rdev zImage 
</verb>

<!--
<tt/rdev/ will then display the current root device in the kernel.  If this
is not the same as the root device you want, then use <tt/rdev/ to change
it.  For example, the kernel I tried was set to <file>/dev/sda2</file>, but
my root SCSI partition is <file>/dev/sda8</file>.  To use a root diskette,
you would have to use the command:
-->
<tt/rdev/ は現在のカーネルに設定されているルートデバイスを表示します．
もし希望するデバイスと異なる場合は再び <tt/rdev/ を使って変更します．
例えば私が試したカーネルでは <file>/dev/sda2</file> が設定されていまし
たが，私のルートになる SCSI パーティションは <file>/dev/sda8</file> で
す． root ディスクを使うには，以下のコマンドを実行する必要があるでしょ
う．
<verb>
	rdev zImage /dev/fd0
</verb>

<!--
If you want to know how to set up a Slackware root disk as well, that's
outside the scope of this HOWTO, so I suggest you check the Linux Install
Guide or get the Slackware distribution.  See the section in this HOWTO titled
``References''.
-->
Slackware の root と同じようなディスクを作りたい，という質問はこの 
HOWTO の範囲を越えています． Linux Install Guide を見るか，実際に 
Slackware のパッケージを手に入れてください．入手方法はこの HOWTO の参
考文献の章に書いてあります．

<!--
<bf>Q. How do I update my boot diskette with a new kernel?
-->
<bf>Q. カーネルを新しくしたらブートフロッピーはどのように変更すればよいでしょう?
</bf><p>
<nidx/kernel, updating/

<!--
Just copy the kernel to your boot diskette using the dd command for
a boot diskette without a filesystem, or the cp command for a
boot/root disk. Refer to the section in this HOWTO titled ``Boot''
for details on creating a boot disk. The description applies equally
to updating a kernel on a boot disk.
-->
新しいカーネルをブートさせるディスクにコピーするだけです．ブートディス
クの場合は dd コマンドを， ブート/ルートディスクの場合は cp コマンドを
使います． ブートディスクの作成に関しては，``Boot'' の章を参照してくだ
さい．ここに書いてある方法はブートディスクのカーネルを更新する場合にも
使えます．

訳注:
ブート/ルートディスクの場合は LILO を実行しておく必要があります．

<!--
<bf>Q. How do I update my root diskette with new files?
-->
<bf>Q. どうすればルートディスクのファイルを新しくできるでしょう?
</bf><p>
<nidx/root filesystems, updating/

<!--
The easiest way is to copy the filesystem from the rootdisk back to the DEVICE
you used (from section <ref id="creatingrootfs" name="Creating the
filesystem">, above).  Then mount the filesystem and make the changes.  You
have to remember where your root filesystem started and how many blocks it
occupied:
-->
最も楽な方法は，ファイルシステムをルートディスクから自分が使っているデ
バイスにコピーすることです(前述の
<ref id="creatingrootfs" name="ファイルシステムの作成"> の節を参照し
てください)．次にファイルシステムをマウントし，変更を行います．このと
き，ルートファイルシステムが始まる位置と使用するブロック数はメモしてお
きましょう．

<verb>
	dd if=/dev/fd0 bs=1k skip=ROOTBEGIN count=BLOCKS | gunzip > DEVICE
	mount -t ext2 DEVICE /mnt
</verb>

<!--
After making the changes, proceed as before (in Section <ref id="wrappingitup"
name="Wrapping it up">) and transfer the root filesystem back to the disk.
You should not have to re-transfer the kernel or re-compute the ramdisk word
if you do not change the starting position of the new root filesystem.
-->
変更が終わったら，前述(<ref id="wrappingitup" name="仕上げ"> の節)の手
順でルートファイルシステムをディスクに書き戻します．新しいルートファイ
ルシステムの開始位置を変更しない限り，カーネルの転送し直しや，ramdisk 
変数の再計算の必要はありません．

<!--
<bf>Q. How do I remove LILO so that I can use DOS to boot again?
-->
<bf>Q. DOS をブートさせるために LILO を削除したいのですが．
</bf><p>
<ncdx/LILO/
<nidx/Master Boot Record (MBR)/

<!--
This is not really a Bootdisk topic, but it is asked often.  Within Linux, you 
can run:
-->
本当はブートディスクとは関係ない話なんですが，非常によく聞かれる質問で
す．Linux では次のコマンドを実行してください:

<tscreen><verb>
	/sbin/lilo -u
</verb></tscreen>

<!--
You can also use the <tt/dd/ command to copy the backup saved by LILO to the
boot sector.  Refer to the LILO documentation if you wish to do this.
-->
LILO が保存したバックアップを <tt/dd/ コマンドを使ってブートセクタにコ
ピーすることもできます．この方法については LILO の文書を参照してください．

<!--
Within DOS and Windows you can use the DOS command:
-->
DOS や Windows では次のコマンドを使います:

<tscreen><verb>
	FDISK /MBR
</verb></tscreen>

<!--
MBR stands for Master Boot Record, and it replaces the boot sector with a
clean DOS one, without affecting the partition table.  Some purists disagree
with this, but even the author of LILO, Werner Almesberger, suggests it.  It
is easy, and it works.
-->
MBR は Master Boot Record の略です．このコマンドによってブートセクタが 
DOS のものに置き変わります．このときパーティションテーブルは変わりませ
ん．この方法に反対するコチコチの Linux 教徒もいますが， LILO の作者で
ある Werner Almesberger は賛成派です．簡単ですし，ちゃんと機能します．

<!--
<bf>Q. How can I boot if I've lost my kernel <em/and/ my boot disk?
-->
<bf>Q. カーネルもブートディスクもまとめて無くしてしまいました．どうしましょう?
</bf><p>

<!--
If you don't have a boot disk standing by, probably the easiest method is to
obtain a Slackware kernel for your disk controller type (IDE or SCSI) as
described above for ``How do I make a boot disk with a XXX driver?''.  You can
then boot your computer using this kernel, then repair whatever damage there
is.
-->
ブートディスクを用意していなかった場合には，おそらく Slackware のカー
ネルを利用するのが一番簡単でしょう．お使いのディスクコントローラのタイ
プ(IDE か SCSI)に合う方を使ってください．内容に関しては「XYZ ドライバが
入ったブートディスクを作るには?」のQ&amp;Aに書いてあります．このカーネ
ルでコンピュータがブートできたら障害を直してください．

<!--
The kernel you get may not have the root device set to the disk type and
partition you want. For example, Slackware's generic SCSI kernel has the
root device set to <file>/dev/sda2</file>, whereas my root Linux partition
happens to be <file>/dev/sda8</file>.  In this case the root device in the
kernel will have to be changed.
-->
取ってきたカーネルでは，ルートデバイスが希望のディスクやパーティション
になっていないかもしれません．例えば Slackware の SCSI カーネルではルー
トのデバイスは <file>/dev/sda2</file> になっています．しかし例えば私の 
Linux パーティションは <file>/dev/sda8</file> です．このような場合には
カーネルのルートデバイス設定を変更しなければなりません．

<!--
You can still change the root device and ramdisk settings in the kernel
even if all you have is a kernel, and some other operating system,
such as DOS.
-->
Linux のシステムがなくても，カーネルのルートデバイスや RAM ディスクの
設定は変更することができます． DOS などの OS があれば OK です．

<!--
<tt/rdev/ changes kernel settings by changing the values at fixed offsets in
the kernel file, so you can do the same if you have a hex editor available on
whatever systems you do still have running &mdash; for example, Norton
Utilities Disk Editor under DOS.  You then need to check and if necessary
change the values in the kernel at the following offsets:
-->
<tt/rdev/ はカーネルファイルの決まったオフセットアドレスの部分の値を書
き換えています．ですから，どんなシステム上のものでもバイナリエディタさ
えあれば同じことができます．例えば DOS なら，ノートンユーティリティの
ディスクエディタなどが使えます．カーネルの以下のオフセットアドレスの値
を調べて，必要に応じて変更します:
<nidx/ramdisk word/<ncdx/rdev/

<!--
<tscreen><verb>
HEX     DEC  DESCRIPTION
0x01F8  504  Low byte of RAMDISK word
0x01F9	505  High byte of RAMDISK word
0x01FC  508  Root minor device number - see below
0X01FD  509  Root major device number - see below
</verb></tscreen>
-->
<tscreen><verb>
16進    10進 説明
0x01F8  504  ramdisk 変数の下位バイト
0x01F9  505  ramdisk 変数の上位バイト
0x01FC  508  ルートデバイスのマイナー番号 -- 以下で説明します
0X01FD  509  ルートデバイスのメジャー番号 -- 以下で説明します
</verb></tscreen>

<!--
The interpretation of the ramdisk word was described in Section <ref
id="ramdiskword" name="Setting the ramdisk word">, above.
-->
ramdisk 変数の意味は <ref id="ramdiskword" name="ramdisk 変数の設定">
の節で既に説明しています．

<!--
The major and minor device numbers must be set to the device you want to mount
your root filesystem on. Some useful values to select from are:
-->
メジャー番号とマイナー番号はルートファイルシステムをマウントするデバイ
スの番号にセットします．良く使われる番号を以下に挙げておきます:

<!--
<tscreen><verb>
DEVICE          MAJOR MINOR
DEVICE		MAJOR MINOR
/dev/fd0	    2     0   1st floppy drive
/dev/hda1	    3	  1   partition 1 on 1st IDE drive
/dev/sda1	    8     1   partition 1 on 1st SCSI drive
/dev/sda8	    8     8   partition 8 on 1st SCSI drive
</verb></tscreen>
-->
<tscreen><verb>
デバイス     メジャー マイナー
/dev/fd0            2     0   最初のフロッピードライブ
/dev/hda1           3     1   最初の IDE ドライブのパーティション1
/dev/sda1           8     1   最初の SCSI ドライブのパーティション1
/dev/sda8           8     8   最初の SCSI ドライブのパーティション8
</verb></tscreen>

<!--
Once you have set these values then you can write the file to a diskette using
either Norton Utilities Disk Editor, or a program called <tt/rawrite.exe/.
This program is included in all distributions.  It is a DOS program which
writes a file to the ``raw'' disk, starting at the boot sector, instead of
writing it to the file system.  If you use Norton Utilities you must write the
file to a physical disk starting at the beginning of the disk.
-->
これらの値を設定したら，カーネルファイルをフロッピーに書き込みます．ノー
トンユーティリティのディスクエディタや， <tt/rawrite.exe/ と呼ばれる 
DOS コマンドが使えます．このプログラムはほとんどのディストリビューショ
ンに入っています．ディスクを raw デバイスとみなしてブートセクタからファ
イルを書き込みます．ファイルシステムとしては扱いません．ノートンユーティ
リティを使う場合にはファイルを物理ディスクの先頭から書き込む必要があり
ます．

<!--
<bf>Q. How can I make extra copies of boot/root diskettes?
-->
<bf>Q. ブート/ルートディスクをコピーする方法を教えてください．
</bf><p>

<!--
Because magnetic media may deteriorate over time, you should keep several
copies of your rescue disk, in case the original is unreadable.
-->
磁気メディアは経時劣化しますから，オリジナルが壊れたときのために予備の
レスキューディスクを何枚か欲しいところです．

<!--
The easiest way of making copies of any diskettes, including bootable and
utility diskettes, is to use the <tt/dd/ command to copy the contents of the
original diskette to a file on your hard drive, and then use the same command
to copy the file back to a new diskette.  Note that you do not need to, and
should not, mount the diskettes, because <tt/dd/ uses the raw device
interface.
-->
ブートディスクやユーティリティのフロッピーをコピーする最も簡単な方法は， 
<tt/dd/ コマンドを使ってオリジナルのフロッピーの内容をハードディスクの
ファイルにコピーし，それをまた <tt/dd/ コマンドで別のフロッピーに書き
戻すやり方です． <tt/dd/ コマンドは raw デバイスへの書き込みができます
からフロッピーをマウントする必要はありません(逆にマウントしてはいけま
せん)．

<!--
To copy the original, enter the command:
-->
オリジナルをコピーするには次のコマンドを用います:
<!--
<tscreen><verb>
	dd if=DEVICENAME of=FILENAME
	where	DEVICENAME is the device name of the diskette drive
	and	FILENAME is the name of the (hard-disk) output file 
</verb></tscreen>
-->
<tscreen><verb>
        dd if=DEVICENAME of=FILENAME
        ここで DEVICENAME はディスクドライブのデバイス名であり，
        FILENAME は(ハードディスク上の)出力ファイル名です
</verb></tscreen>

<!--
Omitting the <tt/count/ parameter causes dd to copy the whole diskette (2880
blocks if high-density).
-->
このように <tt/count/ パラメータを省略すると，ディスク全体である2880 
ブロック(高密度フロッピーの場合)がコピーされます．

<!--
To copy the resulting file back to a new diskette, insert the new
diskette and enter the reverse command:
-->
一時ファイルを新しいフロッピーに書き戻すには，新しいフロッピーを入れて
次のコマンドを実行します:
<tscreen><verb>
	dd if=FILENAME of=DEVICENAME
</verb></tscreen>

<!--
Note that the above discussion assumes that you have only one diskette
drive. If you have two of the same type, you can copy diskettes using a
command like:
-->
ここまで述べてきた内容はフロッピードライブがひとつしかない場合です．も
し同じドライブが 2 つある場合には，次のようなコマンドを使えば直接フロッ
ピー間でコピーができます:

<tscreen><verb>
	dd if=/dev/fd0 of=/dev/fd1
</verb></tscreen>

<!--
<bf>Q. How can I boot without typing in "ahaxxxx=nn,nn,nn" every time?
-->
<bf>Q. ブートのたびに "ahaxxxx=nn,nn,nn" と打ち込むのは面倒です．
</bf><p>
<nidx/kernel, parameters/

<!--
Where a disk device cannot be autodetected it is necessary to supply
the kernel with a command device parameter string, such as:
-->
例えば SCSI デバイスが自動的に検出されないような場合には，カーネルに以
下のようなパラメータ文字列を与えてやる必要があります:
<tscreen><verb>
	aha152x=0x340,11,3,1
</verb></tscreen>
<!--
This parameter string can be supplied in several ways using LILO:
-->
LILO を用いてこのパラメータ文字列をカーネルに渡すにはいくつかの方法が
あります:

<itemize>
<!--
<item>By entering it on the command line every time the system is booted via
LILO.  This is boring, though.
-->
<item>システムが LILO によって起動されるたびにコマンドラインからパラメー
タを打ち込む．しかしこれは面倒なんですよね？

<!--
<item>By using the LILO ``<tt/lock/'' keyword to make it store the 
command line as the default command line, so that LILO will use
the same options every time it boots.
-->
<item>LILO の ``<tt/lock/'' キーワードを用いて，コマンドラインから打ち
込んだパラメータをデフォルトにする．次からのブートでは LILO は毎回同じ
オプションを使うようになります．

<!--
<item>By using the <tt/append=/ statement in the LILO config file.  Note that
the parameter string must be enclosed in quotes.
-->
<item>LILO の設定ファイルで <tt/append=/ 宣言を使う．パラメータ文字列
は引用符で囲む必要があることに注意してください．
</itemize>

<!--
For example, a sample command line using the above parameter string
would be:
-->
コマンドラインからパラメータ文字列を打ち込む場合は以下のようになるでしょ
う:
<tscreen><verb>
	zImage	aha152x=0x340,11,3,1 root=/dev/sda1 lock
</verb></tscreen>

<!--
This would pass the device parameter string through, and also ask the
kernel to set the root device to <file>/dev/sda1</file> and save the whole
command line and reuse it for all future boots.
-->
これはデバイスのパラメータ文字列を渡し，カーネルにルートデバイスを 
<file>/dev/sda1</file> にするよう指示し，さらにこのコマンドライン全体
を保存して次からのブートで再び用いるようにしています．

<!--
A sample APPEND statement is:
-->
APPEND 宣言の例を以下に示します:
<tscreen><verb>
	APPEND = "aha152x=0x340,11,3,1"
</verb></tscreen>

<!--
Note that the parameter string must NOT be enclosed in quotes on the 
command line, but it MUST be enclosed in quotes in the APPEND statement.
-->
コマンドラインではパラメータ文字列は引用符で囲ってはいけません．逆に 
APPEND 宣言では引用符で囲わなければいけません．間違えないように．

<!--
Note also that for the parameter string to be acted on, the kernel must
contain the driver for that disk type.  If it does not, then there is nothing
listening for the parameter string, and you will have to rebuild the kernel to
include the required driver.  For details on rebuilding the kernel, cd to
<file>/usr/src/linux</file> and read the README, and read the Linux FAQ and
Installation HOWTO.  Alternatively you could obtain a generic kernel for the
disk type and install that.
-->
パラメータ文字列を機能させるにはカーネルにドライバが含まれていなければ
なりません．含まれていなければそもそもパラメータを受け取るものがないの
ですから，必要なドライバを含んだカーネルを再構築する必要があります．カー
ネル再構築の詳細については <file>/usr/src/linux</file> ディレクトリの 
README や， Linux FAQ， Installation HOWTO などをお読みください．また
は必要なドライバを含んだ汎用のカーネルを手に入れ，それを使ってください．

<!--
Readers are strongly urged to read the LILO documentation before experimenting
with LILO installation.  Incautious use of the <tt/BOOT/ statement can damage
partitions.
-->
LILO をインストールする前に LILO の付属文書を読んでおくことを強くお薦
めします．不用意に <tt/BOOT/ 宣言を使うと，パーティションを壊すことも
ありえます．

<!--
<bf>Q. At boot time, I get error "<tt>A: cannot execute B</tt>". Why?
-->
<bf>Q. ブート時に A: cannot execute B といったエラーが出ます．
</bf><p>
<nidx/hardcoded locations/

<!--
There are several cases of program names being hardcoded in various utilities.
These cases do not occur everywhere, but they may explain why an executable
apparently cannot be found on your system even though you can see that it is
there.  You can find out if a given program has the name of another hardcoded
by using the <tt/strings/ command and piping the output through <tt/grep/.
-->
あるユーティリティが他のプログラムを起動する場合，そのプログラムの名前
がユーティリティの内部にハードコードされていることがあります．こ
のような場合は，実際にプログラムがあってもユーティリティには見えないと
いうことが起こります． <tt/strings/ コマンドを用いた出力をパイプで 
<tt/grep/ につなげば，問題を起こすユーティリティがどんな名前で他のプロ
グラムを使っているかがわかります．

<!--
Known examples of hardcoding are:
-->
ハードコードの例として以下のようなものが知られています:
<itemize>

<!--
<item>Shutdown in some versions has <file>/etc/reboot</file> hardcoded, so
<tt>reboot</tt> must be placed in the <tt>/etc</tt> directory.
-->
<item>特定のバージョンの shutdown は <file>/etc/reboot</file> を直接プ
ログラム中に書いています．従って reboot は <tt>/etc</tt> に置く必要が
あります．

<!--
<item><tt/init/ has caused problems for at least one person, with the
kernel being unable to find <tt/init/.
-->
<item>カーネルが <tt/init/ を見付けられないという問題が起こったことが
あります．

</itemize>

<!--
To fix these problems, either move the programs to the correct directory,
or change configuration files (e.g. <tt/inittab/) to point to the correct
directory.  If in doubt, put programs in the same directories as they are
on your hard disk, and use the same <tt/inittab/ and <file>/etc/rc.d</file>
files as they appear on your hard disk.
-->
これらの問題を解決するにはプログラムを正しいディレクトリに移動するか，
もしくは <tt/inittab/ のような設定ファイルの方を変更する必要があります．
もし疑わしい場合には現在ハードディスクで使っているのと同じディレクトリ
構成， <tt/inittab/, <file>/etc/rc.d</file> を使ってみることです．

<!--
<bf>Q. My kernel has ramdisk support, but initializes ramdisks of 0K
-->
<bf>Q. 私のカーネルは RAM ディスク機能をサポートしているのに RAM ディスクのサイズが 0K になってしまいます．
</bf><p>

<!--
Where this occurs, a kernel message like this will appear as the kernel is
booting: <nidx/ramdisk/
-->
このようなことが起こる場合は，カーネルの起動時に次のようなメッセージが
表示されます: <nidx/ramdisk/

<verb>
	Ramdisk driver initialized : 16 ramdisks of 0K size
</verb>

<!--
This is probably because the size has been set to 0 by kernel parameters at
boot time.  This could possibly be because of an overlooked LILO configuration
file parameter:
-->
これはおそらくブート時にこのサイズがカーネルパラメータで 0 に設定され
ているためでしょう． LILO の設定ファイルに以下のような行がありませんか?
<tscreen><verb>
ramdisk= 0
</verb></tscreen>

<!--
This was included in sample LILO configuration files in some older
distributions, and was put there to override any previous kernel setting.  If
you have such a line, remove it.
-->
古いディストリビューションの一部では LILO の設定ファイルのサンプルにこ
の行が入っていることがあります．この行はカーネルでの設定より優先されて
しまいます．このような行があれば削除しましょう．

<!--
Note that if you attempt to use a ramdisk which has been set to 0K the
behaviour can be unpredictable, and can result in kernel panics.
-->
サイズ 0 の RAM ディスクを使用した場合の結果は予測できません．カーネル
パニックが起こることもありえます．

<APPENDIX>

<!-- <sect>Resources and pointers<label id="references">.<p> -->
<sect>関連情報<label id="references"><p>

<!--
When retrieving a package, always get the latest version unless you have
good reasons for not doing so.
-->
パッケージを入手するときには，特別な理由がない限りはできるだけ新しいも
のを入手しましょう．

<!-- <sect1>Pre-made bootdisks.<p> -->
<sect1>既製のブートディスクの入手<p>
<label id="distbootdisks">

<!--
These are sources for distribution bootdisks.  <em>Please use one of
the mirror sites to reduce the load on these machines.</em>
-->
ここで挙げるのはディストリビューションのブートディスクの配布元です．
<em>マシンに負荷をかけないために，ミラーサイトを使うようにしましょう
</em>．

<itemize>

<!--
<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/bootdsks.144/"
name="Slackware bootdisks">,
<url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/rootdsks/"
name="rootdisks"> 
-->
<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/bootdsks.144/"
name="Slackware のブートディスク">，
<url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/rootdsks/"
name="ルートディスク">，

<!--
and <url url="http://www.slackware.com/getslack/" name="Slackware mirror
sites">
-->
<url url="http://www.slackware.com/getslack/" name="Slackware のミラーサイト">

<!--
<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/redhat/current/i386/images/"
name="RedHat bootdisks"> and <url
url="http://www.redhat.com/mirrors.html" name="Red Hat mirror sites">
-->
<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/redhat/current/i386/images/"
name="RedHat のブートディスク">，<url
url="http://www.redhat.com/mirrors.html" name="RedHat のミラーサイト">

<!--
<item> <url url="ftp://ftp.debian.org/pub/debian/dists/stable/main/disks-i386/current/"
name="Debian bootdisks"> and <url
url="ftp://ftp.debian.org/pub/debian/README.mirrors.html" name="Debian mirror
sites">
-->
<item> <url url="ftp://ftp.debian.org/pub/debian/dists/stable/main/disks-i386/current/"
name="Debian のブートディスク">, <url
url="ftp://ftp.debian.org/pub/debian/README.mirrors.html"
name="Debian のミラーサイト">

</itemize>

<!--
In addition to the distribution bootdisks, the following rescue disk
images are available.  Unless otherwise specified, these are available
in the directory 
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html">
-->
ディストリビューションのブートディスク以外にも，以下のようなレスキュー
ディスクのイメージが入手可能です．特に指定しない限りは
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html">
ディレクトリにあります．
<itemize>

<!--
<item><tt/tomsrtbt/, by Tom Oehser, is a single-disk boot/root disk based
on kernel 2.0, with a large set of features and support programs.  It
supports IDE, SCSI, tape, network adaptors, PCMCIA and more.  About 100
utility programs and tools are included for fixing and restoring disks.
The package also includes scripts for disassembling and reconstructing the
images so that new material can be added if necessary.<p>
-->
<item><tt/tomsrtbt/, 作者は Tom Oehser さん．カーネル 2.0 ベースの 1
枚のブート/ルートディスク．たくさんの機能とサポートプログラムが付いて
います．IDE, SCSI, テープ，ネットワークカード，PCMCIA 等をサポート．
ディスクの修復とデータ書き戻しのためのユーティリティプログラムが約 100
個入っている．このパッケージには，必要に応じて新しいものを追加できるよ
うに，イメージの分解と再構成のためのスクリプトも入っている．

<!--
<item><tt/rescue02/, by John Comyns, is a rescue disk based on kernel
1.3.84, with support for IDE and Adaptec 1542 and NCR53C7,8xx.  It uses ELF
binaries but it has enough commands so that it can be used on any system.
There are modules that can be loaded after booting for all other SCSI
cards.  It probably won't work on systems with 4 mb of ram since it uses a
3 mb ram disk.<p> 
-->
<item><tt/rescue02/, 作者は John Comyns さん．カーネル 1.3.86 ベースの
レスキューディスク．IDE, Adaptec 1542, NCR53C7,8xx をサポート．ELF バ
イナリを使っているが，どんなシステムにでも使えるだけのコマンドが入って
いる．他の SCSI カードのサポート用に起動後にロードできるモジュールがあ
る．RAM ディスクが 3M 必要なので，メモリが 4M のマシンでは動作しないと
思われる．

<!--
<item><tt/resque&lowbar;disk-2.0.22/, by Sergei Viznyuk, is a
full-featured boot/root disk based on kernel 2.0.22 with built-in
support for IDE, many difference SCSI controllers, and ELF/AOUT.  Also
includes many modules and useful utilities for repairing and restoring
a hard disk.<p>
-->
<item><tt/resque&lowbar;disk-2.0.22/, 作者は Sergei Viznyuk さん．
必要な機能が全部揃っている，カーネル 2.0.22 ベースの1枚のブート/ルー
トディスク．IDE と多数の SCSI コントローラ，ELF, a.out を組み込んであ
る．多数のモジュールや，ディスク修復・データ復旧用のユーティリティが入っ
ている．

<!--
<item><tt/cramdisk/ images, based on the 2.0.23 kernel, available for
4 meg and 8 meg machines.  They include math emulation and networking
(PPP and dialin script, NE2000, 3C509), or support for the parallel
port ZIP drive.  These diskette images will boot on a 386 with 4MB RAM.
MSDOS support is included so you can download from the net to a DOS
partition.<p>
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/images">
-->
<item><tt/cramdisk/ イメージ，カーネル 2.0.33 ベース．メモリが 4M や 
8M のマシンでも利用可能．math エミュレーションとネットワーク(PPP,
dialin スクリプト，NE2000, 3C509)，パラレルポート用 ZIP ドライブをサポー
ト．このディスクイメージは RAM が 4M の 386 も起動できる．ネットワーク
から DOS パーティションまでダウンロードに利用できるように，MSDOS サポー
トも入っている．<p>
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/images">

</itemize>

<!-- <sect1>Rescue packages. -->
<sect1>レスキューパッケージ
<p>

<!--
Several packages for creating rescue disks are available on
metalab.unc.edu.  With these packages you specify a set of files for
inclusion and the software automates (to varying degrees) the creation of a
bootdisk.  See <url
url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html"> for
more information.  <bf/Check the file dates carefully/ &#045;&#045; some of these
packages have not been updated in several years and will not support the
creation of a compressed root filesystem loaded into ramdisk.  To the best
of our knowledge, Yard is the only package that will.
-->
レスキューディスクを作るためのパッケージは metalab.unc.edu でいくつか
入手することができます．こうしたパッケージを使うと，入れるファイルをセッ
トでまとめて指定したり，ブートディスクの作成を(程度はいろいろありますが)ソフト
ウェアで自動化することができます．詳しくは
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html">
をご覧ください．<bf/ファイルの日付はよく確認してください/．というのも，
一部のパッケージは何年間も更新されておらず，RAM ディスクにロードする圧
縮形式のルートファイルシステムの作成もサポートしていません．筆者が知る
限りでは，このような古いパッケージは Yard だけですが．

<!-- <sect1>Graham Chapman's shell scripts<p> -->
<sect1>Graham Chapman さんのシェルスクリプト<p>

<!--
Graham Chapman has written a set of scripts that may be useful as examples of
how to create bootdisks.  In previous versions of this HOWTO the scripts
appeared in an appendix, but they have been deleted from the documented and
placed on a web page:
-->
Graham Chapman さんはブートディスクの作り方の例として，便利なスクリプ
トのセットを作成しています．この HOWTO の前のバージョンではこのスクリ
プトを付録として入れていましたが，現在は文書に載せるのはやめてウェブペー
ジに置いています:

<url url="http://www.zeta.org.au/&tilde;grahamc/linux.html">

<!--
You may find it convenient to use these scripts, but if so, read the
instructions carefully &mdash; for example, if you specify the wrong swap device,
you will find your root filesystem has been throroughly and permanently
erased.  Be sure you have it correctly configured before you use it!
-->
このスクリプトを使えば便利さが分かると思いますが，説明はよく読んでくだ
さい．例えば，スワップデバイスを間違えて指定すると，ルートファイルシス
テムが跡形もなく消去されてしまいます．使う前にはちゃんと設定されている
か確かめましょう．

<!-- <sect1>LILO &mdash; the Linux loader.<p> -->
<sect1>LILO -- Linux ローダ<p>
<ncdx/LILO/

<!--
Written by Werner Almesberger.  Excellent boot loader, and the documentation
includes information on the boot sector contents and the early stages of the
boot process.
-->
作者は Werner Almesberger さんです．優れたブートローダですし，ドキュメ
ントにはブートセクタの内容やブートプロセスの初期段階に関する情報が書か
れています．

<!--
Ftp from <url url="ftp://tsx-11.mit.edu/pub/linux/packages/lilo/">.  It is
also available on Metalab and mirrors.
-->
<url url="ftp://tsx-11.mit.edu/pub/linux/packages/lilo/"> から ftp で
入手することができます．metalab やそのミラーからも入手することができま
す．

<!-- <sect1>Linux FAQ and HOWTOs.<p> -->
<sect1>Linux FAQ と HOWTO 文書<p>

<!--
These are available from many sources.  Look at the usenet newsgroups
<tt/news.answers/ and <tt/comp.os.linux.announce/.
-->
色々なところに置いてあります． usenet のニュースグループ 
<tt/news.answers/ や <tt/comp.os.linux.answers/ を見てください．

<!--O
The FAQ is available from <url
url="http://linuxdoc.org/FAQ/Linux-FAQ.html"> and the HOWTOs from <url
url="http://linuxdoc.org/HOWTO/HOWTO-INDEX.html">.  Most documentation for
Linux may be found at <url name="The Linux Documentation Project homepage"
url="http://linuxdoc.org/">.
-->
FAQ は
<url url="http://linuxdoc.org/FAQ/Linux-FAQ.html">
で入手できますし，HOWTO 文書は
<url url="http://linuxdoc.org/HOWTO/HOWTO-INDEX.html">
で入手できます．
Linux 関連の文書のほとんどは
<url name="Linux Documentation Project のホームページ" url="http://linuxdoc.org/">
で入手できます．

<!-- <sect1>Ramdisk usage.<p> -->
<sect1>RAM ディスクの使い方<p>
<nidx/ramdisk/

<!--
An excellent description of the how the new ramdisk code works may be found
with the documentation supplied with the Linux kernel.  See
<file>/usr/src/linux/Documentation/ramdisk.txt</file>.  It is written by Paul
Gortmaker and includes a section on creating a compressed ramdisk.
-->
新しくなった RAM ディスクの動作に関する優れた文書が Linux カーネルに付
属しています． <file>/usr/src/linux/Documentation/ramdisk.txt</file> 
を見てください．これは Paul Gortmaker さんが書いたもので，圧縮ファイル
システムの作り方が書いてあります．

<!-- <sect1>The Linux boot process.<p> -->
<sect1>Linux のブートプロセス<p>
<nidx/boot process/

<!--
For more detail on the Linux boot process, here are some pointers:
-->
Linux のブートプロセスの関する情報へのポインタをいくつか示しておきます:

<itemize>

<!--
<item>The Linux System Administrators' Guide has a section on booting, See
<url url="http://linuxdoc.org/LDP/sag/c1596.html">
-->
<item>「The Linux System Administrators' Guide」にはブートについての章
があります．<url url="http://linuxdoc.org/LDP/sag/c1596.html">
をご覧ください．

<!--
<item>The LILO ``Technical overview'' <url
url="http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz">
has the definitive technical, low-level description of the boot
process, up to where the kernel is started.
-->
<item>LILO の ``Technical overview''
<url url="http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-t-20.ps.gz">
は，カーネルがスタートするまでのブートプロセスを下位レベルから記述した
技術的文書として，非常に優れたものです．

<!--
<item>The source code is the ultimate guide.  Below are some kernel files
related to the boot process.  If you have the Linux kernel source code, you
can find these under <file>/usr/src/linux</file> on your machine;
alternatively, Shigio Yamaguchi (shigio@tamacom.com) has a very nice
hypertext kernel browser at <url
url="http://www.tamacom.com/tour/linux/index.html">.  Here are some
relevant files:
-->
<item>ソースコードは究極のガイドです．ブートに関連するカーネルのファイ
ルをいくつか挙げます．Linux カーネルのソースコードを持っていれば，マシ
ンの <file>/usr/src/linux</file> にあると思います．これ以外にも，
Shigio Yamaguchi さん(shigio@tamacom.com) が作成された素晴らしい
ハイパーテキストカーネルブラウザが <url
url="http://www.tamacom.com/tour/linux/index.html">
にあります．以下に関連ファイルを示します:

<descrip>

<!--
<tag>arch/i386/boot/bootsect.S,setup.S</tag> 
   Contain assembly code for the bootsector.
-->
<tag>arch/i386/boot/bootsect.S,setup.S</tag> 
ブートセクタに関するアセンブリコードがある．

<!--
<tag>arch/i386/boot/compressed/misc.c</tag> 
   Contains code for uncompressing the kernel.
-->
<tag>arch/i386/boot/compressed/misc.c</tag> 
圧縮されたカーネルの展開に関するコードがある．

<!--
<tag>arch/i386/kernel/</tag>
   Directory containing kernel initialization code.  <tt/setup.c/ contains the
   ramdisk word.
-->
<tag>arch/i386/kernel/</tag>
カーネルの初期化のコードがある．<tt/setup.c/ に ramdisk 変数がある．

<!--
<tag>drivers/block/rd.c</tag>
   Contains the ramdisk driver. The procedures <tt/rd&lowbar;load/ and
   <tt/rd&lowbar;load&lowbar;image/ load blocks from a device into a ramdisk.
   The procedure <tt/identify&lowbar;ramdisk&lowbar;image/ determines what
   kind of filesystem is found and whether it is compressed.
-->
<tag>drivers/block/rd.c</tag>
RAM ディスクドライバがある．<tt/rd&lowbar;load/ 手続きと 
<tt/rd&lowbar;load&lowbar;image/ 手続きはデバイスから RAM ディスクにブ
ロックをロードする．<tt/identify&lowbar;ramdisk&lowbar;image/ はファイ
ルシステムの種類を判別し，展開するかどうかを決める．

</descrip>

</itemize>


<!-- <sect>LILO boot error codes.<p> -->
<sect>LILO のブート時のエラーコード<p>
<nidx/LILO, error codes/

<!--
Questions about these errors are asked so often on Usenet that we include
them here as a public service.  This summary is excerpted from Werner
Almsberger's LILO User Documentation, available at <url
url="http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz">.
-->
Usenet でも LILO に関する質問が多いので，公的なサービスのつもりで説明を入れ
ました．この説明は Werner Almsberger さんが書いた LILO のユーザ向け文
書から抜粋したものです．この文書は<url
url="http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz">
で入手できます．

<!--
When LILO loads itself, it displays the word ``<tt/LILO/''.  Each letter is
printed before or after performing some specific action.  If LILO fails at
some point, the letters printed so far can be used to identify the problem.
-->
LILO 自身のロードが終了すると，``<tt/LILO/'' と表示されます．それぞれ
の文字は何らかの操作を行う前後に表示されます．どこかで LILO が止まった
場合，それまでに表示された文字を見れば問題点がわかります．

<descrip>

<!--
<tag>(nothing)</tag> 
    No part of LILO has been loaded.  LILO either isn't installed or the
    partition on which its boot sector is located isn't active.
-->
<tag>(空)</tag>
LILO は全くロードされていません．原因は LILO がインストールされていな
いか，ブートセクタが参照されているパーティションがアクティブでないかの
どちらかでしょう．

<!--
<tag/L/   The first stage boot loader has been loaded and started, 
    but it can't load the second stage boot loader.  The two-digit error codes
    indicate the type of problem. (See also section ``Disk error codes''.)
    This condition usually indicates a media failure or a geometry mismatch
    (e.g. bad disk parameters)
-->
<tag/L/   最初のステージのブートローダはロード・起動されましたが，2 番
目のステージのブートローダがロードできませんでした．2桁のエラーコード
が表示されるので問題の種類がわかります．(``Disk error codes'' の章をご
覧ください．) この状態の場合は通常，メディア異常かジオメトリの不一致
(例: ディスクのパラメータの誤り)が起こっています．

<!--
<tag/LI/   The first stage boot loader was able to load the second stage boot 
    loader, but has failed to execute it. This can either be caused by a 
    geometry mismatch or by moving /boot/boot.b without running the map 
    installer. 
-->
<tag/LI/   最初のステージのブートローダが2番目のステージのブートローダ
をロードすることはできましたが，実行させることはできませんでした．この
原因は，ジオメトリの不一致か /boot/boot.b を動かしたのにマップインストー
ラを実行しなかったのかのどちらかでしょう．

<!--
<tag/LIL/   The second stage boot loader has been started, but it can't load 
    the descriptor table from the map file. This is typically caused by a 
    media failure or by a geometry mismatch. 
-->
<tag/LIL/   2番目のステージのブートローダは起動されましたが，マップファ
イルから記述テーブルを読み出すことができませんでした．この原因は普通，
メディアの異常かジオメトリの不一致のどちらかです．

<!--
<tag/LIL?/   The second stage boot loader has been loaded at an incorrect 
    address. This is typically caused by a subtle geometry mismatch or by
    moving <file>/boot/boot.b</file> without running the map installer.
-->
<tag/LIL?/   2番目のステージのブートローダが間違ったアドレスで起動され
ました．この原因は通常，ジオメトリが微妙にずれているか， 
<file>/boot/boot.b</file>
を動かしたのにマップインストーラを実行しなかったかです．

<!--
<tag/LIL-/   The descriptor table is corrupt. This can either be caused by a 
    geometry mismatch or by moving /boot/map without running the map 
    installer. 
-->
<tag/LIL-/   記述テーブルが壊れています．この原因はジオメトリの不一致
か，<file>/boot/boot.b</file> を動かしたのにマップインストーラを実行し
なかったかです．

<!--
<tag/LILO/   All parts of LILO have been successfully loaded. 
-->
<tag/LILO/   LILO の全ての部分を正常にロードできました．

</descrip>

<!--
If the BIOS signals an error when LILO is trying to load a boot image, the
respective error code is displayed.  These codes range from <tt/0x00/ through
<tt/0xbb/.  See the LILO User Guide for an explanation of these.
-->
LILO がブートイメージをロードしようとした時に BIOS がエラーを出した場
合，それに対応するエラーコードが表示されます．このエラーコードの範囲は
<tt/0x00/ から <tt/0xbb/ です．その内容については LILO のユーザガイド
を参照してください．

<!-- <sect>Sample rootdisk directory listings.<p> -->
<sect>ルートディスクのサンプルのディレクトリ一覧<p>
<label id="listings">
<nidx/root filesystem/

<!--
Here are the contents of a sample root filesystem and a utility diskette.
-->
ルートファイルシステムとユーティリティディスクのサンプルの内容を示しま
す:
<p>

<tscreen><verb>
ルートディレクトリ:
drwx--x--x   2 root     root         1024 Nov  1 15:39 bin
drwx--x--x   2 root     root         4096 Nov  1 15:39 dev
drwx--x--x   3 root     root         1024 Nov  1 15:39 etc
drwx--x--x   4 root     root         1024 Nov  1 15:39 lib
drwx--x--x   5 root     root         1024 Nov  1 15:39 mnt
drwx--x--x   2 root     root         1024 Nov  1 15:39 proc
drwx--x--x   2 root     root         1024 Nov  1 15:39 root
drwx--x--x   2 root     root         1024 Nov  1 15:39 sbin
drwx--x--x   2 root     root         1024 Nov  1 15:39 tmp
drwx--x--x   7 root     root         1024 Nov  1 15:39 usr
drwx--x--x   5 root     root         1024 Nov  1 15:39 var

/bin:
-rwx--x--x   1 root     root        62660 Nov  1 15:39 ash
-rwx--x--x   1 root     root         9032 Nov  1 15:39 cat
-rwx--x--x   1 root     root        10276 Nov  1 15:39 chmod
-rwx--x--x   1 root     root         9592 Nov  1 15:39 chown
-rwx--x--x   1 root     root        23124 Nov  1 15:39 cp
-rwx--x--x   1 root     root        23028 Nov  1 15:39 date
-rwx--x--x   1 root     root        14052 Nov  1 15:39 dd
-rwx--x--x   1 root     root        14144 Nov  1 15:39 df
-rwx--x--x   1 root     root        69444 Nov  1 15:39 egrep
-rwx--x--x   1 root     root          395 Nov  1 15:39 false
-rwx--x--x   1 root     root        69444 Nov  1 15:39 fgrep
-rwx--x--x   1 root     root        69444 Nov  1 15:39 grep
-rwx--x--x   3 root     root        45436 Nov  1 15:39 gunzip
-rwx--x--x   3 root     root        45436 Nov  1 15:39 gzip
-rwx--x--x   1 root     root         8008 Nov  1 15:39 hostname
-rwx--x--x   1 root     root        12736 Nov  1 15:39 ln
-rws--x--x   1 root     root        15284 Nov  1 15:39 login
-rwx--x--x   1 root     root        29308 Nov  1 15:39 ls
-rwx--x--x   1 root     root         8268 Nov  1 15:39 mkdir
-rwx--x--x   1 root     root         8920 Nov  1 15:39 mknod
-rwx--x--x   1 root     root        24836 Nov  1 15:39 more
-rws--x--x   1 root     root        37640 Nov  1 15:39 mount
-rwx--x--x   1 root     root        12240 Nov  1 15:39 mt
-rwx--x--x   1 root     root        12932 Nov  1 15:39 mv
-r-x--x--x   1 root     root        12324 Nov  1 15:39 ps
-rwx--x--x   1 root     root         5388 Nov  1 15:39 pwd
-rwx--x--x   1 root     root        10092 Nov  1 15:39 rm
lrwxrwxrwx   1 root     root            3 Nov  1 15:39 sh -> ash
-rwx--x--x   1 root     root        25296 Nov  1 15:39 stty
-rws--x--x   1 root     root        12648 Nov  1 15:39 su
-rwx--x--x   1 root     root         4444 Nov  1 15:39 sync
-rwx--x--x   1 root     root       110668 Nov  1 15:39 tar
-rwx--x--x   1 root     root        19712 Nov  1 15:39 touch
-rwx--x--x   1 root     root          395 Nov  1 15:39 true
-rws--x--x   1 root     root        19084 Nov  1 15:39 umount
-rwx--x--x   1 root     root         5368 Nov  1 15:39 uname
-rwx--x--x   3 root     root        45436 Nov  1 15:39 zcat

/dev:
lrwxrwxrwx   1 root     root            6 Nov  1 15:39 cdrom -> cdu31a
brw-rw-r--   1 root     root      15,   0 May  5  1998 cdu31a
crw-------   1 root     root       4,   0 Nov  1 15:29 console
crw-rw-rw-   1 root     uucp       5,  64 Sep  9 19:46 cua0
crw-rw-rw-   1 root     uucp       5,  65 May  5  1998 cua1
crw-rw-rw-   1 root     uucp       5,  66 May  5  1998 cua2
crw-rw-rw-   1 root     uucp       5,  67 May  5  1998 cua3
brw-rw----   1 root     floppy     2,   0 Aug  8 13:54 fd0
brw-rw----   1 root     floppy     2,  36 Aug  8 13:54 fd0CompaQ
brw-rw----   1 root     floppy     2,  84 Aug  8 13:55 fd0D1040
brw-rw----   1 root     floppy     2,  88 Aug  8 13:55 fd0D1120
brw-rw----   1 root     floppy     2,  12 Aug  8 13:54 fd0D360
brw-rw----   1 root     floppy     2,  16 Aug  8 13:54 fd0D720
brw-rw----   1 root     floppy     2, 120 Aug  8 13:55 fd0D800
brw-rw----   1 root     floppy     2,  32 Aug  8 13:54 fd0E2880
brw-rw----   1 root     floppy     2, 104 Aug  8 13:55 fd0E3200
brw-rw----   1 root     floppy     2, 108 Aug  8 13:55 fd0E3520
brw-rw----   1 root     floppy     2, 112 Aug  8 13:55 fd0E3840
brw-rw----   1 root     floppy     2,  28 Aug  8 13:54 fd0H1440
brw-rw----   1 root     floppy     2, 124 Aug  8 13:55 fd0H1600
brw-rw----   1 root     floppy     2,  44 Aug  8 13:55 fd0H1680
brw-rw----   1 root     floppy     2,  60 Aug  8 13:55 fd0H1722
brw-rw----   1 root     floppy     2,  76 Aug  8 13:55 fd0H1743
brw-rw----   1 root     floppy     2,  96 Aug  8 13:55 fd0H1760
brw-rw----   1 root     floppy     2, 116 Aug  8 13:55 fd0H1840
brw-rw----   1 root     floppy     2, 100 Aug  8 13:55 fd0H1920
lrwxrwxrwx   1 root     root            7 Nov  1 15:39 fd0H360 -> fd0D360
lrwxrwxrwx   1 root     root            7 Nov  1 15:39 fd0H720 -> fd0D720
brw-rw----   1 root     floppy     2,  52 Aug  8 13:55 fd0H820
brw-rw----   1 root     floppy     2,  68 Aug  8 13:55 fd0H830
brw-rw----   1 root     floppy     2,   4 Aug  8 13:54 fd0d360
brw-rw----   1 root     floppy     2,   8 Aug  8 13:54 fd0h1200
brw-rw----   1 root     floppy     2,  40 Aug  8 13:54 fd0h1440
brw-rw----   1 root     floppy     2,  56 Aug  8 13:55 fd0h1476
brw-rw----   1 root     floppy     2,  72 Aug  8 13:55 fd0h1494
brw-rw----   1 root     floppy     2,  92 Aug  8 13:55 fd0h1600
brw-rw----   1 root     floppy     2,  20 Aug  8 13:54 fd0h360
brw-rw----   1 root     floppy     2,  48 Aug  8 13:55 fd0h410
brw-rw----   1 root     floppy     2,  64 Aug  8 13:55 fd0h420
brw-rw----   1 root     floppy     2,  24 Aug  8 13:54 fd0h720
brw-rw----   1 root     floppy     2,  80 Aug  8 13:55 fd0h880
brw-rw----   1 root     disk       3,   0 May  5  1998 hda
brw-rw----   1 root     disk       3,   1 May  5  1998 hda1
brw-rw----   1 root     disk       3,   2 May  5  1998 hda2
brw-rw----   1 root     disk       3,   3 May  5  1998 hda3
brw-rw----   1 root     disk       3,   4 May  5  1998 hda4
brw-rw----   1 root     disk       3,   5 May  5  1998 hda5
brw-rw----   1 root     disk       3,   6 May  5  1998 hda6
brw-rw----   1 root     disk       3,  64 May  5  1998 hdb
brw-rw----   1 root     disk       3,  65 May  5  1998 hdb1
brw-rw----   1 root     disk       3,  66 May  5  1998 hdb2
brw-rw----   1 root     disk       3,  67 May  5  1998 hdb3
brw-rw----   1 root     disk       3,  68 May  5  1998 hdb4
brw-rw----   1 root     disk       3,  69 May  5  1998 hdb5
brw-rw----   1 root     disk       3,  70 May  5  1998 hdb6
crw-r-----   1 root     kmem       1,   2 May  5  1998 kmem
crw-r-----   1 root     kmem       1,   1 May  5  1998 mem
lrwxrwxrwx   1 root     root           12 Nov  1 15:39 modem -> ../dev/ttyS1
lrwxrwxrwx   1 root     root           12 Nov  1 15:39 mouse -> ../dev/psaux
crw-rw-rw-   1 root     root       1,   3 May  5  1998 null
crwxrwxrwx   1 root     root      10,   1 Oct  5 20:22 psaux
brw-r-----   1 root     disk       1,   1 May  5  1998 ram
brw-rw----   1 root     disk       1,   0 May  5  1998 ram0
brw-rw----   1 root     disk       1,   1 May  5  1998 ram1
brw-rw----   1 root     disk       1,   2 May  5  1998 ram2
brw-rw----   1 root     disk       1,   3 May  5  1998 ram3
brw-rw----   1 root     disk       1,   4 May  5  1998 ram4
brw-rw----   1 root     disk       1,   5 May  5  1998 ram5
brw-rw----   1 root     disk       1,   6 May  5  1998 ram6
brw-rw----   1 root     disk       1,   7 May  5  1998 ram7
brw-rw----   1 root     disk       1,   8 May  5  1998 ram8
brw-rw----   1 root     disk       1,   9 May  5  1998 ram9
lrwxrwxrwx   1 root     root            4 Nov  1 15:39 ramdisk -> ram0
*** 筆者が使っている IDE パーティション用のデバイスだけを入れています．
*** SCSI を使う場合には，代わりに /dev/sdXX デバイスを使います．
crw-------   1 root     root       4,   0 May  5  1998 tty0
crw--w----   1 root     tty        4,   1 Nov  1 15:39 tty1
crw-------   1 root     root       4,   2 Nov  1 15:29 tty2
crw-------   1 root     root       4,   3 Nov  1 15:29 tty3
crw-------   1 root     root       4,   4 Nov  1 15:29 tty4
crw-------   1 root     root       4,   5 Nov  1 15:29 tty5
crw-------   1 root     root       4,   6 Nov  1 15:29 tty6
crw-------   1 root     root       4,   7 May  5  1998 tty7
crw-------   1 root     tty        4,   8 May  5  1998 tty8
crw-------   1 root     tty        4,   9 May  8 12:57 tty9
crw-rw-rw-   1 root     root       4,  65 Nov  1 12:17 ttyS1
crw-rw-rw-   1 root     root       1,   5 May  5  1998 zero

/etc:
-rw-------   1 root     root          164 Nov  1 15:39 conf.modules
-rw-------   1 root     root          668 Nov  1 15:39 fstab
-rw-------   1 root     root           71 Nov  1 15:39 gettydefs
-rw-------   1 root     root          389 Nov  1 15:39 group
-rw-------   1 root     root          413 Nov  1 15:39 inittab
-rw-------   1 root     root           65 Nov  1 15:39 issue
-rw-r--r--   1 root     root          746 Nov  1 15:39 ld.so.cache
*** ld.so.cache は ldconfig が生成するファイルで，ライブラリの位置をキャッ
*** シュします．起動時に ld.so.cache が無いと動かないものはたくさんあ
*** ります．ブートディスクを作った後に ld.so.cache を作り直すか，ブー
*** トディスクに ldconfig を入れ，rc.x スクリプトから ldconfig を実行
*** してキャッシュを更新しましょう．
-rw-------   1 root     root           32 Nov  1 15:39 motd
-rw-------   1 root     root          949 Nov  1 15:39 nsswitch.conf
drwx--x--x   2 root     root         1024 Nov  1 15:39 pam.d
-rw-------   1 root     root          139 Nov  1 15:39 passwd
-rw-------   1 root     root          516 Nov  1 15:39 profile
-rwx--x--x   1 root     root          387 Nov  1 15:39 rc
-rw-------   1 root     root           55 Nov  1 15:39 shells
-rw-------   1 root     root          774 Nov  1 15:39 termcap
-rw-------   1 root     root           78 Nov  1 15:39 ttytype
lrwxrwxrwx   1 root     root           15 Nov  1 15:39 utmp -> ../var/run/utmp
lrwxrwxrwx   1 root     root           15 Nov  1 15:39 wtmp -> ../var/log/wtmp

/etc/pam.d:
-rw-------   1 root     root          356 Nov  1 15:39 other

/lib:
*** 筆者のシステムは glibc を使った ELF システムなので，ld-2.so ローダ
*** が必要です．
-rwxr-xr-x   1 root     root        45415 Nov  1 15:39 ld-2.0.7.so
lrwxrwxrwx   1 root     root           11 Nov  1 15:39 ld-linux.so.2 -> ld-2.0.7.so
-rwxr-xr-x   1 root     root       731548 Nov  1 15:39 libc-2.0.7.so
lrwxrwxrwx   1 root     root           13 Nov  1 15:39 libc.so.6 -> libc-2.0.7.so
lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libcom_err.so.2 -> libcom_err.so.2.0
-rwxr-xr-x   1 root     root         6209 Nov  1 15:39 libcom_err.so.2.0
-rwxr-xr-x   1 root     root       153881 Nov  1 15:39 libcrypt-2.0.7.so
lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libcrypt.so.1 -> libcrypt-2.0.7.so
-rwxr-xr-x   1 root     root        12962 Nov  1 15:39 libdl-2.0.7.so
lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libdl.so.2 -> libdl-2.0.7.so
lrwxrwxrwx   1 root     root           16 Nov  1 15:39 libext2fs.so.2 -> libext2fs.so.2.4
-rwxr-xr-x   1 root     root        81382 Nov  1 15:39 libext2fs.so.2.4
-rwxr-xr-x   1 root     root        25222 Nov  1 15:39 libnsl-2.0.7.so
lrwxrwxrwx   1 root     root           15 Nov  1 15:39 libnsl.so.1 -> libnsl-2.0.7.so
-rwx--x--x   1 root     root       178336 Nov  1 15:39 libnss_files-2.0.7.so
lrwxrwxrwx   1 root     root           21 Nov  1 15:39 libnss_files.so.1 -> libnss_files-2.0.7.so
lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libpam.so.0 -> libpam.so.0.64
-rwxr-xr-x   1 root     root        26906 Nov  1 15:39 libpam.so.0.64
lrwxrwxrwx   1 root     root           19 Nov  1 15:39 libpam_misc.so.0 -> libpam_misc.so.0.64
-rwxr-xr-x   1 root     root         7086 Nov  1 15:39 libpam_misc.so.0.64
-r-xr-xr-x   1 root     root        35615 Nov  1 15:39 libproc.so.1.2.6
lrwxrwxrwx   1 root     root           15 Nov  1 15:39 libpwdb.so.0 -> libpwdb.so.0.54
-rw-r--r--   1 root     root       121899 Nov  1 15:39 libpwdb.so.0.54
lrwxrwxrwx   1 root     root           19 Nov  1 15:39 libtermcap.so.2 -> libtermcap.so.2.0.8
-rwxr-xr-x   1 root     root        12041 Nov  1 15:39 libtermcap.so.2.0.8
-rwxr-xr-x   1 root     root        12874 Nov  1 15:39 libutil-2.0.7.so
lrwxrwxrwx   1 root     root           16 Nov  1 15:39 libutil.so.1 -> libutil-2.0.7.so
lrwxrwxrwx   1 root     root           14 Nov  1 15:39 libuuid.so.1 -> libuuid.so.1.1
-rwxr-xr-x   1 root     root         8039 Nov  1 15:39 libuuid.so.1.1
drwx--x--x   3 root     root         1024 Nov  1 15:39 modules
drwx--x--x   2 root     root         1024 Nov  1 15:39 security

/lib/modules:
drwx--x--x   4 root     root         1024 Nov  1 15:39 2.0.35

/lib/modules/2.0.35:
drwx--x--x   2 root     root         1024 Nov  1 15:39 block
drwx--x--x   2 root     root         1024 Nov  1 15:39 cdrom

/lib/modules/2.0.35/block:
-rw-------   1 root     root         7156 Nov  1 15:39 loop.o

/lib/modules/2.0.35/cdrom:
-rw-------   1 root     root        24108 Nov  1 15:39 cdu31a.o

/lib/security:
-rwx--x--x   1 root     root         8771 Nov  1 15:39 pam_permit.so

マウント用のディレクトリスタブ
/mnt:
drwx--x--x   2 root     root         1024 Nov  1 15:39 SparQ
drwx--x--x   2 root     root         1024 Nov  1 15:39 cdrom
drwx--x--x   2 root     root         1024 Nov  1 15:39 floppy

/proc:

/root:
-rw-------   1 root     root          176 Nov  1 15:39 .bashrc
-rw-------   1 root     root          182 Nov  1 15:39 .cshrc
-rw-------   1 root     root           47 Nov  1 15:39 .glintrc
-rwx--x--x   1 root     root          455 Nov  1 15:39 .profile
-rw-------   1 root     root         4014 Nov  1 15:39 .tcshrc

/sbin:
-rwx--x--x   1 root     root        23976 Nov  1 15:39 depmod
-rwx--x--x   2 root     root       274600 Nov  1 15:39 e2fsck
-rwx--x--x   1 root     root        41268 Nov  1 15:39 fdisk
-rwx--x--x   1 root     root         9396 Nov  1 15:39 fsck
-rwx--x--x   2 root     root       274600 Nov  1 15:39 fsck.ext2
-rwx--x--x   1 root     root        29556 Nov  1 15:39 getty
-rwx--x--x   1 root     root         6620 Nov  1 15:39 halt
-rwx--x--x   1 root     root        23116 Nov  1 15:39 init
-rwx--x--x   1 root     root        25612 Nov  1 15:39 insmod
-rwx--x--x   1 root     root        10368 Nov  1 15:39 kerneld
-rwx--x--x   1 root     root       110400 Nov  1 15:39 ldconfig
-rwx--x--x   1 root     root         6108 Nov  1 15:39 lsmod
-rwx--x--x   2 root     root        17400 Nov  1 15:39 mke2fs
-rwx--x--x   1 root     root         4072 Nov  1 15:39 mkfs
-rwx--x--x   2 root     root        17400 Nov  1 15:39 mkfs.ext2
-rwx--x--x   1 root     root         5664 Nov  1 15:39 mkswap
-rwx--x--x   1 root     root        22032 Nov  1 15:39 modprobe
lrwxrwxrwx   1 root     root            4 Nov  1 15:39 reboot -> halt
-rwx--x--x   1 root     root         7492 Nov  1 15:39 rmmod
-rwx--x--x   1 root     root        12932 Nov  1 15:39 shutdown
lrwxrwxrwx   1 root     root            6 Nov  1 15:39 swapoff -> swapon
-rwx--x--x   1 root     root         5124 Nov  1 15:39 swapon
lrwxrwxrwx   1 root     root            4 Nov  1 15:39 telinit -> init
-rwx--x--x   1 root     root         6944 Nov  1 15:39 update

/tmp:

/usr:
drwx--x--x   2 root     root         1024 Nov  1 15:39 bin
drwx--x--x   2 root     root         1024 Nov  1 15:39 lib
drwx--x--x   3 root     root         1024 Nov  1 15:39 man
drwx--x--x   2 root     root         1024 Nov  1 15:39 sbin
drwx--x--x   3 root     root         1024 Nov  1 15:39 share
lrwxrwxrwx   1 root     root           10 Nov  1 15:39 tmp -> ../var/tmp

/usr/bin:
-rwx--x--x   1 root     root        37164 Nov  1 15:39 afio
-rwx--x--x   1 root     root         5044 Nov  1 15:39 chroot
-rwx--x--x   1 root     root        10656 Nov  1 15:39 cut
-rwx--x--x   1 root     root        63652 Nov  1 15:39 diff
-rwx--x--x   1 root     root        12972 Nov  1 15:39 du
-rwx--x--x   1 root     root        56552 Nov  1 15:39 find
-r-x--x--x   1 root     root         6280 Nov  1 15:39 free
-rwx--x--x   1 root     root         7680 Nov  1 15:39 head
-rwx--x--x   1 root     root         8504 Nov  1 15:39 id
-r-sr-xr-x   1 root     bin          4200 Nov  1 15:39 passwd
-rwx--x--x   1 root     root        14856 Nov  1 15:39 tail
-rwx--x--x   1 root     root        19008 Nov  1 15:39 tr
-rwx--x--x   1 root     root         7160 Nov  1 15:39 wc
-rwx--x--x   1 root     root         4412 Nov  1 15:39 whoami

/usr/lib:
lrwxrwxrwx   1 root     root           17 Nov  1 15:39 libncurses.so.4 -> libncurses.so.4.2
-rw-r--r--   1 root     root       260474 Nov  1 15:39 libncurses.so.4.2

/usr/sbin:
-r-x--x--x   1 root     root        13684 Nov  1 15:39 fuser
-rwx--x--x   1 root     root         3876 Nov  1 15:39 mklost+found

/usr/share:
drwx--x--x   4 root     root         1024 Nov  1 15:39 terminfo

/usr/share/terminfo:
drwx--x--x   2 root     root         1024 Nov  1 15:39 l
drwx--x--x   2 root     root         1024 Nov  1 15:39 v

/usr/share/terminfo/l:
-rw-------   1 root     root         1552 Nov  1 15:39 linux
-rw-------   1 root     root         1516 Nov  1 15:39 linux-m
-rw-------   1 root     root         1583 Nov  1 15:39 linux-nic

/usr/share/terminfo/v:
-rw-------   2 root     root         1143 Nov  1 15:39 vt100
-rw-------   2 root     root         1143 Nov  1 15:39 vt100-am

/var:
drwx--x--x   2 root     root         1024 Nov  1 15:39 log
drwx--x--x   2 root     root         1024 Nov  1 15:39 run
drwx--x--x   2 root     root         1024 Nov  1 15:39 tmp

/var/log:
-rw-------   1 root     root            0 Nov  1 15:39 wtmp

/var/run:
-rw-------   1 root     root            0 Nov  1 15:39 utmp

/var/tmp:

</verb></tscreen>

<!--
長い verb なので，対訳にできない…．

Root directory:

***  I have only included devices for the IDE partitions I use.
***  If you use SCSI, then use the /dev/sdXX devices instead.

***  ld.so.cache is created by ldconfig and caches library locations.
***  Many things break at boot time if ld.so.cache is missing.
***  You can either remake it after creating the bootdisk, or 
***  include ldconfig on the bootdisk and run it from an rc.x script
***  to update the cache.

*** I have an ELF system with glibc, so I need the ld-2.so loader.

***  Directory stubs for mounting
-->


<!-- <sect>Sample utility disk directory listing.<p> -->
<sect>ユーティリティディスクのサンプルのディレクトリ一覧<p>
<label id="utilitylist">
<nidx/utility diskette/

<tscreen><verb>
total 579
-rwxr-xr-x   1 root     root        42333 Jul 28 19:05 cpio*
-rwxr-xr-x   1 root     root        32844 Aug 28 19:50 debugfs*
-rwxr-xr-x   1 root     root       103560 Jul 29 21:31 elvis*
-rwxr-xr-x   1 root     root        29536 Jul 28 19:04 fdisk*  
-rw-r--r--   1 root     root       128254 Jul 28 19:03 ftape.o
-rwxr-xr-x   1 root     root        17564 Jul 25 03:21 ftmt*  
-rwxr-xr-x   1 root     root        64161 Jul 29 20:47 grep*
-rwxr-xr-x   1 root     root        45309 Jul 29 20:48 gzip*
-rwxr-xr-x   1 root     root        23560 Jul 28 19:04 insmod*
-rwxr-xr-x   1 root     root          118 Jul 28 19:04 lsmod*
lrwxrwxrwx   1 root     root            5 Jul 28 19:04 mt -> mt-st*
-rwxr-xr-x   1 root     root         9573 Jul 28 19:03 mt-st*
lrwxrwxrwx   1 root     root            6 Jul 28 19:05 rmmod -> insmod*
-rwxr-xr-x   1 root     root       104085 Jul 28 19:05 tar*
lrwxrwxrwx   1 root     root            5 Jul 29 21:35 vi -> elvis*
</verb></tscreen>


<sect>日本語訳について
<p>
日本語訳は Linux Japanese FAQ Project が行いました。
翻訳に関するご意見は JF プロジェクト
&lt;JF@linux.or.jp&gt;
宛に連絡してください。

改訂履歴を以下に示します。

<descrip>
<tag>v1.01 (翻訳は非公開)</tag>
翻訳:
播口陽一さん

<tag>v2.0-2.3</tag>
翻訳:
中野武雄 &lt;nakano@apm.seikei.ac.jp&gt;

<tag>v3.3-3.5</tag>
翻訳:
藤原輝嘉 &lt;fujiwara@linux.or.jp&gt;

校正:
長谷川靖 &lt;yaz-hase@qb3.so-net.ne.jp&gt;
武井伸光 &lt;takei@cc.kochi-u.ac.jp&gt;
中野武雄 &lt;nakano@apm.seikei.ac.jp&gt;
</descrip>

</article>
