The Linux Bootdisk HOWTO Tom Fawcett (fawcett@croftj.net) 3.6, January 2000 The Linux Japanese FAQ Project (JF@linux.or.jp) v3.6j, 20 January 2000 この文書は Linux 用のブートディスク/ルートディスクを独自に設計・作成す る方法について述べたものです.これらのディスクはレスキューディスクとし て使ったり,システムの新しいコンポーネントをテストする時に使えます. これらのディスクを作る前に, Linux Installation HOWTO や Linux Install Guide などの FAQ や関連文書を読んでください.読んでいな い方はブートディスクを作るべきではありません.単に緊急用のレスキューディ スクが欲しいだけならば, 付録 A をご覧ください. 前書き

注意: この文書の内容は古いかもしれません.表紙の日付が 6 ヵ月 以上古ければ,Linux Documentation Project のホームページ をチェックして,もっと新しい版が出ていないかどうか確認してください. この文書はテキスト形式でも読めないことはないと思いますが, Postscript (Version notes.

--> バージョンに関する注意

grahamc@zeta.org.au) wrote the original Bootdisk-HOWTO and he supported it through version 3.1. Tom Fawcett (fawcett@croftj.net) 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 さん(grahamc@zeta.org.au)がオリジナルの Bootdisk-HOWTO を作成し,バージョン 3.1 まで管理していました.私 Tom Fawcett (fawcett@croftj.net)がカーネル 2.0 に合わせてかなりの 量を書き足し,バージョン 3.2 以降を管理しています.Chapman さんのオリ ジナルの内容もまだたくさん残っています. この文書はにアーカイブされている古いバージョンの Bootdisk-HOWTO をご覧ください. 本文書の情報は Yet to do.

--> まだできていないこと

手伝ってくださる方はいませんか? 例えば CD-ROM や ZIP ディスク,LS110 ディスクなど,起動ディスク のように使える別のメディアの作り方を説明する(あるいは説明している他の 文書へのリンクを用意する). 巨大な libc.so 共有ライブラリの扱い方を説明する. 選択肢は基本的に,古くて小さいライブラリを入手するか,または既存の ライブラリを切り詰めるかのどちらかでしょう. ディストリビューションの起動ディスクの分析をやり直す. 「プロが使う方法」の章を更新する. ディストリビューションに用意されている起動ディスクのアップグレード の方法を説明している章を削除する.この章は役に立つよりも 問題のもとになっているほうが多いようです. トラブルシューティングの章を書き直すか,整理する. フィードバックとクレジット

いい知らせであれ悪い知らせであれ,本文書の内容に対してのフィードバック は歓迎です.文書中では操作手順や情報はできるだけ正確かつ信頼できるもの にしたつもりですが,誤りや抜けがあればぜひお知らせください. 訂正や提案の形で本文書をサポートしてくれた多くの方々に感謝します.この ような貢献のおかげで,自分達だけで作業した場合よりもずっとよい文書にな りました. コメントや訂正,疑問点などは前述のメールアドレスまで送ってください.筆 者もできるだけ質問に答えるつもりですが,質問の前にはまず の章を読んでく ださい. 配布の方針

Copyright © 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 . Please contact the authors if you are unable to get the license.

This is free documentation. It is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. 日本語訳:

Copyright © 1995,1996,1997,1998,1999,2000 by Tom Fawcett and Graham この文書は で入手できる Linux Documentation Project License の条項に基づいて配布できます. ライセンスを入手できない場合には,著者までご連絡ください.

この文書はフリーです.この文書は有用であることを期待して配布しています が,商業利用特定目 的への適合性に関しても,暗黙の保証も含めていかなる保証も行いませ ん. 訳注: この翻訳文書の著作権条項および免責事項に関しては,オリジナルに準ずるも のとします. はじめに

Linux のブートディスクは色々な場面で役に立ちます.例えば: 新しいカーネルのテスト. ディスク障害からの復旧.このような障害の原因にはブートセクタの消 失やディスクヘッドのクラッシュなど様々なものがあります. 壊れたシステムの修復.root ユーザがちょっとミスをしただけでもシス テムは使えなくなってしまいます.このような場合はフロッピーディスクから ブートして復旧しなければならないでしょう. ブートディスクを作成する方法はいくつかあります: Slackware のようなディストリビューションのものを用いる.ディスト リビューションに含まれているブートディスクを用いれば,少なくともブート はできます. レスキューディスク作成ソフトを用いる. ブートディスクを作成するのに何が必要かを学び,自分自身でブートディ スクを作成する. 最後の方法を選ぶ人もいます.自力でできるようにするのですね. これなら何かが壊れた場合でも自力で修復手段を考え出すことがで きますし,おまけに Linux の動作に関する深い理解が得られます. この文書では読者の皆さんは Linux のシステム管理の基本概念を理解して いるものとします.例えば,ディレクトリやファイルシステム,フロッピーディ スクについては知っていることとします./etc/passwd ファイルや fstabファイ ルの目的や内容も知っている必要があります.また,この HOWTO で使うコマ ンドの大部分は root で実行しなければならない点についても理解しているこ ととします. ゼロから独自のブートディスクを作ることは難しいかもしれません.これらの ディスクを作る前に, Linux Installation HOWTO や Linux Installation Guide などの FAQ, 関連文書を読んでください.読んでいない方はブートディスクを 作るべきではありません.単に緊急時に使えるブートディスクが必要なだけなら, 出来合いのものをダウンロードしてくるほうがをご覧ください. ブートディスクとブートのプロセス

