Günlük Kayıtlarını Değiştir
Dosyalar, dizinler ve diğer NTFS dosya sistemi nesneleri eklendikçe, silindikçe ve değiştirildiğinde, NTFS dosya sistemi bilgisayardaki her birim için bir tane olacak şekilde akışlardaki değişiklik günlüğü kayıtlarını girer. Her kayıt, değişikliğin türünü ve nesnenin değiştiğini gösterir. Belirli bir kayıt için akışın başından uzaklık, belirli bir kaydın güncelleştirme dizisi numarası (USN) olarak adlandırılır. Yeni kayıtlar akışın sonuna eklenir.
NTFS dosya sistemi, alandan tasarruf etmek için eski kayıtları silebilir. Gerekli kayıtlar silinmişse, değişiklik günlüğü olmadığında olduğu gibi dizin oluşturma hizmeti birimi yeniden dizine alarak kurtarılır.
Değişiklik günlüğü yalnızca bir dosyada yapılan değişikliğin olgularını ve değişikliğin nedenini (yazma işlemleri, kesme, uzatma, silme vb.) günlüğe kaydeder. Değişikliğin tersine çevirmeye izin vermek için yeterli bilgi kaydetmez.
Ayrıca, aynı dosyada yapılan birden çok değişiklik geçerli kayda yalnızca bir neden bayrağı eklenmesine neden olabilir. Aynı tür bir değişiklik birden çok kez gerçekleşirse, NTFS dosya sistemi ilk değişiklikten sonra değişiklikler için yeni bir kayıt yazmaz. Örneğin, kapatma ve yeniden açma işlemlerinin araya girip gelmediği birkaç yazma işlemi, neden bayrağı USN_REASON_DATA_OVERWRITE ayarlanmış tek bir değişiklik kaydıyla sonuçlanır.
Değişiklik günlüğünün nasıl çalıştığını göstermek için kullanıcının bir dosyaya aşağıdaki sırayla eriştiği varsayın:
- Dosyaya yazar.
- Dosyanın zaman damgasını ayarlar.
- Dosyaya yazar.
- Dosyayı kısaltın.
- Dosyaya yazar.
- Dosyayı kapatır.
Bu durumda, NTFS dosya sistemi değişiklik günlüğünde aşağıdaki eylemleri gerçekleştirir (burada | bit düzeyinde OR işlemini gösterir).
Olay | NTFS dosya sistemi eylemi |
---|---|
İlk yazma işlemi |
NTFS dosya sistemi, USN_REASON_DATA_OVERWRITE neden bayrağı ayarlanmış yeni bir USN kaydı yazar. Olası neden bayrakları hakkında daha fazla bilgi için USN_RECORD yapısına bakın. |
Dosya zaman damgası ayarı |
NTFS dosya sistemi, | USN_REASON_DATA_OVERWRITE bayrak ayarıyla yeni bir USN kaydı yazar USN_REASON_BASIC_INFO_CHANGE. |
İkinci yazma işlemi |
NTFS dosya sistemi yeni bir USN kaydı yazmaz. mevcut kayıt için USN_REASON_DATA_OVERWRITE zaten ayarlanmış olduğundan, kayıtta hiçbir değişiklik yapılmaz. |
Dosya kesilmesi |
NTFS dosya sistemi, | USN_REASON_DATA_OVERWRITE bayrak ayarıyla yeni bir USN kaydı yazar USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION. |
Üçüncü yazma işlemi |
NTFS dosya sistemi yeni bir USN kaydı yazmaz. mevcut kayıt için USN_REASON_DATA_OVERWRITE zaten ayarlanmış olduğundan, kayıtta hiçbir değişiklik yapılmaz. |
Kapatma işlemi |
Değişiklik yapan kullanıcı dosyanın tek kullanıcısıysa, NTFS dosya sistemi şu bayrak ayarıyla yeni bir USN kaydı yazar: USN_REASON_DATA_OVERWRITE | USN_REASON_BASIC_INFO_CHANGE | USN_REASON_DATA_TRUNCATION | USN_REASON_CLOSE. |
Değişiklik günlüğü, dosyanın ilk açılışıyla son kapanışı arasında bir dizi kayıt biriktirir. Her kaydın yeni bir neden bayrağı ayarlanmıştır ve bu da yeni bir değişiklik türünün oluştuğunu gösterir. Kayıt dizisi dosyanın kısmi geçmişini verir. Dosya kapatıldığında oluşturulan son kayıt, USN_REASON_CLOSE bayrağını ekler. Bu kayıt, dosyadaki değişikliklerin özetini temsil eder, ancak önceki kayıtlardan farklı olarak, değişikliklerin sırasına ilişkin hiçbir gösterge vermez.
Dosyaya erişecek ve dosyayı değiştirecek bir sonraki kullanıcı, tek bir neden bayrağıyla yeni bir USN kaydı oluşturur.