第3章 システムの初期化

目次

3.1. ブートストラッププロセスの概要
3.2. 1段目: BIOS
3.3. 2段目: ブートローダー
3.4. 3段目: ミニ Debian システム
3.5. 4段目: 通常の Debian システム
3.5.1. ランレベルの意味
3.5.2. ランレベルの設定
3.5.3. ランレベル管理例
3.5.4. 各 init スクリプトのデフォールトのパラメーター
3.5.5. ホスト名
3.5.6. ファイルシステム
3.5.7. ネットワークインターフェースの初期化
3.5.8. ネットワークサービスの初期化
3.5.9. システムメッセージ
3.5.10. カーネルメッセージ
3.5.11. udev システム
3.5.12. カーネルモジュール初期化

Debian システムが以下に起動され設定されるかの知っていることはシステム管理者として賢明です。正確で詳細な情報がインストールされたパッケージのソースや文書中にあるとは言え、我々の大部分にとってはちょっと大変過ぎます。

著者などの過去の知見に基づき Debian システムの要点とそれらの設定の簡単な参考となる概論を提供するように勤めました。Debian システムは動く標的なので、システムの状況が変わっているかもしれません。システムに変更を加える前に、各パッケージの最新文書を参照下さい。

3.1. ブートストラッププロセスの概要

コンピューターシステムは、電源投入イベントからユーザーに機能の完備したオペレーティングシステム (OS) を提供するまでブートストラッププロセスを数段通過します。

単純化のため、デフォールトのインストールをした典型的な PC プラットフォームに限定し議論します。

典型的なブートストラッププロセスは4段ロケットのようです。各段のロケットは次の段のロケットにシステムのコントロールを引き継ぎます。

もちろん、これらに関して異なる設定をすることはできます。例えば、自分自身で専用カーネルをコンパイルした場合、ミニ Debian システムのステップをスキップできます。自分自身で確認するまでは、あなたのシステムがこの様になっていると決めつけないで下さい。

[注記] 注記

非伝統的 PC プラットフォームの SUN とか Macintosh システム等では、ROM 上の BIOS やディスク上のパーティション (「ディスクパーティション設定」) が非常に異なっているかもしれません。そのような場合にはプラットフォーム特定の文書をどこかで求めて下さい。

3.2. 1段目: BIOS

BIOS は電源投入イベントが引き起こすブートプロセスの1段目です。CPU のプログラムカウンターが電源投入イベントで初期化され、読出し専用メモリー (ROM) 上にあるBIOS が特定のメモリーアドレスから実行されます。

BIOS はハードウエアーの基本的な初期化 (POST: 電源投入時自己診断) を行い、システムのコントロールをあなたが提供する次のステップにシステムのコントロールを引き継ぎます。BIOS は通常ハードウエアーによって供給されます。

BIOS 初期画面はどのキーを押すと BIOS 設定画面に入って BIOS の挙動を設定できるかを通常表示しています。よく使われるキーは F1 や F2 や F10 や Esc や Ins や Del です。もし BIOS 初期画面が洒落た画像表示で隠されている場合、Esc 等の何らかのキーをおすとこれを無効にできます。こういったキーはハードウエアーに大いに依存します。

BIOS が起動するコードのハードウエアー上の場所や優先順位は BIOS 設定画面から選択できます。典型的には最初に見つかった選択されたデバイス (ハードディスクやフロッピーディスクや CD-ROM 等) の最初の数セクターがメモリー上にロードされこの初期コードが実行されます。この初期コードは次のいずれでもよろしい。

  • ブートローダーコード

  • FreeDOS のような踏み石 OS のカーネルコード

  • この小さな空間に収まればターゲット OS のカーネルコード

典型的にはプライマリハードディスクの指定されたパーティションからシステムが起動されます。伝統的 PC のハードディスクの最初の2セクターにマスターブートレコード (MBR) が含まれます。ブート選択に含まれるディスクのパーティション情報はこの MBR の最後に記録されています。BIOS から実行される最初のブートローダーコードは残りの部分を占めます。

