%
% 表題: Debian GNU/Linux のレスキューディスクの成立ち
%
% 履歴: 2000/03/10 杉山耕一朗
%
○ フロッピー 1 枚でブートさせるのは何が必要か
・カーネルイメージ
・ルートの圧縮イメージ
・ブートローダ(lilo 等)
● Debian の resc1440.bin の中身を見る.
$ mount -o loop /dev/fd0 /mnt
$ ls /mnt/
-rwxr-xr-x 1 root root 1086 Jul 21 1998 debian.txt
-rwxr-xr-x 1 root root 559 Jul 21 1998 f1.txt
-rwxr-xr-x 1 root root 717 Jul 21 1998 f10.txt
-rwxr-xr-x 1 root root 415 Jul 21 1998 f2.txt
-rwxr-xr-x 1 root root 775 Jul 21 1998 f3.txt
-rwxr-xr-x 1 root root 993 Jul 21 1998 f4.txt
-rwxr-xr-x 1 root root 926 Jul 21 1998 f5.txt
-rwxr-xr-x 1 root root 1176 Jul 21 1998 f9.txt
-rwxr-xr-x 1 root root 899 Jul 21 1998 install.sh
-r-xr-xr-x 1 root root 5368 Jul 10 1998 ldlinux.sys
-rwxr-xr-x 1 root root 704533 Jul 21 1998 linux
-rwxr-xr-x 1 root root 174 Jul 21 1998 rdev.sh
-rwxr-xr-x 1 root root 898 Jul 21 1998 readme.txt
-rwxr-xr-x 1 root root 712857 Jul 21 1998 root.bin
-rwxr-xr-x 1 root root 832 Jul 21 1998 syslinux.cfg
-rwxr-xr-x 1 root root 7 Jul 21 1998 type.txt
*.txt: メッセージ, その他.
install.sh: /boot ディレクトリを作る. カーネルイメージを /boot にインストールして必要なリンクを作る.
ldlinux.sys:
linux: カーネルのイメージ
rdev.sh: ルートデバイスの設定
root.bin: ルートの圧縮イメージ
syslinux.cfg: 変数名の設定
syslinux: 見えない?
● rescue disk の模式図
| カーネル圧縮イメージ | ルート圧縮イメージ| その他 |
|←---------------------- 1.4 M ------------------→|
○ ブートの流れ(ブータブル・リカバー CD; rescue disk も基本的に同じ)
BIOS:
1.ディスクの最初のセクタを読み込んで制御をそこに落とす. 要はブートローダを起動する.
↓
ブートローダ: syslinux
1. BIOS 経由でカーネルイメージ(linux)と initrd イメージ(root.bin)をメモリー(RAM ディスク)上に展開.
2. syslinux が kernel (linux)に制御を移す
↓
カーネルの起動: linux
1. カーネルの初期化
2. boot.bin をメモリー上に展開し, ルートパーティションとしてマウントする.
3. /sbin/init に制御を移す
↓
init の実行 : /sbin/init
1. /etc/rc ファイルを実行
↓
インストーラーの起動
1. 色, キーボードの設定
2. ハードディスクのパーティションテーブルの作成.
3. ハードディスクのマウント
4. シェルの実行
↓
シェルの実行: ash
1. ディスクイメージの展開, コピー.
2. 設定ファイルの変更
3. lilo コマンドの実行
○ おまけ: ブートの流れ(disk)
BIOS: ディスクの最初のセクタを読み込んで制御をそこに落とす.
要はブートローダを起動する.
↓
ブートローダ: lilo
1. BIOS 経由でカーネルイメージ(linux)と initrd イメージ(root.bin)をメモリー(RAM ディスク)上に展開.
2. syslinux が kernel (linux)に制御を移す
↓
vmlinuz の起動: /boot/vmlinuz
1. カーネルの初期化
2. boot.bin をメモリー上に展開し, ルートパーティションとしてマウントする.
3. /sbin/init に制御を移す
↓
init の実行 : /sbin/init
1. /etc/rc ファイルを実行
● init が呼び出したデーモンの例
init-+-asload
|-atd
|-bash---xinit-+-XF86_SVGA
| `-sh-+-afterstep-+-Animate
| | |-Pager
| | `-Wharf
| `-kterm---bash-+-emacs
| |-jnetscape---communicator-ja---communi+
| |-kterm---bash---man---pager
| |-kterm---bash---less
| |-kterm---bash---ssh
| |-pstree
| `-xclock
|-cannaserver
|-cardmgr
|-cron
|-5*[getty]
|-inetd
|-kerneld
|-kflushd
|-klogd
|-kpiod
|-kswapd
|-kupdate
|-lpd
|-portmap
|-sshd
|-syslogd
`-xfs
履歴: 2000/03/10 杉山耕一朗