W dniu 16.11.2013 21:52, krul tefał-enu pisze:
Pracowałem od około 3 godzin na komputerze i w tym czasie miałem
otwarty plik txt, w którym dokonywałem notatek, używając funkcji zapisz
co jakieś 5 minut. W pewnej chwili komputer się przegrzał, nie było
niebieskiego ekranu tylko wszystko zamarło i stanęło w miejscu.
Wyłączyłem maszynę na jakieś 10 minut i odpaliłem ponownie. Plik txt ma
ostatnie zmiany zapisane 2 godziny przed awarią, dlaczego
skoro co 5 minut używałem opcji save??!
Zapis realizowany przez aplikację jest realizowany do bufora
w pamięci operacyjnej i dopiero potem system operacyjny to
zrzuca na nośnik faktycznie (fizycznie). W efekcie operacja
zapisu może być odłożona na czas od kilku do kilkudziesięciu
sekund. Dobre programy wywołują zatem funkcję wymuszającą po
zapisaniu pliku faktyczne zrzucenie go na nośnik, a nawet ro-
bią coś takiego, że nową wersję pliku zapisują pod nową nazwą,
a dopiero po zapisaniu danych na nośnik podmieniają metadane
(zmieniając nazwę zbioru).
Podejrzewam, że tutaj nałożyło się jeszcze jakieś drobne
uszkodzenie systemu plików, tzn. w momencie, gdy komputer
się zawiesił, system operacyjny mógł właśnie zapisywać naj-
nowszą wersję zbioru z bufora na nośnik i ponieważ operacja
została przerwana, z dziennika transakcji została odtworzona
jakaś poprzednia wersja metadanych, wskazująca na bloki uży-
wane przez jedną z poprzednich wersji zbioru.
Generalnie -- system operacyjny nie gwarantuje sam z siebie
integralności danych w warunkach błędnie działającego sprzę-
tu lub zasilania. NTFS gwarantuje tylko integralność metada-
nych, ale nie samych danych.