3.3. 2段目: ブートローダー

ブートローダーは BIOS によって起動されるブートプロセスの2段目です。それはシステムのカーネルイメージと initrd イメージをメモリーにロードし、それらにコントロールを引き継ぎます。この initrd イメージはルートファイルシステムイメージで、そのサポートは使われるブートローダー次第です。

Debian システムは通常 Linux カーネルをデフォールトのシステムカーネルとして使っています。現在の 2.6 カーネルにとっての initrd イメージは技術的に言うなら initramfs (初期 RAM ファイルシステム) イメージです。initramfs イメージはルートファイルシステム中のファイルの gzip された cpio アーカイブです。

Debian システムのデフォールトインストールでは、GRUB ブートローダーの1段目のコードを PC プラットホームの MBR の中に置きます。多くのブートローダーと設定の選択肢があります。

表3.1 ブートローダーのリスト

ブートローダー パッケージ ポプコン サイズ initrd 説明
GRUB Legacy grub-legacy * V:0.19, I:0.7 1741 サポート ディスクパーティションや vfat や ext3 等のファイルシステムを理解するぐらいスマートです。(lenny のデフォールト)
GRUB 2 grub-pc * V:7, I:64 300 サポート ディスクパーティションや vfat や ext3 等のファイルシステムを理解するぐらいスマートです。
GRUB 2 grub-rescue-pc * V:0.04, I:0.4 3860 サポート GRUB 2 のブート可能なレスキューイメージ (CD とフロッピー) (PC/BIOS バージョン)
Lilo lilo * V:0.3, I:1.7 704 サポート ハードディスク上のセクター位置に依存します。(旧式)
Isolinux syslinux * V:1.1, I:8 132 サポート ISO9660 ファイルシステムを理解します。ブート CD に使われています。
Syslinux syslinux * V:1.1, I:8 132 サポート MSDOS ファイルシステム (FAT) 理解します。ブートフロッピーで使われます。
Loadlin loadlin * V:0.03, I:0.3 144 サポート 新しいシステムが FreeDOS/MSDOS システムから起動されます。
Neil Turton の MBR mbr * V:0.3, I:3 92 非サポート MSDOS の MBR を代替するフリーソフトです。ディスクパーティションを理解するだけです。

[警告] 警告

grub-rescue-pc パッケージのイメージから作ったブート可能なレスキューメディア (CD かフロッピー) 無しにブートローダーを試してはいけません。これさえあると、ハードディスク上に機能するブートローダーが無くともシステムの起動ができます。

GRUB Legacy のメニューの設定は "/boot/grub/menu.lst" にあります。例えば、次のような内容です。

title           Debian GNU/Linux
root            (hd0,2)
kernel          /vmlinuz root=/dev/hda3 ro
initrd          /initrd.img

GRUB 2 のメニューの設定は "/boot/grub/grub.cfg" にあります。 "/etc/grub.d/*" の雛形と "/etc/default/grub" の設定から "/usr/sbin/update-grub" を使って自動的に作られます。例えば、次のような内容です。

menuentry "Debian GNU/Linux" {
        set root=(hd0,3)
        linux /vmlinuz root=/dev/hda3
        initrd /initrd.img
}

これらの例で、これらの GRUB パラメーターは次の意味です。

表3.2 GRUB パラメーターの意味

GRUB パラメーター 意味
root GRUB legacy では "(hd0,2)" また GRUB 2 では "(hd0,3)" と設定することでプライマリディスクの3つ目のパーティションを使用
kernel カーネルパラメーター "root=/dev/hda3 ro" とともに "/vmlinuz" にあるカーネルを使用
initrd "/initrd.img" にある initrd/initramfs イメージを使用

[注記] 注記

GRUB legacy プログラムが使うパーティション値は Linux カーネルやユーティリティーツールが使う値より1つ少ない数字です。GRUB 2 プログラムはこの問題を修正します。