ブートディスクは基本的にはシステムのミニチュアであり,必要なものが全て 揃った Linux システムを1枚のフロッピーディスクに収めたものです.このミ ニチュアシステムは,完全なフルサイズの Linux システムの機能の多くを実 行できなければなりません.したがって,ブートフロッピーを作る前には Linux のブートのプロセスの基本を理解しておくべきです.ここで基礎知識を 説明しますが,これを理解できていれば本書の残りの部分もわかると思います. ただし,詳しい部分や変更可能なオプションについては省略している部分も多 くあります. ブートのプロセス

A: in DOS and /dev/fd0 in Linux). The BIOS then tries to execute this sector. On most bootable disks, sector 0, cylinder 0 contains either: --> 全ての PC システムのブート処理では,まず ROM のコード(特に A:,Linux では /dev/fd0) です.BIOS は次にこのセクタを実行しよ うとします.ブート可能なディスクのシリンダ 0,セクタ 0 には, たいてい以下のどちらかが入っています: LILO のようなブートローダのコード.ブートローダはカーネルの位置 を見つけてそれをロード・実行してブートを適切に開始します. Linux のような OS のカーネルの先頭部分. Linux カーネルがフロッピーに生書きされている(raw デバイスとして書き込 まれている)場合,フロッピーの最初のセクタは Linux カーネルそのものにな ります.この最初のセクタはブートデバイスからカーネルの残りの部分をロー ドしてブート処理を続けます. カーネルのロードが完全に終了すると,ロードされたカーネルは基本デバイス を初期化します.次にデバイスのどれかを としてロード・マウントします.ルートファイルシステムはごく普通の ファイルシステムで、``/'' としてマウントされます。 カーネルにはルートファイルシステムの場所を指示してやらなければなり ません.この場所にロードできるイメージが無ければ,カーネルは停止してし まいます. 状況によっては -- フロッピーからブートする場合にはしばしば -- ルートファ イルシステムは にロードされます.これはシステム からディスクのようにアクセスできる RAM です.システムを RAM ディスクにロー ドする理由は 2 つあります.まず RAM はフロッピーディスクよりも桁違いに速 く,システムを速く操作できるからです.またカーネルは をフロッピーから読み込んで, これを RAM ディスクに展開することができるからです.これを使えばフロッピー にずっと多くのファイルを入れることができます. ルートファイルシステムがロード,マウントされると,次のようなメッセージ が表示されます: VFS: Mounted root (ext2 filesystem) readonly. init inittab sysinit 次にシステムはルートファイルシステム(の /bin または /sbinディレクトリ)で/etc/inittabを読み込み, /etc/rc や /etc/init.d/boot 等です.このスクリプトはいろいろなシェル コマンドが書かれたものであり,以下のような基本的なシステムサービスの設 定を行います: 全てのディスクに対して を実行. 必要なカーネルスワップの開始. ネットワークの設定. に記述されたディスクのマウント. システムの初期化をモジュール化するため,このスクリプトから別のスクリプ トを複数個起動することもよく行われます.例えば標準的な SysVinit の構造 では,/etc/rc.d/ ディレクトリに複雑なサブディレクトリがあ り,それぞれのサブディレクトリにはシステムサービスの起動と停止の方法を 指定しているファイルがあります.ですが,ブートディスクの sysinit スク リプトは普通はとてもシンプルなものになるでしょう. sysinit スクリプトが終了すると,制御は のようなプログラムを指定します.ここで指 定したプログラムはコンソールや tty 経由の通信を処理します.おなじみの `` プログラムを 実行し,これがログイン認証やユーザセッションの設定を行います. ディスクの種類

