Przyjrzyjmy się, co się dzieje, gdy system Windows usuwa plik z woluminu NTFS (w przeciwieństwie do odzyskiwania informacji z uszkodzonych woluminów z uszkodzonymi systemami plików). Odzyskiwanie pliku usuniętego z woluminu NTFS jest prostsze niż przywrócenie takiego pliku w większości innych systemów plików.
Na przykład, jeśli używasz FAT, łańcuch wskaźników alokacji plików (identyfikujących klastry zajmowane przez plik) zostałby utracony po usunięciu pliku. Tak się nie dzieje w systemie plików NTFS.
Podczas usuwania pliku z dysku twardego lub dysku USB, karty pamięci CompactFlash, Micro SD, jego nazwa jest wykluczona z indeksu katalogu nadrzędnego; zwalniany jest odpowiedni rekord MFT, jak również wszystkie klastry zajmowane przez ten plik. Indeks zostaje uporządkowany, co może spowodować utratę informacji o nazwie pliku.
W rezultacie usunięty plik nie będzie już pojawiał się w katalogu poprzednio zawierającym go. Oto jak NTFS kasuje pliki?
Jednak tę małą wadę rekompensuje fakt, że MFT przechowuje wszystkie rekordy w jednej tabeli. W rezultacie znacznie łatwiej jest zlokalizować dostępne rekordy. Każdy rekord zawiera atrybut zawierający adres bazowy katalogu nadrzędnego. To z kolei oznacza, że po zlokalizowaniu pustego rekordu możemy określić pełną ścieżkę do tego rekordu.
Aby odzyskać pliki usunięte z woluminu NTFS, należy przeskanować MFT w poszukiwaniu pustych (dostępnych) rekordów. Jeśli zostanie znaleziony pusty rekord, można będzie określić nazwę pliku, która jest przechowywana w jednym z atrybutów. Określenie nazw plików nie zawsze jest możliwe. Jednak w przeciwieństwie do woluminów FAT, wszystkie wskaźniki do klastrów zajmowanych przez ten plik będą nadal istnieć.
Oznacza to, że możemy odzyskać pliki o dowolnym rozmiarze, nawet jeśli są bardzo pofragmentowane – oczywiście, jeśli inne pliki nie zajęły ich klastrów.
Niektóre bardzo małe pliki mogą być przechowywane w MFT jako atrybuty. Pliki te nazywane są plikami rezydentnymi. Jeśli plik rezydentny zajmował pojedynczy rekord MFT, można go odzyskać do czasu ponownego przydzielenia rekordu MFT.
NTFS ma specjalny algorytm przydzielania rekordów MFT. Podczas przydzielania rekordu MFT system Windows spróbuje użyć pierwszego dostępnego rekordu na podstawie jego numeru. W rezultacie rekordy z niższą liczbą rekordów MFT są alokowane częściej niż rekordy z wyższą liczbą rekordów.
Dziennik transakcji NTFS
Dziennik transakcji to podstawowa funkcja systemu plików NTFS. Dziennik transakcji NTFS rejestruje informacje o operacjach zapisu do specjalnego pliku. Dziennik transakcji NTFS nie zawsze jest aktywny; zawiera jednak informacje o usunięciu pliku i czasie ostatniej edycji.
NTFS to samonaprawiający się system plików. Dziennik transakcji jest jednym z narzędzi umożliwiających systemowi wycofywanie zmian, które doprowadziły do uszkodzenia systemu plików. Najczęściej system plików ulega uszkodzeniu podczas operacji zapisu, na przykład w przypadku przerwy w zasilaniu lub awarii systemu w momencie, gdy system zapisuje coś na dysku.
Jeśli system wykryje nieprawidłowe zamknięcie lub jeśli podczas ponownego uruchamiania zostanie ustawiona flaga „BRUDNY”, system Windows przeanalizuje dziennik transakcji NTFS. Dziennik transakcji zawiera informacje o nadchodzących aktualizacjach metadanych i rejestruje te aktualizacje, gdy zostaną pomyślnie zatwierdzone.
Więc co się stanie, jeśli wystąpi błąd podczas operacji zapisu? W takim przypadku system Windows analizuje dziennik transakcji i przywraca stan systemu plików do stanu poprzedniego. Dziennik transakcji NTFS nie zawiera danych użytkowników nierezydentów. Jednak zawiera wszystkie atrybuty rezydentne, aby umożliwić wycofanie. W rezultacie dziennik transakcji nie może być używany do odzyskiwania większych plików.