web-dev-qa-db-ja.com

ファイルに複数のcrtimeエントリがあるのはなぜですか?

ext4ファイルシステムを使用して、 ここでのアプローチ を使用してファイルの作成時間を読み取ることができました。その結果、問題のiノード(それぞれのファイル)のcrtime(作成時間)を特徴とするテーブルが実際に提供されます。

私を混乱させ、man debugfsで答えを見つけることができなかったのは、それがcrtimeで2行を表示し、さらに同時にではない理由です。

これは私が得る出力です

[user ~] $ Sudo debugfs -R "stat <274742>" /dev/sda2
debugfs 1.43.1 (08-Jun-2016)
Inode: 274742   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 3666549610    Version: 0x00000000:00000001
User:  1000   Group:  1000   Project:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 0   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x57b4c632:1e30ee34 -- Wed Aug 17 22:16:50 2016
 atime: 0x57b4c4c0:afa082b0 -- Wed Aug 17 22:10:40 2016
 mtime: 0x57b4c632:1e30ee34 -- Wed Aug 17 22:16:50 2016
crtime: 0x57b4c4c0:afa082b0 -- Wed Aug 17 22:10:40 2016
crtime: 0x57b4c632:(1e30ee34) -- Wed Aug 17 22:16:50 2016
Size of extra inode fields: 32

また、2番目の(実際には正しくない)crtimeは角かっこで囲まれており、ファイルに明らかに2回保存したため、mtimeと同じであることに注意してください。

6

これは、e2fsprogsパッチの編集エラーの結果です debugfs:拡張タイムスタンプを適切に設定および表示するためのサポートを追加します 。 2番目のcrtime:行はdtime:である必要があります。

if (inode->i_dtime)
  fprintf(out, "%scrtime: 0x%08x:(%08x) -- %s", prefix,
          large_inode->i_dtime, large_inode->i_ctime_extra,
          inode_time_to_string(inode->i_dtime,
          large_inode->i_ctime_extra));

バグレポートを提出しました。

6
Mark Plotnick