これまで説明した基本的なブート処理を理解していれば,ブートに必要となる 色々な種類のディスクを定義することができます.ここではディスクを4つに 分類します.特に断らない限り,これ以降の議論では「ディスク」という言葉 はフロッピーディスクを指すものとします.ただし,議論の大部分はハードディ スクにも同様に適用できるだろうと思います. ブートディスクは他のフロッピーにあるルートファイルシステムをロードする ことが多いですが,ハードディスク上のルートファイルシステムをロードする ようにブートディスクを設定することもできます.この方法は新しいカーネル のテストをする時によく使います(実は,``root 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. 一旦カーネルがブートすれば,他のディスクなしに,ルートディスクだけ でシステムを動作させることができます.普通はルートディスクは自動的に RAM ディスクにコピーされます.こうすればずっと速くルートディスクにアクセス できますし,ディスクドライブが空くのでユーティリティディスクを利用する こともできます. ブート/ルート カーネルと boot/root disk ルートファイルシステムが両方入っているディスクです.言い換えれば,ハー ドディスク無しで Linux システムの起動と実行を行うために必要なものが全 て入っているディスクです.このようなディスクの利点はコンパクトである -- 1 枚のディスクの中に必要なもの全てが納められている -- こ とです.しかし昨今では色々なもののサイズが大きくなってきていますので, 1 枚のディスクに必要なもの全てを収めることは(圧縮を使っても)難しくなり つつあります. ユーティリティファイルシステムを含みますが,ルートファイル システムとしてマウントするために作られたのではないディスク. ユーティ リティディスクは付加的なデータディスクです.このタイプのディスクはルー トディスクに入り切らない復旧用のユーティリティなどを別に入れておくため に使います. 一般に「ブートディスクの作成」という時は,ブート(カーネル)とルート(ファ イル)の部分を両方作成することを指します.これらは同じディスクになるこ と(1 枚のブート/ルートディスク)も,別のディスクになること(ブートディス ク + ルートディスク)もあります.レスキューディスクの用途には,別々のブー トディスクとルートディスクを組み合わせて使えばとても柔軟に運用できるで しょう.そして,入りきらない分に対してユーティリティディスクを別に用意 するとよいでしょう. ルートファイルシステムの作成

root ファイルシステムには,完全に動作する Linux システムに必要なファイ ル全てが入っていなければなりません.そのためディスクには Linux システ ムにとって必要最小限のファイルが入っていなければなりません: 基本的なファイルシステム構造 最低限必要なディレクトリ: /dev, /proc, /bin, /etc, /lib, /usr, /tmp 基本的なユーティリティ: sh, ls, cp, mv最低限必要な設定ファイル: rc, inittab, fstabデバイス: /dev/hd*, /dev/tty*, /dev/fd0ユーティリティが使う実行時ライブラリ もちろん何かがその上で動かなければシステムは役に立ちません.以下のよう なことができなければ,ルートディスクは役に立つとは言えません: 他のドライブにあるファイルシステム(例えばハードディスク上のルー トファイルシステム)の検査.これを行なうには,検査したいディスクとは別 のドライブ(例えばルートディスク)で Linux を立ち上げ,検査したいディ スクをマウントしていない状態で を実行する必要があります. バックアップから元のルートドライブの全部または一部を ここでCreating the filesystem.

--> ファイルシステムの作成

ルートファイルシステム用の現実的な最小のディレクトリ構成は以下のように なります: /dev -- デバイス,I/O の実行に必要 /proc -- proc ファイルシステムに必要なディレクトリ /etc -- システム設定ファイル /sbin -- 必須のシステムバイナリ /bin -- システムの一部とみなされる基本バイナリ /lib -- プログラム実行に使う共有ライブラリ /mnt -- 他のディスクを扱うためのマウントポイント /usr -- その他のユーティリティやアプリケーション (ここで示したディレクトリ構造はルートフロッピー用のものです.実際の Linux システムではもっと複雑ですし,ちゃんとした方針に従っています.こ の方針は と呼ばれるもので,ファイルを置 くべき場所を決める規則です.) /proc directory is basically a stub under which the proc filesystem is placed. The directories /mnt and /usr are only mount points for use after the boot/root system is running. Hence again, these directories only need to be created. --> このディレクトリのうち 3 つは 空ディレクトリなので,単に/procディレクトリは proc ファイルシステムを配置するための 単なる器です./mnt/usrは,ブート/ルートシステムが 起動した後に使うただのマウントポイントです.というわけで,繰り返しにな りますが,この 3 つのディレクトリは作成するだけでかまいません. 残りの 4 つのディレクトリについては以降の章で説明します. /dev

/dev 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 command. --> /dev ディレクトリは全ての Linux システムに必須のディレクトリ で,システムが使う全てのデバイスに対するスペシャルファイルがここにあり ます./dev 自身は普通のディレクトリで,ごく普通に コマンド)を用いて作成しなければなりません. もっと楽な方法もあります.既に存在する /dev ディレクトリの内 容をコピーして,それから不要なものを消去するのです.注意しなければいけ ない点は,デバイスのスペシャルファイルをコピーする場合には R は必ず大文字 にします.小文字の cp -dpR /dev /mnt ここでフロッピーは /mnt にマウントされているものとします. あえて手間のかかる方法でやりたい場合は, コピーしたいデバイスのメジャー 番号とマイナー番号を mknod コマンドでフロッ ピー上にそれらを作成します. デバイスをコピーしたあと,必要なデバイスが全部ちゃんとレスキューディス クにあるかどうかを確認しましょう.例えば, はテー プデバイスを使いますから,ブートディスクからテープデバイスにアクセスす る予定があるなら,テープのデバイスファイルは全てコピーしておく必要 があります. それぞれのデバイスファイルにひとつづつ /devディレクトリから消しておくと 良いでしょう.明らかに不必要なデバイスが結構あるはずです.例えば SCSI ディスクを持っていないのなら Be sure to include the following files from this directory: console, kmem, mem, null, ram, tty1. --> 次のファイルはこのディレクトリに必ずなければなりません: console, kmem, mem, null, ram, tty1 /etc

