ファイルシステムが大きすぎて,圧縮してもフロッピーに入らないことがあり ます.そこで,ファイルシステムのサイズを減らす方法をいくつか紹介します. 有効なものから順に紹介します:
デフォルトでは,フロッピーディスクは 1440K でフォーマットされています.しかし,もっと高い密度で使うこともで きます.fdformat は次のサイズでディスクをフォーマットでき ます: 1600, 1680, 1722, 1743, 1760, 1840, 1920. 1440K 対応ドライブの大 部分は 1722K にも対応しているので,筆者はいつもこのサイズをブートディ スクで使っています.fdformat のマニュアルページと /usr/src/linux/Documentation/devices.txt を参照してくださ い.
Linux で良く使われるシェル(bash
や tcsh
等)は大きい上に色々なライブラリを必要とします.
これらの代用として使える ash
, lsh
, kiss
, smash
の
ような軽量のシェルがあります.これらは小さいですし,必要なライブラリも
少ないです(あるいは全くありません).このようなシェルのほとんどは
http://metalab.unc.edu/pub/Linux/system/shells/ で入手できます.
ただし,このようなシェルを使う場合には,ブートディスクに組み込んだ
rc
ファイルで実行するコマンドを全て実行できることを確認しておいて
ください.
バイナリやライブラリの多くは普通はストリップされていません(つまり,デ
バッグ用のシンボルが含まれています).このようなファイルに 'file
'
を行うと 'not stripped
' と表示されます.バイ
ナリをルートファイルシステムにコピーするときには,次のようにするとよい
でしょう:
objcopy --strip-all FROM TO
ライブラリをコピーするときには次のようにします:
objcopy --strip-debug FROM TO
ブートやログイ ンには直接必要がないバイナリは,ユーティリティディスクに移すことができ ます.詳しくは ユーティリティディスク作成の節をご覧くだ さい.モジュールをユーティリティディスクに移すことを考えてもよいかもし れません.
ルートファイルシステム作成の章では,圧縮形 式のルートファイルシステムの作成方法を説明しました.これはシステムの起 動時に ramkdisk へのロードを行うものです.この方法には利点が多いので, 一般的に使われています.ですがシステムによっては,メモリが少なくて RAM ディスクを用意できないこともあります.このような場合には,フロッピー ディスクから直接ルートファイルシステムをマウントしなければなりません.
圧縮形式のファイルシステムを作るよりも,このようなファイルシステムを作 る方が実は簡単です.なぜなら,何か別のデバイスではなく直接フロッピー上 に作成することができるし,圧縮する必要もないからです.ここでは前の説明 との相違点の形で作成方法の概略を示します.この方法を使う場合には, 使える容量はずっと小さくなってしまう点を忘れないようにしましょう.
mke2fs
を用い,適切なサイズのルートファイルシステムをフロッ
ピー上に作成します.
rdev
を実行します.
もうちょっと簡単な方法もいくつかあります.2枚組のディスクセットを作る 場合,最終的なルートファイルシステムを直接2枚目のディスクに作れば,一 度ハードディスクのファイルに移してから再び書き戻す必要はありません.ま た,LILO を使って1枚のブート/ルートディスクを作る場合,ディスク全体を 1つのファイルシステムにし,カーネル,LILO 関連ファイル,ルートに 置くファイルを全て置くことができます.この場合も前に述べたように LILO を実行するだけです.
前の説明には,ユーティリティディスクは /usr
にマウントすること
ができると書きました.この場合にはバイナリをユーティリティディスクの
/bin
に置きます.こうすると,パスを /usr/bin に
通せばアクセスできるようになります.バイナリが必要とする追加のライブラ
リはユーティリティディスクの /lib
に置きます.
ユーティリティディスク作成の際には注意すべき点がいくつかあります:
ユーティリティディスクに置くファイルの例を,付録の
ユーティリティディスクのサンプルのディレクトリ一覧
に載せています.ここでは便利と思われるものをいくつか挙げておきます: ディ
スクの検査・操作用のプログラム(format, fdisk
),ファイルシステムの
検査・操作用のプログラム(mke2fs, fsck, debugfs, isofs.o
),軽量テ
キストエディタ(elvis, jove
),圧縮・アーカイブのユーティリティ
(gzip, tar, cpio, afio
),テープ用ユーティリティ(mt, tob,
taper
),通信ユーティリティ(ppp.o, slip.o, minicom
),デバイス用の
ユーティリティ(setserial, mknod
).