NTFS:

Zobaczymy, co dzieje sie przy skasowaniu plików /dirX/file.xxx

1.     Kasowanie pliku zaczyna sie od odczytu pierwszego sektora systemu plików i praca z boot sektorem dla wyliczenia rozmiaru klastera i początkowego adresu MFT i rozmiaru MFT zapisu.

2.     Odczyt z MFT pierwszego zapisu (plik $MFT) i obliczenie według tego zapisu wyjaśniając strukturę pozostałych zapisów MFT, informacja przechowywana jest w atrybutach $DATA

3.     Dalej potrzebne jest odnalezienie katalogu dirX, dla tego musimy odczytać zapis MFT katalogu ROOT i przechodzimy po index'ie w atrybutach $INDEX_ROOT i $INDEX_ALLOCATION. Ze znalezionego elementu dirX bierzemy adres zapisu MFTxxx i odświeża się czas ostatniego zgłoszenia do folderu.

4.     Pracujemy z atrybutem $INDEX_ROOT zapisu MFTxxx i szukamy w nim elementu file.xxx., wyjaśniamy, że adres MFT pliku jest pod zapisem MFTxxy.

5.     Zapis wyklucza sie z indexu, elementy węzła przesuwają sie i zamieniają poprzedni element. Dla folderu odświeża sie czas ostatniego zgłoszenia.

6.     Zapis MFTxxy wyswobodzony zostaje przez zrzucenie flagi użytkowania. Tak samo opracowany jest atrybut $DATA pliku $BITMAP, i w nim zerujemy bit danego zapisu.

7.     Obrabiamy nierezydentne atrybuty zapisu MFTxxy, klastery należące do niego uwalniają sie w bitowej mapie pliku \$Bitmap. W naszym konkretnym przykładzie to np. klastery xxx i xxxx.

8.     W każdym z wymienionych etapów może być robiony zapis do dziennika systemu plików $LogFile i dziennika zmian \$Extend\$Usr\JRNL. Jeżeli w systemie są quoty, nowy rozmiar pliku quoty użytkownika wylicza sie w pliku \$Extend\$Quota. Zwróćcie uwagę: przy kasowaniu plików w NTFS Windows nie kasuje odnośników, i związki pomiędzy zapisem MFT i klasterami zostają, związek pomiędzy nazwa pliku i zapisem MFT tez by pozostał, jeżeli zapis nie był by utracony w skutek sortowania.

 

Odzyskiwanie plików.

       Odzyskiwanie skasowanych plików w NTFS jest łatwiejsze niż w większości pozostałych systemów plików. Przy kasowaniu pliku jego nazwa jest wykluczona z indexu foldera rodzicielskiego, wyswobadza sie zapis MFT I zajęte przez niego klastery. Przy tym component  Microsoft nie kasuje zawartości odnośników chociaż wykluczyć takiej możliwości w kolejnych wersjach Windows nie można. NTFS ma jedną wielką wadę: przy wykluczeniu nazw plików z indexu rodzicielskiego folderu index sortowany jest od nowa, i informacja o nazwie plików może być utracona. Chociaż taka wada może być po części kompensowana tym, że wszystkie zapisy MFT są trzymane w jednej tabeli, co ułatwia odnalezienie wszystkich wolnych zapisów. Oprócz tego każdy zapis jest w atrybutach $FILE_NAME  z bazowym adresom rodzicielskiego folderu, a to oznacza ze przy odnalezieniu wolnego zapisu można wyliczyć jego całą ścieżkę dostępu, jeżeli tylko zapisy w rodzicielskich katalogach nie są powtórnie zajęte nowymi plikami  lub folderami.

Druga czynność przy odzyskiwaniu – szukać dodatkowych atrybutów $DATA.

Żeby odzyskać wszystkie skasowane pliki w systemie plików NTFS, potrzebnie jest odnalezienie w MFT wolnych zapisów, już po odnalezieniu wolnych zapisów nazwa jest zapisana w atrybucie $FILE_NAME i adresie rodzicielskiego foldera. Odnośniki do klasterów ciągle istnieją, i jeżeli dane jeszcze nie byli nadpisane można je odzyskać bez trudu nawet przy mocnej fragmentacji skasowanych plików. Jeżeli znaczenie atrybutu było rezydentne dane nie będą nadpisywane do kolejnego wydzielenia tego zapisu MFT. Jeżeli dla przechowywania atrybutów pliku potrzebnie było więcej niż jeden zapis MFT dla pełnego odzyskania mogą być potrzebne pozostałe zapisy. W Windows dla zapisów MFT wykorzystywany jest algorytm zaznaczenia pierwszego wolnego zapisu, dla tego MFT zapisy z małymi numerami są przepisywane częściej niż z wielkimi. Przy odzyskiwaniu mogą być przydatne dane dziennika systemu plików lub dziennika zmian (dziennik zmian nie zawsze jest aktywny, ale w nim można odnaleźć czas skasowania lub redagowania pliku).

 Teraz juz mozna konstatowac, ze z odzyskiwaniem w NTFS poradzi sobie byle jaki program z istniajacych na rynku, tylko trzeba przytrzymac sie niektorych obowiazkowych szczegolow.

  ext3: Ten system plikow niczym prawie nie rozni sie od ext2 za wyjatkiem niektorych szczegolow i tego ze jest "jurnaled filesystem"( data=writeback, data=ordered, data=journal). 3 tryby ksiegowania tego systemu plikow
