«前の日記(2008-10-12(日)) 最新 次の日記(2008-10-22(水))» 編集
RSS feed

からっぽの日記


2008-10-13(月) [長年日記]

ext3 の dir_index

ファイルアクセスが高速化されるってことらしいので、使用してきたのですがよくわからん点がでてきた。事象としては、外付け HDD にノートPC(kernel 2.6.24)でファイルを作成後*1、玄箱HG(kernel 2.6.25)に接続すると一部読めないファイルが発生する。fsck をしてもファイルがぶっ壊れているわけではない。読めないファイルの共通点は

  • 読めないファイルが格納されているディレクトリのブロックサイズが 4096 を越えている
  • コマンド「lsattr」で上記ディレクトリを調べると、属性「I」がついている

属性「I」とは以下の模様

`I' 属性は htree コードによって用いられ、ディレクトリがハッシュツリーを使って索引を付けられることを示す。この属性は chattr(1) によって設定したり解除したりすることはできないが、 lsattr(1) を用いて表示させることはできる。

[Manpage of CHATTRより引用]

これは dir_index と関係あるのかと思い、dir_index を外してみた。

# lsattr /mnt/hoge
--------------I--- /mnt/hoge/fuga
------------------ /mnt/hoge/piyo
# ls -l /mnt/hoge/fuga
ls: cannot access /mnt/hoge/fuga/hogehoge
-?????????  ? ?    ?            ?                ? hogehoge
# umount /mnt/hoge
# tune2fs -O^dir_index /dev/sda1
# mount /mnt/hoge
# lsattr /mnt/hoge
------------------ /mnt/hoge/fuga
------------------ /mnt/hoge/piyo

で、ファイルが読めるようになった... もう一度つけてみたらどうなんだろうとやってみた。

# umount /mnt/hoge
# tune2fs -Odir_index /dev/sda1
# e2fsck -D /dev/sda1
# mount /mnt/hoge
# lsattr /mnt/hoge
--------------I--- /mnt/hoge/fuga
------------------ /mnt/hoge/piyo
# ls -l /mnt/hoge/fuga
ls: cannot access /mnt/hoge/fuga/hogehoge
-?????????  ? ?    ?            ?                ? hogehoge

また、読めないファイルが発生orz

対処としては、ノートPC側では dir_index を外してファイルを作成後、玄箱HG 側で dir_index をつけて上げたら dir_index が有効かつすべてのファイルが読めるようになったようだ。でも、ノートPC側に接続した場合は dir_indexを外さないと読めないという問題は残っている。dir_index は 異なる kernel では共有できないとかあるんかい?? よく理解せず使用しているからこうなるんだが*2

*1 正確にはファイルコピー

*2 mkfs したらデフォルトで有効になるんだもの><


«前の日記(2008-10-12(日)) 最新 次の日記(2008-10-22(水))» 編集
RSS feed