[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00765] ext3 の index_dir Re: 質問: Linux の sd* デバイス上での WRITE_DIR
- Subject: [FDclone-users:00765] ext3 の index_dir Re: 質問: Linux の sd* デバイス上での WRITE_DIR
- From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
- Date: Fri, 4 Apr 2008 14:37:56 +0900
濱崎です。
しらいさん、checkfs ツールを使ってみました。ありがとうございます。
まず、ext3 から手をつけています。
結論から書きます。
ext3 の feature に index_dir 属性が付いている場合、
ディレクトリ内のファイルの並べ替えをして WRITE_DIR しても順番の変更が
反映されないことがわかりました。この属性を外すと、反映されるようになります。
私が試したのはすべて ext3 ですが、ext2 でも恐らく同じだと思います。
index_dir の付加、取り外しは使用を開始した後のファイルシステムでも
可能ですので、追試験したい方は、
tune2fs -O^index_dir
と
e2fsck -D -f
について man page を読んでやってみてください。
参考までに、index_dir に気付いた経緯などを書いておきます。
checkfs を使用して手当たり次第にファイルシステムをチェックしていたら、
sd* デバイスに加えて、hd* デバイスでも
> 但し、最後の「Check Dir」以降にだらだらと表示がされた場合
> は、正しく並べ替えが出来なかったということなので、その場合
> は各 parameter 値は無効です。
このような表示が出るケースがありました。
それで、tune2fs -l からの表示を見比べていて Filesystem features: 行の
違いに気付きました。
このような差ができた理由は、Debian の /etc/mke2fs.conf に
デフォルトで index_dir を付加するよう記述されるようになったためです。
いつこうなったのかは調べてません。他のディストリビューションでは
また事情が異なるかもしれません。
私が sd*, hd* の差だと勘違いしたのは、
たまたま IDE, SCSI デバイス上で ファイルシステムを作成した時期が、
e2fsprogs 内の /etc/mke2fs.conf の変更前後に
ほぼ綺麗に分かれていたためだと思います。
FDclone での対処については、TECKNOW ファイルに記述を追加していただければ
と思います。下に追記の文案を付けます。
index_dir の有無を調べ、有りなら書き込みできないと表示するような
実装もやれば可能なのかもしれませんし、あれば実際便利ですが、
私としては原因がはっきりした今、そのような機能の実現についてはあまり
強い要望を持っていません。
ファイルシステムのスーパーブロックを読まなければわからないため、
一般ユーザで FDclone が動いている場合にはどのみち使えそうにない
ような気もします。
vfat については、まだ手つかずです。
試すのが来週後半になってしまうかもしれません。
他の方が試してくださるなら、もちろん報告大歓迎です。
--- TECHKNOW.eng.orig 2008-04-04 14:14:22.000000000 +0900
+++ TECHKNOW.eng 2008-04-04 14:22:46.000000000 +0900
@@ -534,6 +534,9 @@
system.
In that case, you should defile UNKNOWNFS in compiling, to
give top priority to safety.
+ On ext3 file system any change of order of files you made
+are omitted when WRITE_DIR is performed if index_dir is set among
+features of the file system.
(Appendix) The directory writing algorithm
1.A temporary directory (assumed TMP) is made in the
--- TECHKNOW.orig 2008-04-04 14:08:27.000000000 +0900
+++ TECHKNOW 2008-04-04 14:13:59.000000000 +0900
@@ -502,6 +502,8 @@
うな OS もあるでしょう。
このような場合には、安全を最優先して、コンパイル時に識別子
UNKNOWNFS を定義しておいて下さい。
+ また、Linux の ext3 で index_dir が有効になっている場合に
+は、書込んでも順番の変更が反映されないことが確認されています。
(補足) ディレクトリ書込みのアルゴリズム
1.カレントディレクトリ内にテンポラリディレクトリ (仮
--------------------------------------------------
濱崎 健 E-mail: hma@syd.odn.ne.jp