1. data=writeback - w tym trybie system plikow nie prowadzi jakiegokolwiek ksiegowania.
2. data=ordered - tryb data=ordered ksieguje tylko metadane. W tym trybie bloki metadanych i dane zapisywane do wspolnego modulu (transaction), przed nagraniem nowych metadanych dane zwiazane nagrywane sa jako pierwsze.
3. data=jurnal - w tym trybie ksieguje sie wszystko i metadane i dane, wszystkie nowe dane najpierw zapisywane sa do ksiengi i tylko po tym zapisywane na swoich fizycznych mejscach na dysku.
Jak odzyskac dane skasowane w ext3, w takim przypadku ext2 w odroznieniu od ext3 po prostu zaznacza odnosniki do blokow jako nieuzywane a w ext3 odnosniki sa zerowane. Takze odzyskiwanie danych skasowanych w ext3 bedzie mozliwe tylko przez szukanie plikow po „grep“ sygnaturach plików . Do tego jest najlepszym softem DataExtraktor BVG HRT DRE lub ACELAB, tryb raw recovery, dla odzyskiwania plikow skasowanych w ext2 mozna uzyc soft r-studio czy stellar for linux i juz wczesniej podane narzedzia profesionalne i tp.

 

Teraz popatrzymy co dzieje sie przy formatowaniu dysku NTFS

NTFS formatowanie dysku :
Buduje sie boot-sektor w formacie ntfs
Generuje sie nowy seryjny numer dysku i zapisuje sie w boot sektor, offset 48h
Oblicza sie nowa suma kontrolna boot-sektor i zapisuje sie offset 50h,
Buduje sie nowy plik MFT, zawierajacy informacje o wszystkich plikach na dysku i zazwyczaj zapisuje sie nadpisujac starego pliku MFT (wyjatkow tu nie ma). We wszystkich przypadkach pierwsze ~24 zapisy (File Record) beda zniszczone bezpowrotnie.
W tych zapisach znajduje sie sam $MFT, $MFTMirr, folder root, /$LogFile - plik transakcji,/$BITMAP - mapa wolnej przestrzeni,/$Secure- deskryptory bezpieczenstwa i inne sluzbowe pliki
Inicializuje sie $MFT:$DATA -naznacza sie nowa dlugosc ($MFT:$30.AllocatedSize, $MFT:$30.RealSize, $MFT:$80.AllocatedSize, $MFT:$80.RealSize, $MFT:$80.CompressionSize, $MFT:$80.InitializedSize, $MFT:$80.LastVCN), data/czas zbudowania/ostatniej modyfikacji ($MFT:$10.FileCreationTime, $MFT:$10.FileAlertedTime, $MFT:$10.FileReadTime, $MFT:$30.FileCreationTime, $MFT:$30.FileAlertedTime, $MFT:$30.MFTChangeTime, $MFT:$30.FileReadTime) i najwazniejsze buduje sie nowy spis odcinkow (data-runs), bezposzczednio nadpisujac stary, a to oznacza ze zbierac fragmentowany $MFT przydzie sie po kawalkach
Buduje sie nowy /$BITMAP-plik odpowiedzialny za podzielenie przestrzeni dyskowej (wolne i zajete klastry) znowu nowa zawartosc nadpisuje stara, ale to tez mozna odzyskac chkdsk.
Buduje sie nowy plik dziennika trasakcji - /$LogFile,
Do naglowka zapisu $MFT wprowadza sie nowy LogFile Sequence Number w skrocie LSN;
$MFT naznaczany jest nowy numer kolejnosci aktualizacji (Update Sequence Number);
Buduje sie lustro $MFTMirr, bezpowrotnie zacierajaca stare (znajduje sie po srodku partycji NTFS ),
Buduja sie nowe /$Volume, /$AttrDef i inne pliki sluzbowe.
Przeprowadza sie sprawdzenie powierzchni i wszystkie odnalezione uszkodzone klastry zapisywane do pliku /$BadClus;
Formuje sie nowy folder root
Jezeli do formatowania partycji istnial /System Volume Information-plik, to on prosto odnawia sie, w przeciwnym razie /System Volume Information buduje sie tylko po restarcie kompiutera;
      Jak widac po formacie zostaja wszystkie dane co byli na dysku, tylko za wyjatkiem niektorych szczegolow samych metadanych zmiana ktorych utrudnia odzyskiwanie , ale nie na tyle zeby to bylo nie mozliwe.
Przytym klasyczna mietoda zerowania za pomoca MHDD niszczy dane calkiem nadpisujac bezwzglednie kazdy sektor zerami, softowe kasowanie mozna liczyc na dzien dzisiejszy za jeden z naibardziej dostepnych i najskuteczniejszych. Moze nie jest najszybszy , ale uzywajac odpowiednia metodyka mozna to przyspieszyc prawie w 10 raz, przy tej samej skutecznosci niszczenia danych .
 

unformat NTFS ręcznie