01Konum
- Inode table of each block group (byte offset = index × s_inode_size)
02Yanıtladığı sorular
- Bir dosya ne zaman oluşturuldu (crtime), en son değiştirildi (mtime), üst verisi değişti (ctime) ve erişildi (atime)?
- Bir inode ne zaman silindi (dtime)?
- Nanosaniye değerleri doğal mı görünüyor yoksa bir araçla ayarlandığına dair iz mi taşıyor?
03Biçim ve sürümler
| Biçim | Alt 128 bayt: i_atime (0x8), i_ctime (0xC), i_mtime (0x10), i_dtime (0x14), 32 bit işaretli saniye. Genişletilmiş alan: i_ctime_extra (0x84), i_mtime_extra (0x88), i_atime_extra (0x8C), i_crtime (0x90), i_crtime_extra (0x94). Her *_extra alanında düşük 2 bit saniyeyi genişletir, üst 30 bit nanosaniyeyi tutar. |
|---|---|
| Geçerli olduğu sürümler | Linux çekirdeği ext4 belgeleri. Varsayılan inode kayıtları 256 bayttır; genişletilmiş alanlar yalnızca i_extra_isize onları kapsıyorsa geçerlidir. |
04Temel alanlar
| Alan | Ne anlatır |
|---|---|
| i_mtime / i_mtime_extra | Son veri değiştirme zamanı. |
| i_ctime / i_ctime_extra | Son inode değişikliği zamanı (üst veri). |
| i_atime / i_atime_extra | Son erişim zamanı. |
| i_crtime / i_crtime_extra | Dosya oluşturma zamanı. |
| i_dtime | Silme zamanı; orphan_file özelliği yoksa açık ama bağlantısı kaldırılmış inode'lar için sonraki yetim inode numarası olarak kullanılır. |
| i_extra_isize | Kullanılan genişletilmiş inode bayt sayısı; hangi *_extra alanlarının ve crtime'ın bulunduğunu belirler. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| atime, ctime, mtime, crtime | Unix seconds (int32) + 2 epoch bits + 30-bit nanoseconds | tv_sec = işaretli 32 bit değer + 2^32 × epoch bitleri; 2446-05-10'a kadar geçerlidir. |
| dtime | Unix seconds (int32), not widened | Ocak 2038'de taşar. |
Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.
06İnceleme akışı
- s_inode_size ve özellikler için süper bloğu okuyun, ardından inode'u blok grubunda bulun.
- *_extra alanlarını ve crtime'ı okumadan önce i_extra_isize'ı kontrol edin.
- Saniyeleri epoch bitleriyle çözün ve nanosaniyeleri ekleyin; beş zamanın tamamını raporlayın.
- Canlı sistemde oluşturma zamanı için statx (STATX_BTIME) kullanın; düz stat() crtime döndürmez.
07Yorum tuzakları
- crtime ve dtime stat() ile döndürülmez; stat() tabanlı araçlar yalnızca atime, mtime ve ctime gösterir.
- Çekirdek belgeleri, epoch bitleriyle 2038 sonrası ve 1970 öncesi tarihlerin kodlanmasında uzun süreli hatalar olduğunu belirtir.
- atime güncellemeleri bağlama seçeneklerine bağlıdır; eski bir atime dosyanın okunmadığını kanıtlamaz.
- Dosya sistemi sağlamadığında statx, STATX_BTIME içermeyen bir maske döndürebilir.
09Kaynaklar
- ext4 Data Structures and Algorithms — Index Nodes (Inode Timestamps) The Linux Kernel documentation · erişim 2026-10-14
- Linux kernel — Documentation/filesystems/ext4/inodes.rst Linux kernel (GitHub mirror) · erişim 2026-10-14
- statx(2) — Linux manual page man7.org · erişim 2026-10-14