[ティップ] ティップ

UUID (「UUID を使ってパーティションをアクセス」参照) は、"/dev/hda3" のようなファイル名に代わるブロックの特定デバイスを確定するのに使え、例えば "root=UUID=81b289d5-4341-4003-9602-e254a17ac232 ro" です。

[ティップ] ティップ

チェインロード (連鎖導入) とよばれる技術を使うと、あるブートローダーから他のブートローダーを起動できます。

"info grub" と grub-install(8) を参照下さい。

3.4. 3段目: ミニ Debian システム

ミニ Debian システムはブートローダーによって起動されるブートプロセスの3段目です。メモリー上でルートファイルシステムとともにシステムカーネルを実行します。これはオプションの起動プロセスの準備段階です。

[注記] 注記

"ミニ Debian システム" は著者がこの3段目のブートプロセスを本文書中で記述するために作った言葉です。このシステムは一般に initrd とか initramfs システムと呼ばれています。類似のメモリー上のシステムは Debian インストーラーでも使われています。

"/init" スクリプトはこのメモリー上のルートファイルシステムで最初に実行されるプログラムです。それはユーザー空間でカーネルを初期化し次の段階にコントロールを引き継ぐシェルプログラムです。このミニ Debian システムは、メインのブートプロセスが始まる前にカーネルモジュールを追加したり、ルートファイルシステムを暗号化されたファイルシステムとしてマウントする等のブートプロセスの柔軟性を提供します。

"break=init" 等をカーネルブートパラメーターとして与えると、本部分のブートプロセスに割り込み root シェルを獲得できます。この他の割り込み条件は "/init" スクリプトを参照下さい。このシェル環境はあなたの機器のハードウエアーを詳細に検査できるだけ十分洗練されています。

ミニ Debian システムは機能を削ったシステムで、主に busybox(1) という GNU ツールで提供されます。

[注意] 注意

読出しのみのルートファイルシステム上では、mount コマンドには "-n" オプションを使う必要があります。

3.5. 4段目: 通常の Debian システム

表3.3 Debian システムののブートユーティリティーのリスト

パッケージ ポプコン サイズ 説明
initscripts * V:90, I:99 152 システムの始動と停止のためのスクリプト
sysvinit * V:87, I:99 170 System-V 的な init(8) ユーティリティー
sysv-rc * V:90, I:99 130 System-V 的なランレベル変更メカニズム
sysvinit-utils * V:90, I:99 189 System-V 的なユーティリティー (startpar(8)bootlogd(8)、…)
lsb-base * V:90, I:99 36 Linux Standard Base 3.2 の init スクリプト機能
insserv * V:59, I:67 288 LSB init.d スクリプト依存関係を使いブート順序を整理するツール
upstart * V:0.10, I:0.15 696 並行処理のためのイベント依存の init(8) デーモン (sysvinit 代替)
readahead-fedora * V:0.5, I:0.7 144 ブートプロセスファイルをプリロードする readahead(8)
uswsusp * V:1.5, I:7 514 Linux が提供するユーザースペースソフトウエアーによるサスペンドを使うためのツール
kexec-tools * V:0.2, I:0.7 280 kexec(8) リブートのための kexec ツール (ワームリブート)
bootchart * V:0.05, I:0.7 132 ブートプロセスのパーフォンマンスアナライザー
bootchart-view * V:0.06, I:0.4 280 ブートプロセスのアナライザー (可視化)
mingetty * V:0.16, I:0.4 64 コンソール専用 getty(8)
mgetty * V:0.13, I:0.5 416 インテリジェントモデム用の代替 getty(8)

[注記] 注記

本セクションは、古典的 System V スタイルの lenny 上のブートシステムについての記述です。Debian はイベントドリブンのブートシステムに移行中です。The future of the boot system in DebianDependency based boot sequence を参照下さい。

[ティップ] ティップ

