RYOW です。
完全に出遅れてしまって、スレッド全体にリプライしてるので、引用がおかしい
ですが ... 。
2.6r1 のときに ext3 のフォーマットについて、メモしておいたことがあったの
を思い出したので、それを見ながらこのスレッドを読み返して、気付いた点があ
りました。
直接の問題解決にはなりませんが、参考になれば幸いです。
2.6r3 ではインストーラの ext3 フォーマット時のファイルシステム属性が変
わったんでしょうね。
(dir_index 属性が有効になっている。ファイルシステムのチェックは無効になっ
ているのかな ?)
以下は、 2.6r1 のインストーラがフォーマットした ext3 パーティションと、
後から作成して mke2fs -j でフォーマットしたパーティション、それぞれの
tune2fs -l の出力の diff (> はインストーラ、 < が mke2fs でフォーマット
したパーティション) のメモです。
> Filesystem features: has_journal filetype needs_recovery sparse_super
> Maximum mount count: -1
> Check interval: 0 (<none>)
---
< Filesystem features: has_journal dir_index filetype sparse_super
< Maximum mount count: 36
< Check interval: 15552000 (6 months)
< Default directory hash: tea
< Directory Hash Seed: 824c3858-e927-4fba-8c46-764b2685145e
これを見ると、2.6r1 のインストーラは dir_index 属性を設定していません。
なので、後から手動で dir_index 属性を設定しなければ、
> 5. 2.6r1 の時に Optimizing ... の表示は特に記憶がない。
のは、その通りなんだと思います。
"Optimizing ..." は、恐らく e2fsck の -D オプションによって、最適化中に
ディレクトリインデックスの再生成が行われているときに出力されるのでは ?
逆に言うと、最適化中でも、ディレクトリインデックスがなければディレクトリ
インデックスの再生成が行われないので出力されないのではないでしょうか ?
(すいません。ソースを見ながら言ってる訳ではないので推測です)
私も見たことがないのですが、というのも上記の違いを見つけて debugfs で
dir_index を無効にしてしまったので。
(dir_index を無効にしたことで、Default directory hash と Directory Hash
Seed も削除されました)
作成したばかりで、まだマウントすら一度もしていないパーティションだったの
で、これだけで済んだようです。
既に dir_index が有効な状態で、そのパーティションにファイルも存在してし
まっているのであれば、
> tune2fs -O ^dir_index /dev/<filesystemdevice>
で、まずこの機能を無効にしてから、
> e2fsck -fD /dev/<filesystemdevice>
として、dir_index の機能が有効だったときには必要だった (が不要となる) 情
報を削除しつつ、最適化するというのは妥当な気がしますが。
フォーマットしただけで、まだファイルが 1 つも存在しないのであれば、
> tune2fs にて dir_index をオフにするだけで良いように思えます。
私もそのように思います。
tune2fs の -O オプションで dir_index を設定できるのは知らなかったので、
ちょっと勉強になりました。
(man にも書いてないし。というか、そもそも実験的な機能について man に書い
てないのは当り前か)
それと、tune2fs は -l (他に何かあったかな ?) 以外のパラメータ変更を行う
オプションを指定するときは、そのボリュームは書き込み可でマウントされてい
てはいけません。
--
Ryow Takahashi
ryow_t7i@xxxxxxxxxxxxxxxxx