このディレクトリには多くの設定ファイルが置かれます.大抵のシステムでは 設定ファイルは以下の 3 つに分類できます: 絶対に必要なもの.例えば 必要かもしれないけれど,よくわからないもの. 勝手にできてしまうゴミ. 必要でないファイルは以下のコマンドで見つけることができます: ls -ltru このコマンドを使うと,ファイルは最後にアクセスされた日が古い順に一覧表 示されるので,アクセスされていないファイルがあれば,ルートフロッピーから 取り除いてしまいましょう. 私の場合ルートフロッピーに入れる設定ファイルの数は下記の 15 個にまで減 らしています.これにより,以下の 3 種類のファイルを扱えばよいようになっ ています: ブート/ルートシステムに設定しなければならないファイル: rc.d/* -- システムの起動と実行レベル変更のスクリプト -- マウントするファイルシステムのリスト -- ブート/ルートシステム用に短くしておいた方が良いファイル: -- ユーザ,ホームディレクトリのリスト セキュリティが重要な場合は, contains at least には少なくとも The rest. They work at the moment, so I leave them alone. --> 残り.現時点でこれらのファイルを置いたままでシステムはちゃんと働 いているので,そのままにしてあります. この中で本当に設定しなければならないのは 2 個のファイルだけです.その 中身は驚くほど小さいものです. #!/bin/sh /bin/mount -av /bin/hostname Kangaroo ディレクトリが正しいことを必ず確かめてください. は特に実行する必要はありません.単に見栄えを良 くするためのものです. fstab の内容は以下の通りです: /dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaults 既に存在する 行は変更して, rc 等の基本的となる起動スクリプトを実行するようにしておかな ければなりません.シリアルポートからのログインを禁止するならば, file looks like this: --> 最小限の は次のようになるでしょう: id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2 ファイルは,起動時やマルチユーザモードへの移行時, 電源断のときなどにシステムが起動(あるいは再起動)するものを定義します. ここで特に注意しておきたい点は, /etc/shutdown has hardcoded in it /etc/reboot. If I move /bin/reboot, and then issue a プログラムによっては,他の場所には移動させられないこともあります. 他のプログラムに位置がハードコード (直接記述) されている場合などが これにあたります. /etc/reboot の場所は /etc/shutdown でハード コードされています.もし /bin/reboot に移動させると, /etc directory, plus all the executables in your /etc directory that you cannot be sure you do not need. As a guide, consult the sample listing in Section . 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 残りのファイルについては /etc ディレクトリにある全てのテキストファイル を単にフロッピーにコピーするだけです.加えて /etc ディレクトリにある実 行ファイルのうち,不要だという自信の無いものを全てコピーします. の章が役に立つでしょう.このようなファイルをコピーするだけでうまく行く こともありますが,システムはそれぞれ大きく異なるのが普通ですから,当然 うまく行かない場合もありえます.絶対確実と言える方法は,/etc/rc.d/ directory containing shell scripts for different run levels. The minimum is a single and the /etc/rc.d directory from your existing system, and prune the shell scripts in the 現在ほとんどのシステムでは,実行レベルごとに異なるシェルスクリプトの置 き場所として /etc/rc.d ディレクトリを使っています.とにか く小さくしたい場合には /etc/rc.d ディレクトリをコピーして,フロッピーベースのシ ステムに不要なものを削っていく方がずっと簡単でしょう. /bin と /sbin

/bin directory is a convenient place for extra utilities you need to perform basic operations, utilities such as for an example list of files that go in a /bin and /sbin directories. It does not include any of the utilities required to restore from backup, such as /usr. --> /bin ディレクトリには で,/bin ディレクトリや /sbinディレクトリに置いたファ イルの例を見てください.この例では /usr にマウントしています. の節で説明し ています.バックアップの作成に使ったのと同じバージョンのバックアップユー ティリティを保存しておく方がたぶんよいでしょう.そうすればバックアップ テープを読めないバージョンのものをインストールして時間を無駄にすること もないでしょう. 次のプログラムは確実に入れましょう: /lib

/lib you place necessary shared libraries and loaders. If the necessary libraries are not found in your /lib directory then the system will be unable to boot. If you're lucky you may see an error message telling you why. --> /lib には必要な共有ライブラリとローダを置きます.必要な共有ラ イブラリが /lib になければシステムをブートすることができません.運が良 ければエラーメッセージで何が足りないかがわかるでしょうが. libc.so., where /lib directory. ほとんど全てのプログラムは,少なくとも libc.so. を必要とします.ここで,/lib をチェックしてみてください. % 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* この場合には コマンドを使って依存関係をチェックします.例を示し ます: % 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) 右側にあるファイルが必要なものです.ファイルはシンボリックリンクである こともあります. 一部のライブラリは非常に大きく,容易にはルートファイルシステ ムに入れられないこともあります.例えば,先に挙げた の節を参照してください. /lib you must also include a loader for the libraries. The loader will be either /lib にはライブラリをロードするためのローダも入れる必要があり ます.ローダのファイルの名前は % 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 作ろうとしているルートファイルシステムに必要なローダをコピーしてくださ い.両方とも必要な場合もあるかもしれません.入れるバイナリに対して,ラ イブラリとローダはProviding for PAM and NSS.

--> PAM と NSS の設定

システムが PAM (差し替え可能な認証モジュール)を使っている場合,ブート ディスクにいくらか手を加えないとログインできなくなってしまいます.PAM とはユーザの認証とサービスへのユーザアクセスとを制御するための手法で, きれいにモジュール化されているものです.システムが PAM を使っているか どうかを簡単に調べるには,ハードディスクの /etc ディレク トリに pam.conf ファイルか pam.d ディレクト リがあるかどうか確認することです.このどちらかが存在する場合,最低限の PAM サポートを準備しなければなりません.(調べるための別の方法としては, lddlogin の実行ファイルに対して使ってみ る方法もあります.出力に libpam.so が含まれる場合には, PAM が必要です.) 好運なことに,ブートディスクでは通常,セキュリティを考える必要は全くあ りません.なぜなら,マシンに物理的にアクセスできるならば,いずれにせよ どんなことでもできるからです.よって,事実上は PAM を無効化しても構い ません.これは次のような内容の簡単な /etc/pam.conf を 作成するだけで OK です: 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 /lib/security/pam_permit.so ファイルも ルートファイルシステムにコピーします.このライブラリは 8K 程度しかないので,負担は最小限で済みます. この設定にすると,そのマシンのファイルやサービスには誰でも完全なアクセ スができるようになります.何らかの理由でブートディスクでもセキュリティ に注意したい場合には,ハードディスクの PAM の設定の一部あるいは全部を ルートファイルシステム上にコピーしなければなりません.PAM の文書をよく 読んで,/lib/security にあるライブラリのうち必要なものを ルートファイルシステムにコピーしてください. また,ブートディスクには /lib/libpam.so を入れる必要があ りますが,既に読者のみなさんはこれは知っているはずです.なぜなら, /bin/login に ldd を実行したときに,このファイルが依存関 係で表示されたからです. NSS (ネームサービス切り替え)

glibc(別名 libc6)を使っている場合,ネームサービスに手を加えなければロ グインできません.NSS ではファイル /etc/nsswitch.conf を 使って様々なサービスへのデータベース参照を制御します.ネットワークのサー ビス(DNS や NIS の参照等)にアクセスするつもりがなければ,以下のような 簡単な nsswitch.conf を準備するだけです: 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 この指定では全てのサービスをローカルファイルだけから受けるようになりま す.また,/lib/libnss_files.so.1 ファイルも必要になる でしょう.このファイルはファイルの参照を扱うために動的にロードされます. ブートディスクからネットワークにアクセスすることを考えているならば,もっ とちゃんとした nsswitch.conf を書こうと思うかもしれません. 指定しようとするサービスごとに /lib/libnss_サービス.so.1を組み込む 必要があることを忘れないでください. モジュール

モジュール化したカーネルを使っている場合,起動後にブートディスクからど のモジュールをロードしたいのかを考えなければなりません.バックアップテー プがフロッピーテープにある場合は/lib/modules. You should also include /etc/conf.modules. --> このようなモジュールは /lib/modules に置きます.また, /etc/conf.modules も一緒に入れましょう. しかし,モジュールを使う最大の利点は,必須でないモジュールをユーティリ ティディスクに移しておいて必要な時にロードできる点です.これにより,ルー トディスクで使う容量が減ります.異なる種類のデバイスを多く扱わなければ ならないかもしれない場合,たくさんのドライバを組み込んだ巨大なカーネル を1つ作るよりもこのアプローチの方が好ましいでしょう. Some final details.

--> その他の細かい事項

/var/run/utmp ファイルや /var/log ディレクト リが存在しない場合,一部のシステムプログラム( mkdir -p /mnt/var/{log,run} touch /mnt/var/run/utmp 必要なライブラリを設定したら,最後に /etc/ld.so.cache を作り直します.このキャッ シュがローダにライブラリの場所を教えます. chdir /mnt; chroot /mnt /sbin/ldconfig Wrapping it up.

--> 仕上げ

この時点で圧縮形式のルートファイルシステムは完成しています.次のステッ プはカーネルを構築または選択することです.ほとんどの場合は現在使ってい るカーネルをコピーし,それで作ったフロッピーからブートすればよいでしょ う.それでも別のカーネルを作りたい場合もあることでしょう. 理由の1つは大きさです.1枚のブート/ルートディスクを作る場合,カーネル はフロッピー中で最大に近いファイルになるはずです.そこで,カーネルのサ イズをできるだけ小さくしておく必要があります.カーネルのサイズを小さく するには,サポートする機能をシステムに必要な最小限のものに絞ってカーネ ルを構築します.つまり,不要なものを全て外すのです.ネットワーク機能は 外してよいでしょうし,ブート/ルートシステムでは不必要なディスクやその 他のデバイスも外せるでしょう.ただし,既に述べたように RAM ディスクと ext2 はカーネルに組み込んでおかなければ カーネルに持たせる最低限の機能が決まったら,次はカーネ ルに戻すものを決める必要があります.ブート/ルートフロッピーのシステム を使う一般的なユーザの多くは多分壊れたルートファイルシステムの検査と復 旧を行おうとしているのでしょうから,これを行うためのカーネルのサポート が必要でしょう.例えば,バックアップが全て ftape を使ってテープに入れ られており,かつ現在ルートにしているドライブと ftape が入っているドラ イブが壊れてしまった場合,バックアップテープから復旧を行なうことはでき ません.こうなってしまったら,Linux を再インストールして つまり重要なのは,通常のカーネルに組み込んでいるバックアップ用の I/O サポートは,ブート/ルートのカーネルにも組み込んでおくべきだということ です. /usr/src/linux. If you have trouble building a kernel, you should probably not attempt to build boot/root systems anyway. Remember to compress the kernel with `` 実際にカーネルを構築するための手順は,カーネルに付属の文書で説明されて います.これはとても簡単なので,まずは /usr/src/linux を ご覧ください.カーネルもちゃんと作れないようならば,ブート/ルートディ スクを作ろうと考えるのはやめた方がいいでしょう.``Putting them together: Making the diskette(s).

--> 全部をまとめる: フロッピーの作成

これでカーネルと圧縮形式のルートファイルシステムができました.1枚のブー ト/ルートディスクを作るならば,両方のサイズを合わせても1枚のディスクに 収まることを確認します.ブート+ルートを2枚組で作るならば,ルートファイ ルシステムが1枚のフロッピーに収まることを確認します. 次にブートディスクのカーネルを LILO で起動するかどうかを決めます.別の 方法としては,カーネルを直接フロッピーに書き込んで /etc/lilo.conf を見てください.このファイルがあって, ``. --> LILO を使うことにした人はこのまま読み続けてください.カーネル を直接転送することにした人は, の節へ進んでください. LILO を使ったカーネルの転送

--> ramdisk 変数の設定

最後のステップはルートファイルシステムの転送です. ルートファイルシステムをカーネルと dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOCKS ルートファイルシステムを dd if=rootfs.gz of=/dev/fd0 bs=1k お疲れさま,これで作業終了です! 緊急用のディスクとして保管する前に は必ずテストをしましょう.このディスクで起動できなければ,トラブ ルシューティングがあるので,この先を読んでみましょう. トラブルシューティング,または挫折の苦しみ

Id xxx respawning too fast: disabled for 5 minutes /etc/inittab are correct. If you get strange messages from /etc/inittab is wrong. The options of the これは /etc/inittab から の呼び出し方が正しいかどうかも調べてください. /etc/inittab からの呼び 出し方が間違っています.. The problem may also be that you use shadow passwords and didn't copy /etc/shadow to your bootdisk. --> ログインプロンプトが現われ,正しいログイン名を入力したのに,即座に次の ログインプロンプトをシステムが出す場合には,PAM か NSS に問題があると 思われます. の節をご覧ください.シャ ドウパスワードを使っているのに /etc/shadow をブートディス クにコピーしていない場合にも,この問題が出ることがあります. 何かの実行ファイル(例えば Miscellaneous topics.

--> その他のトピックス

ファイルシステムのサイズの削減

' を行うと 'not stripped' と表示されます.バイ ナリをルートファイルシステムにコピーするときには,次のようにするとよい でしょう: objcopy --strip-all FROM TO ライブラリをコピーするときには次のようにします: objcopy --strip-debug FROM TO の節をご覧くだ さい.モジュールをユーティリティディスクに移すことを考えてもよいかもし れません. 非 RAM ディスクのルートファイルシステム

--> ユーティリティディスクの作成

--> プロが使う方法

--> FAQ(よくある質問)リスト

Q. boot/root ディスクからブートさせたのですが,何も起こりません.どう すればよいでしょう?

本文書のの章を ご覧ください. Q. Slackware や Debian, RedHat のブートディスクはどのようにして動 いているのですか?

の章をご覧ください. Q. XYZ ドライバが入ったブートディスクを作るには?

最も簡単な方法は Slackware のカーネルを最寄りの Slackware のミラーサイ トから取ってくることです. Slackware のカーネルは可能な限りたくさんの ドライバを詰め込んだ汎用のカーネルですから, SCSI か IDE のコントローラ がすでに存在するなら,そのドライバが Slackware のカーネルに含まれている 可能性は高いでしょう. 手持ちのコントローラに合うように 次に以下の rdev コマンドを実行してカーネルのルートデバイスを確認してく ださい: rdev zImage /dev/sda2 が設定されていまし たが,私のルートになる SCSI パーティションは /dev/sda8 で す. root ディスクを使うには,以下のコマンドを実行する必要があるでしょ う. rdev zImage /dev/fd0 Slackware の root と同じようなディスクを作りたい,という質問はこの HOWTO の範囲を越えています. Linux Install Guide を見るか,実際に Slackware のパッケージを手に入れてください.入手方法はこの HOWTO の参 考文献の章に書いてあります. Q. カーネルを新しくしたらブートフロッピーはどのように変更すればよいでしょう?

新しいカーネルをブートさせるディスクにコピーするだけです.ブートディス クの場合は dd コマンドを, ブート/ルートディスクの場合は cp コマンドを 使います. ブートディスクの作成に関しては,``Boot'' の章を参照してくだ さい.ここに書いてある方法はブートディスクのカーネルを更新する場合にも 使えます. 訳注: ブート/ルートディスクの場合は LILO を実行しておく必要があります. Q. どうすればルートディスクのファイルを新しくできるでしょう?

, above). Then mount the filesystem and make the changes. You have to remember where your root filesystem started and how many blocks it occupied: --> 最も楽な方法は,ファイルシステムをルートディスクから自分が使っているデ バイスにコピーすることです(前述の の節を参照し てください).次にファイルシステムをマウントし,変更を行います.このと き,ルートファイルシステムが始まる位置と使用するブロック数はメモしてお きましょう. dd if=/dev/fd0 bs=1k skip=ROOTBEGIN count=BLOCKS | gunzip > DEVICE mount -t ext2 DEVICE /mnt 変更が終わったら,前述( の節)の手 順でルートファイルシステムをディスクに書き戻します.新しいルートファイ ルシステムの開始位置を変更しない限り,カーネルの転送し直しや,ramdisk 変数の再計算の必要はありません. Q. DOS をブートさせるために LILO を削除したいのですが.

本当はブートディスクとは関係ない話なんですが,非常によく聞かれる質問で す.Linux では次のコマンドを実行してください: /sbin/lilo -u LILO が保存したバックアップを DOS や Windows では次のコマンドを使います: FDISK /MBR MBR は Master Boot Record の略です.このコマンドによってブートセクタが DOS のものに置き変わります.このときパーティションテーブルは変わりませ ん.この方法に反対するコチコチの Linux 教徒もいますが, LILO の作者で ある Werner Almesberger は賛成派です.簡単ですし,ちゃんと機能します. Q. カーネルもブートディスクもまとめて無くしてしまいました.どうしましょう?

ブートディスクを用意していなかった場合には,おそらく Slackware のカー ネルを利用するのが一番簡単でしょう.お使いのディスクコントローラのタイ プ(IDE か SCSI)に合う方を使ってください.内容に関しては「XYZ ドライバが 入ったブートディスクを作るには?」のQ&Aに書いてあります.このカーネ ルでコンピュータがブートできたら障害を直してください. 取ってきたカーネルでは,ルートデバイスが希望のディスクやパーティション になっていないかもしれません.例えば Slackware の SCSI カーネルではルー トのデバイスは /dev/sda2 になっています.しかし例えば私の Linux パーティションは /dev/sda8 です.このような場合には カーネルのルートデバイス設定を変更しなければなりません. Linux のシステムがなくても,カーネルのルートデバイスや RAM ディスクの 設定は変更することができます. DOS などの OS があれば OK です. 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 --> 16進 10進 説明 0x01F8 504 ramdisk 変数の下位バイト 0x01F9 505 ramdisk 変数の上位バイト 0x01FC 508 ルートデバイスのマイナー番号 -- 以下で説明します 0X01FD 509 ルートデバイスのメジャー番号 -- 以下で説明します ramdisk 変数の意味は の節で既に説明しています. メジャー番号とマイナー番号はルートファイルシステムをマウントするデバイ スの番号にセットします.良く使われる番号を以下に挙げておきます: デバイス メジャー マイナー /dev/fd0 2 0 最初のフロッピードライブ /dev/hda1 3 1 最初の IDE ドライブのパーティション1 /dev/sda1 8 1 最初の SCSI ドライブのパーティション1 /dev/sda8 8 8 最初の SCSI ドライブのパーティション8 これらの値を設定したら,カーネルファイルをフロッピーに書き込みます.ノー トンユーティリティのディスクエディタや, Q. How can I make extra copies of boot/root diskettes? --> Q. ブート/ルートディスクをコピーする方法を教えてください.

磁気メディアは経時劣化しますから,オリジナルが壊れたときのために予備の レスキューディスクを何枚か欲しいところです. ブートディスクやユーティリティのフロッピーをコピーする最も簡単な方法は, オリジナルをコピーするには次のコマンドを用います: dd if=DEVICENAME of=FILENAME ここで DEVICENAME はディスクドライブのデバイス名であり, FILENAME は(ハードディスク上の)出力ファイル名です このように 一時ファイルを新しいフロッピーに書き戻すには,新しいフロッピーを入れて 次のコマンドを実行します: dd if=FILENAME of=DEVICENAME ここまで述べてきた内容はフロッピードライブがひとつしかない場合です.も し同じドライブが 2 つある場合には,次のようなコマンドを使えば直接フロッ ピー間でコピーができます: dd if=/dev/fd0 of=/dev/fd1 Q. ブートのたびに "ahaxxxx=nn,nn,nn" と打ち込むのは面倒です.

例えば SCSI デバイスが自動的に検出されないような場合には,カーネルに以 下のようなパラメータ文字列を与えてやる必要があります: aha152x=0x340,11,3,1 LILO を用いてこのパラメータ文字列をカーネルに渡すにはいくつかの方法が あります: システムが LILO によって起動されるたびにコマンドラインからパラメー タを打ち込む.しかしこれは面倒なんですよね? LILO の ``By using the LILO の設定ファイルで コマンドラインからパラメータ文字列を打ち込む場合は以下のようになるでしょ う: zImage aha152x=0x340,11,3,1 root=/dev/sda1 lock これはデバイスのパラメータ文字列を渡し,カーネルにルートデバイスを /dev/sda1 にするよう指示し,さらにこのコマンドライン全体 を保存して次からのブートで再び用いるようにしています. APPEND 宣言の例を以下に示します: APPEND = "aha152x=0x340,11,3,1" コマンドラインではパラメータ文字列は引用符で囲ってはいけません.逆に APPEND 宣言では引用符で囲わなければいけません.間違えないように. パラメータ文字列を機能させるにはカーネルにドライバが含まれていなければ なりません.含まれていなければそもそもパラメータを受け取るものがないの ですから,必要なドライバを含んだカーネルを再構築する必要があります.カー ネル再構築の詳細については /usr/src/linux ディレクトリの README や, Linux FAQ, Installation HOWTO などをお読みください.また は必要なドライバを含んだ汎用のカーネルを手に入れ,それを使ってください. LILO をインストールする前に LILO の付属文書を読んでおくことを強くお薦 めします.不用意に Q. At boot time, I get error "A: cannot execute B". Why? --> Q. ブート時に A: cannot execute B といったエラーが出ます.

あるユーティリティが他のプログラムを起動する場合,そのプログラムの名前 がユーティリティの内部にハードコードされていることがあります.こ のような場合は,実際にプログラムがあってもユーティリティには見えないと いうことが起こります. ハードコードの例として以下のようなものが知られています: 特定のバージョンの shutdown は /etc/reboot を直接プ ログラム中に書いています.従って reboot は /etc に置く必要が あります. カーネルが これらの問題を解決するにはプログラムを正しいディレクトリに移動するか, もしくは /etc/rc.d を使ってみることです. Q. 私のカーネルは RAM ディスク機能をサポートしているのに RAM ディスクのサイズが 0K になってしまいます.

このようなことが起こる場合は,カーネルの起動時に次のようなメッセージが 表示されます: Ramdisk driver initialized : 16 ramdisks of 0K size これはおそらくブート時にこのサイズがカーネルパラメータで 0 に設定され ているためでしょう. LILO の設定ファイルに以下のような行がありませんか? ramdisk= 0 古いディストリビューションの一部では LILO の設定ファイルのサンプルにこ の行が入っていることがあります.この行はカーネルでの設定より優先されて しまいます.このような行があれば削除しましょう. サイズ 0 の RAM ディスクを使用した場合の結果は予測できません.カーネル パニックが起こることもありえます. 関連情報

パッケージを入手するときには,特別な理由がない限りはできるだけ新しいも のを入手しましょう. 既製のブートディスクの入手

レスキューディスクを作るためのパッケージは metalab.unc.edu でいくつか 入手することができます.こうしたパッケージを使うと,入れるファイルをセッ トでまとめて指定したり,ブートディスクの作成を(程度はいろいろありますが)ソフト ウェアで自動化することができます.詳しくは をご覧ください.Graham Chapman's shell scripts

--> Graham Chapman さんのシェルスクリプト

Graham Chapman さんはブートディスクの作り方の例として,便利なスクリプ トのセットを作成しています.この HOWTO の前のバージョンではこのスクリ プトを付録として入れていましたが,現在は文書に載せるのはやめてウェブペー ジに置いています: このスクリプトを使えば便利さが分かると思いますが,説明はよく読んでくだ さい.例えば,スワップデバイスを間違えて指定すると,ルートファイルシス テムが跡形もなく消去されてしまいます.使う前にはちゃんと設定されている か確かめましょう. LILO -- Linux ローダ

作者は Werner Almesberger さんです.優れたブートローダですし,ドキュメ ントにはブートセクタの内容やブートプロセスの初期段階に関する情報が書か れています. から ftp で 入手することができます.metalab やそのミラーからも入手することができま す. Linux FAQ と HOWTO 文書

色々なところに置いてあります. usenet のニュースグループ and the HOWTOs from . Most documentation for Linux may be found at . --> FAQ は で入手できますし,HOWTO 文書は で入手できます. Linux 関連の文書のほとんどは で入手できます. RAM ディスクの使い方

/usr/src/linux/Documentation/ramdisk.txt. It is written by Paul Gortmaker and includes a section on creating a compressed ramdisk. --> 新しくなった RAM ディスクの動作に関する優れた文書が Linux カーネルに付 属しています. /usr/src/linux/Documentation/ramdisk.txt を見てください.これは Paul Gortmaker さんが書いたもので,圧縮ファイル システムの作り方が書いてあります. Linux のブートプロセス

Linux のブートプロセスの関する情報へのポインタをいくつか示しておきます: 「The Linux System Administrators' Guide」にはブートについての章 があります. をご覧ください. LILO の ``Technical overview'' は,カーネルがスタートするまでのブートプロセスを下位レベルから記述した 技術的文書として,非常に優れたものです. ソースコードは究極のガイドです.ブートに関連するカーネルのファイ ルをいくつか挙げます.Linux カーネルのソースコードを持っていれば,マシ ンの /usr/src/linux にあると思います.これ以外にも, Shigio Yamaguchi さん(shigio@tamacom.com) が作成された素晴らしい ハイパーテキストカーネルブラウザが にあります.以下に関連ファイルを示します: arch/i386/boot/bootsect.S,setup.S ブートセクタに関するアセンブリコードがある. arch/i386/boot/compressed/misc.c 圧縮されたカーネルの展開に関するコードがある. arch/i386/kernel/ カーネルの初期化のコードがある.drivers/block/rd.c Contains the ramdisk driver. The procedures drivers/block/rd.c RAM ディスクドライバがある. LILO のブート時のエラーコード

. --> Usenet でも LILO に関する質問が多いので,公的なサービスのつもりで説明を入れ ました.この説明は Werner Almsberger さんが書いた LILO のユーザ向け文 書から抜粋したものです.この文書は で入手できます. LILO 自身のロードが終了すると,`` (空) LILO は全くロードされていません.原因は LILO がインストールされていな いか,ブートセクタが参照されているパーティションがアクティブでないかの どちらかでしょう. /boot/boot.b without running the map installer. --> /boot/boot.b を動かしたのにマップインストーラを実行しなかったかです. /boot/boot.b を動かしたのにマップインストーラを実行し なかったかです. LILO がブートイメージをロードしようとした時に BIOS がエラーを出した場 合,それに対応するエラーコードが表示されます.このエラーコードの範囲は Sample rootdisk directory listings.

--> ルートディスクのサンプルのディレクトリ一覧

ルートディレクトリ: 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: ユーティリティディスクのサンプルのディレクトリ一覧

日本語訳は Linux Japanese FAQ Project が行いました。 翻訳に関するご意見は JF プロジェクト <JF@linux.or.jp> 宛に連絡してください。 改訂履歴を以下に示します。 v1.01 (翻訳は非公開) 翻訳: 播口陽一さん v2.0-2.3 翻訳: 中野武雄 <nakano@apm.seikei.ac.jp> v3.3-3.5 翻訳: 藤原輝嘉 <fujiwara@linux.or.jp> 校正: 長谷川靖 <yaz-hase@qb3.so-net.ne.jp> 武井伸光 <takei@cc.kochi-u.ac.jp> 中野武雄 <nakano@apm.seikei.ac.jp>