"/etc/init.d/rc" と "/etc/init.d/rcS" と "/usr/sbin/update-rc.d" と "/usr/sbin/invoke-rc.d" のスクリプトによって全てのブートメカニズムには互換性があります。

[ティップ] ティップ

readahead-fedora パッケージは適量の DRAM のあるシステムの起動を高速化できます。

通常の Debian システムはミニ Debian システムによって起動されるブートプロセスの4段目です。ミニ Debian システムのシステムカーネルはこの環境ででも実行され続けます。ルートファイルシステムはメモリー上から本当にハードディスク上にあるファイルシステムに切り替えられます。

"/sbin/init" プログラムが最初のプログラムとして実行され、メインのブートプロセス遂行します。Debian は通常 sysv-rc による伝統的な sysvinit スキームを使います。詳細な説明は、init(8)inittab(5) と "/usr/share/doc/sysv-rc/README.runlevels.gz" を参照下さい。次にこのメインのブートプロセスの簡略化した概論を記します。

  1. Debian システムはランレベル N (無し) に入り、"/etc/inittab" の記述にしたがいシステムを初期化します。

  2. Debian システムはランレベル S に入り、シングルユーザーモード下でハードウエアーの初期化等を完了するシステム初期化をします。

  3. Debian システムは指定されたマルチユーザーランレベル (2〜5) の内の1つに入り、システムサービスをスタートします。

マルチユーザーモードで使われる最初のランレベルランレベルは、"init=" というカーネルブートパラメーターもしくは "/etc/inittab" の"initdefault" 行で指定されます。インストールされたままの Debian システムはランレベル 2 でスタートします。

init システムが実行する全ての実際のスクリプトファイルは "/etc/init.d/" ディレクトリーの中にあります。

3.5.1. ランレベルの意味

ランレベルはその設定に1つのディレクトリーを使い次に記す特定の意味があります。

表3.4 ランレベルとその用途説明のリスト

ランレベル ディレクトリー ランレベル用途の説明
N 無し システムのブートアップ (無し) レベル ("/etc/rcN.d/" ディレクトリーは無し)
0 /etc/rc0.d/ システム停止
S /etc/rcS.d/ ブート時のシングルユーザーモード (別名: "s")
1 /etc/rc1.d/ マルチユーザーモードから切り替えたシングルユーザーモード
2 /etc/rc2.d/ マルチユーザーモード
3 /etc/rc3.d/ ,,
4 /etc/rc4.d/ ,,
5 /etc/rc5.d/ ,,
6 /etc/rc6.d/ システム再起動
7 /etc/rc7.d/ 有効なマルチユーザーモードだが通常不使用
8 /etc/rc8.d/ ,,
9 /etc/rc9.d/ ,,

コンソールからランレベルを、例えば4に、次のようにして変更できます。

$ sudo telinit 4
[注意] 注意

Debian システムは2から5のランレベル間で如何なる意味の違いも事前に付与しません。Debian システムのシステム管理者はこれに変更を加えられます。(つまり Debian は、Red Hat Linux とも Sun Microsystems 社の Solaris とも Hewlett Packard 社の HP-UX とも IBM 社の AIX とも…違います。)

[注意] 注意

Debian システムは7から9のランレベルに対応するディレクトリーをパッケージインストール時に充足することはありません。伝統的な Unix バリアントはこれらのランレベルを使いません。

3.5.2. ランレベルの設定

[注記] 注記

Debian の squeeze では、アルファベット順ではなく insserv パッケージで提供される依存関係基準のブート順が使われます。"/etc/default/rcS" 中の "CONCURRENCY" 値がその並行処理をコントロールします: 並行処理無しは "none"、同一順位番号間の並行処理は "startpar"、完全な並行処理は "makefile"。"/usr/share/doc/insserv/README.Debian" を参照下さい。

ランレベルのディレクトリー中のシムリンク名前は、"S<2-digit-number><original-name>" か "K<2-digit-number><original-name>" という形式となっています。2桁数字はスクリプトの実行順序決定に使われます。"S" は"スタート (Start)" と言う意味で、"K" は"停止 (Kill)" と言う意味です。

