------------------------------------------------------------------------- 翻訳者 : 小島 三弘 (94/04/08) e-mail : kojima@komae.denken.or.jp PAF02316@niftyserve.or.jp pcs33766@asciinet.or.jp -------------------------------------------------------------------------- EXT2 ファイルシステム FAQ 93/10/18 このファイルは ext2 ファイルシステムに関して、しばしばたずねられる質問(FAQ) に対する答えをまとめたものである。 Q: ルート・ファイルシステムを作る時に ext2 を使ったんだけど、Linux を ブートするたびに、 MINIX-fs magic match failed EXT-fs: magic match failed というメッセージが出ます。これは Linux がルートファイルシステムを認識 していないということでしょうか ? A: いいえ。Linux はブート時にいくつかの異なるファイルシステムをルート ファイルシステムとしてマウントしようと試みます。 - まず最初に minix のファイルシステムで試してみて、ルートファイルシ ステムが minix でなければ最初のエラーメッセージを出します。 - 次に、extended file system を試して、違っていれば 2 つめのエラー メッセージを出します。 新しいバージョンのカーネルでは、silent flag を使ってこれらの warning を出さないようにしています。カーネルをバージョンアップすればこれらのメッ セージは出なくなるでしょう。 Q: 次のようなエラーメッセージがでます。 [EXT II FS 0.2c, 93/03/06, bs=1024, fs=1024, gc=##, bpg=##, ipg=####] EXT2-fs warning: mounting unchecked file system ファイルシステムに問題があるのでしょうか ? A: 多分大丈夫です。実は ext 2 ファイルシステムはディスク上に valid flag を持っています。このフラグは、マウントされれば 0 に、アンマウントされ れば 1 になります。valid flag は e2fsck でチェックされ、ファイルシス テムをチェックする必要があるか確認されます(もしフラグが 1 ならば e2fsck は、ファイルシステムは変更されていないと考えて、チェックしません) ルートファイルシステムは唯一アンマウントされないファイルシステムなので、 valid flag は常に 0 にセットされています。ブート時にカーネルがルートファ イルシステムをマウントし、その valid flag をチェックすると 0 なので、 警告メッセージが出力されるわけです。 ルートファイルシステムに関するこの warning は無視しても大丈夫です。 念のため、e2fsck してみるのもいいかもしれません。 Linux 0.99pl10 以上では、ルートファイルシステムを read only モードでマ ウントすることで、umount できるようになっています。ファイルシステムを read only モードでマウントすれば valid flag は変更されません。この方法 を用いるためには、bootutils package を使う必要があります。 Q: mke2fs で ext2 ファイルシステムを作ろうとしたら'Out of memory' といっ て死にました。どうして ? A: 問題は mke2fs 自身にあります。mke2fs は inode のテーブルのコピーを メモリ上に取るので、ファイルシステムを作るのに大きなメモリが必要です。 この問題は最近のバージョン(0.2c+ 以上)では修正されています。 ですから、mke2fs と e2fsck をバージョンアップすれば解決するでしょう。 Q: mke2fs で ext2 ファイルシステムを作ろうとしたら、以下のようなメッセー ジを出して死にます。 mke2fs: Unable to find a block for the block bitmap あるいは: mke2fs: Unable to find a block for the inode bitmap あるいは: mke2fs: Unable to find a block for the inode table 何が問題なのでしょう ? A: ext2 ファイルシステムは複数ブロックのグループから成り立っています。 それぞれのグループごとに super block や fs descriptors, 2 つの bitmap blocks, inode table の一部が存在します。それぞれのグループは 8192 ブロッ クあります。 ファイルシステムを作る時、mke2fs はグループ数を求めるために、与えられた ブロックの総数を 8192 で割り、それぞれのグループごとにコントロール情報 を書き込もうとします。ときどき、最後のグループが小さくなりすぎてこれらの 情報を書き込みきれない時があり、その結果 mke2fs が死にます このバグは 0.3d 以降では修正されているので、バージョンアップすれば解決 するでしょう。 Q: df したとき、ext2 ファイルシステムが 100% 以上になっているのですが、 大丈夫でしょうか ? A: 大丈夫です。 ext2 ファイルシステムはそれぞれスーパーユーザー用に予約されたブロック を持っています(すなわち、一般ユーザーには使えない部分です)。df は statfs()のシステムコールを用い、以下の情報を含んだ構造体をもらいます。 - f_blocks : アロケートされた全ブロック数 - f_bfree : フリーブロックの総数 - f_bavail : 一般ユーザーが使用可能なフリーブロック数 df は f_blocks を f_bavail で割って使用率を計算しています。ext2 ファイ ルシステムでルートがほとんどのブロックを使用していれば、f_blocks が f_bavail を越えて、使用率が 100 % を超えることになります。 ----------------------------------------------------------------------- 小島三弘(財)電力中央研究所 ヒューマンファクター研究センター kojima@komae.denken.or.jp, Tel:(03)-3480-2111(ex.579), FAX:(03)-3430-5779 PAF02316@niftyserve, pcs33766@Ascii-Net -----------------------------------------------------------------------