"CONCURRENCY=none" の場合、init(8)telinit(8) コマンドがランレベルを "<n>" に変更すると、次のスクリプトを実行します。

  1. "/etc/rc<n>.d/" 中の "K" で始まるスクリプト名が、"stop" のみを引数としてアルファベット順に実行されます。(サービス停止)

  2. "/etc/rc<n>.d/" 中の "S" で始まるスクリプト名が、"start" のみを引数としてアルファベット順に実行されます。(サービス開始)

例えば、ランレベルのディレクトリーに "S10sysklogd" と "S20exim4" があった時に、"../init.d/exim4" にシムリンクされた "S20exim4" の前に、"../init.d/sysklogd" にシムリンクされた "S10sysklogd" が実行されます。

"CONCURRENCY=makefile" (新デフォルト) の場合、init スクリプトのヘッダーで定義されたパッケージの依存関係がパッケージの順付けに用いられます。

[警告] 警告

メンテナよりあなたのほうが知識があるのでもなければ "/etc/rcS.d/" の中のシムリンクに変更を加えようとするのはお勧めできません。

3.5.3. ランレベル管理例

例えば、次に示す Red Hat Linux のようなランレベルを設定してみます。

  • init はデフォールトとしてランレベル =3 でシステムを起動します。

  • init はランレベル =(0,1,2,6) で gdm(1) を起動しません。

  • init はランレベル =(3,4,5) で gdm(1) を起動します。

これは、"/etc/inittab" ファイルをエディターで変更して起動するランレベル変更し、sysv-rc-confbum 等の使いやすいランレベル管理ツールを使ってランレベルを編集することでできます。こうする代わりにコマンドラインだけを使うなら、(gdm パッケージをデフォールトでインストールしディスプレーマネージャーとして選択した後に) 次に示すようにします。

# cd /etc/rc2.d ; mv S21gdm K21gdm
# cd /etc ; perl -i -p -e 's/^id:.:/id:3:/' inittab

ディスプレーマネージャーデーモン (xdmgdmkdmwdm) が起動される際には、"/etc/X11/default-display-manager" ファイル内容を確認する事を覚えておいて下さい。

[注記] 注記

startx(1) コマンドを使えば、どのコンソールシェルからも X が起動できます。

3.5.4. 各 init スクリプトのデフォールトのパラメーター

"/etc/init.d/" の中の各 init スクリプトのデフォールトパラメーターは、"/etc/default/" の中の環境変数のアサインメントのみを含む対応ファイルによって与えられます。このディレクトリー名の選択は Debian システム特定です。それは、Red Hat Linux や他のディストリビューションで使われる "/etc/sysconfig" ディレクトリーにほぼ相当します。例えば、"/etc/default/cron" を使うと "/etc/init.d/cron" がどう機能するかを制御できます。

"/etc/default/rcS" ファイルを使うと motd(5)sulogin(8) 等のブート時のデフォールトをカスタム化できます。

もしそのような変数の変更で希望の挙動が得られない場合には、init スクリプト自体を変更することができます。これらスクリプトは管理者が編集可能な設定ファイルです。

3.5.5. ホスト名

カーネルがシステムのホスト名を維持管理します。ランレベル S の "/etc/init.d/hostname.sh" にシムリンクされた init スクリプトは、(hostname コマンドを使って) "/etc/hostname" に保存された名前を使ってブート時にホスト名を設定します。このファイルには、完全修飾ドメイン名ではなく、システムのホスト名のみが含まれているべきです。

現在のホスト名を確認するには、hostname(1) を引数無しで実行します。

3.5.6. ファイルシステム

ルートファイルシステムはカーネル起動時にカーネルによってマウントされますが、他のファイルシステムは次の init スクリプトでランレベル S 中でマウントされます。

  • "/proc" と "/sys" 等中のカーネルファイルシステムに関しては、"`/etc/init.d/mountkernfs.sh"

  • "/dev" 中の仮想ファイルシステムに関しては、"`/etc/init.d/mountdevsubfs.sh"

  • "/etc/fstab" を使う普通のファイルシステムに関しては "`/etc/init.d/mountall.sh"

  • "/etc/fstab" を使うネットワークファイルシステムに関しては "/etc/init.d/mountnfs.sh"

ファイルシテムのマウントオプションは "/etc/fstab" で設定されます。「マウントオプションによるファイルシステムの最適化」を参照下さい。

[注記] 注記

ネットワークファイルシステムの実際のマウントはネットワークインターフェースの起動を待ちます。

[警告] 警告

各ブートアップごとに、全てのファイルシステムをマウントした後で、"/tmp" と "/var/lock" と "/var/run" 中の一時ファイルはクリーンされます。

3.5.7. ネットワークインターフェースの初期化

ネットワークインターフェースはランレベル S で "/etc/init.d/ifupdown-clean" と "/etc/init.d/ifupdown" にシムリンクされた init スクリプトよって初期化されます。それらの設定に関しては、5章ネットワークの設定を参照下さい。

3.5.8. ネットワークサービスの初期化

多くのネットワークサービス (6章ネットワークアプリケーション参照) はブート時に、例えば "/etc/init.d/exim4" にシムリンクされている "/etc/rc2.d/S20exim4" (RUNLEVEL=2 の場合) 等という、マルチユーザーモード下の init スクリプトによってデーモンプロセスとして起動されます。

ネットワークサービスの一部はスーパーサーバーinetd (もしくはその同等) を用いて必要に応じて起動されます。inetd は、"/etc/init.d/inetd" にシムリンクされた "/etc/rc2.d/S20inetd" (RUNLEVEL=2 の場合) によってブート時に起動されます。基本的に、inetd は一つの実行デーモンにより複数の他デーモンを起動できるようにすることで、システムのロードを下げます。

サービス要求がスーパーサーバー inetd に到達する度に、そのプロトコルとサービスが "/etc/protocols" と "/etc/services" というデーターベースを照覧することで確認されます。さらに inetd は、"/etc/inetd.conf" の中にある通常のインターネットサービスか、"/etc/rpc.conf" の中にある Sun RPC 準拠サービスを照覧します。

時々、inetd が対象となるサーバーを直接起動せずに、対象となるサーバー名を "/etc/inetd.conf" 中に引数とし記載したTCP デーモンラッパープログラム tcpd(8) を起動することがあります。この様な場合には、tcpd は要求を記録し "/etc/hosts.deny" や "/etc/hosts.allow" を用いた追加確認後で適切なサーバープログラムを起動します。

システムのセキュリティーのためにできるだけ多くのネットワークサービスを無効にします。「サーバーのサービスへのアクセスの制限」を参照下さい。

inetd(8)inetd.conf(5)protocols(5)services(5)tcpd(8)hosts_access(5)hosts_options(5)rpcinfo(8)portmap(8) と "/usr/share/doc/portmap/portmapper.txt.gz" を参照下さい。

3.5.9. システムメッセージ

ログファイルとスクリーン上の両方のシステムメッセージに関して、 "/etc/default/rsyslogd" と "/etc/rsyslog.conf" によってカスタム化できます。rsyslogd(8)rsyslog.conf(5) を参照下さい。さらに「ログアナライザー」を参照下さい。

3.5.10. カーネルメッセージ

ログファイルとスクリーン上の両方のカーネルメッセージに関して、"/etc/default/klogd" によってカスタム化できます。このファイル中に "KLOGD='-c 3'" と設定し "/etc/init.d/klogd restart" を実行します。klogd(8) を参照下さい。

エラーメッセージのレベルを次に記すように直接変更してもいいです。

# dmesg -n3

表3.5 カーネルエラーレベルのリスト

エラーレベル値 エラーレベル名 意味
0 KERN_EMERG システムは不安定
1 KERN_ALERT 直ぐアクションが必要
2 KERN_CRIT クリチカルなコンディション
3 KERN_ERR エラーコンディション
4 KERN_WARNING 警告コンディション
5 KERN_NOTICE ノーマルだが重要なコンディション
6 KERN_INFO 情報
7 KERN_DEBUG デバグレベルのメッセージ

3.5.11. udev システム

Linux カーネル 2.6 では、udev システムがハードウエアーの自動検出と初期化のメカニズムを提供します (udev(7) 参照)。カーネルが各デバイスを発見すると、udev システムは sysfs ファイルシステム (「procfs と sysfs」参照) からの情報を使いユーザープロセスを起動し、modprobe(8) プログラム (「カーネルモジュール初期化」参照) を使ってそれをサポートする必要なカーネルモジュールをロードし、対応するデバイスノードを作成します。

[ティップ] ティップ

もし "/lib/modules/<kernel-version>/modules.dep" が何らかの理由で depmod(8) によって適正に生成されていなかった場合には、モジュールは udev システムによる期待にそってロードされないかもしれません。これを修正するには、"depmod -a" を実行します。

デバイスノード名は "/etc/udev/rules.d/" の中のファイルによって設定できます。現在のデフォールトのルールは、cd とネットワークデバイス以外は非静的なデバイス名となる動的生成名を作る傾向があります。cd やネットワークデバイスと同様のカスタムルールを追加することで USB メモリースティック等の他のデバイスにも静的なデバイス名を生成出来ます。"Writing udev rules" か "/usr/share/doc/udev/writing_udev_rules/index.html" を参照下さい。

udev システムは少々動くターゲットなので、詳細は他のドキュメントに譲り、ここでは最小限の記述に止めます。

[ティップ] ティップ

"/etc/fstab" 中のマウントルールでは、デバイス名が静的なデバイス名である必要がありません。"/dev/sda" 等のデバイス名ではなく UUID を使ってデバイスをマウントできます。「UUID を使ってパーティションをアクセス」を参照下さい。

3.5.12. カーネルモジュール初期化

modprobe(8) プログラムは、ユーザープロセスからカーネルモジュールを追加や削除することで実行中の Linux カーネルの設定を可能にします。udev システム (「udev システム」参照) は、その起動を自動化しカーネルモジュールの初期化を補助します。

"/etc/modules" ファイル中にリストしてプリロードする必要のある (modules(5) 参照) 次に記すような非ハードウエアーや特殊ハードウエアーのドライバーモジュールがあります。

modprobe(8) プログラムのための設定ファイルは、modprobe.conf(5) で説明されているように "/etc/modprobes.d/" ディレクトリーの下にあります。(あるカーネルモジュールが自動ロードされるのを避けるには、"/etc/modprobes.d/blacklist" ファイル中にブラックリストします。)

depmod(8) プログラムによって生成される "/lib/modules/<version>/modules.dep" ファイルは、modprobe(8) プログラムによって使われるモジュール依存関係を記述します。

[注記] 注記

ブート時に modprobe(8) を使ってのモジュールロードの問題に出会った場合には、"depmod -a" として "modules.dep" を再構築をするとこの様な問題が解消できるかもしれません。

modinfo(8) プログラムは Linux カーネルモジュールに関する情報を表示します。

lsmod(8) プログラムは "/proc/modules" の内容を読みやすい形式にして、どのカーネルモジュールが現在ロードされているかを表示します。

[ティップ] ティップ

あなたのシステム上の正確なハードウエアーを特定します。「ハードウエアーの識別」を参照下さい。

[ティップ] ティップ

ブート時に期待されるハードウエアー機能を有効となるように設定もできます。「ハードウエアー設定」を参照下さい。

[ティップ] ティップ

あなたのデバイスのサポートは、カーネルを再コンパイルすれば追加できます。「カーネル」を参照下さい。