Albo masz szczęście, że nigdy nie miałeś uszkodzonych danych, albo masz pecha, że nigdy nie zauważyłeś, że Twoje dane są uszkodzone.
Podczas wykonywania czynności, która powinna zostać zapisana na dysku, większość systemów operacyjnych umieszcza operację zapisu w kolejce. Od czasu do czasu opróżniają kolejkę. (Nazywam to tutaj kolejką, ale w rzeczywistości operacje mogą być wykonywane poza kolejnością, systemy operacyjne robią to, gdy jest szybsze i daje ten sam końcowy wynik.) Może to znacznie przyspieszyć operacje zapisu, zarówno dlatego, że system próbuje wykonywać je, gdy nie ma nic lepszego do roboty i ponieważ może je inteligentnie grupować.
Jeśli zdarzy ci się odłączyć urządzenie przed napisaniem wszystkiego, możesz przegapić najnowsze dane. Co gorsza, jeśli system operacyjny wykonuje operacje poza kolejnością, możesz wprowadzić urządzenie w niespójny stan i stracić więcej niż najnowsze dane.
Niektóre systemy operacyjne przechodzą w bardziej konserwatywny (ale wolniejszy) tryb dla urządzeń wymiennych, aby zmniejszyć ryzyko związane z odłączeniem urządzenia przed jego odmontowaniem.
DODANE :
Wykonywanie operacji poza kolejnością czasami nie jest tylko kwestią szybkości. Tanie nośniki flash (które nie powodują realokacji sektorów na poziomie sprzętowym) mają ograniczenie liczby zapisów w danym sektorze. Jeśli naiwnie zapisujesz wszystkie zmiany w ich trakcie, może to zabić sektory zawierające tabelę alokacji plików w systemie plików (V) FAT (najczęstszy przypadek dysków wymiennych) lub dziennik w typowym nowoczesnym systemie plików. (Zobacz np. Dyskusję sync
na temat listy mailingowej jądra systemu Linux ). Tutaj, nie aktualizowanie FAT lub dziennika za każdym razem, gdy plik jest zapisywany, nie jest tylko dużym wzrostem wydajności, ale także jest dobre na cały okres użytkowania sprzętu.
Do niedawna Linux dawał tylko wybór sync
(zapisuj wszystkie zmiany w miarę ich występowania) i async
(pisz, kiedy jest to dogodne). Najnowsze wersje wprowadzają flush
opcję dla systemów plików FAT, która jest gdzieś pomiędzy (opróżnij wszystkie opóźnione zapisy, gdy tylko dysk stanie się nieaktywny); jest domyślnie włączony w Ubuntu 10.04.
Z drugiej strony odmontowanie dysku wymiennego gwarantuje, że żadna aplikacja nie ma otwartego pliku. Jeśli nie odmontujesz przed odłączeniem, nie zauważysz, że masz niezapisane dane, dopóki nie będzie za późno. Odmontowanie, gdy plik jest otwarty, zwiększa również ryzyko uszkodzenia, zarówno na poziomie systemu plików (system operacyjny mógł ustawić niektóre operacje w kolejce do momentu zamknięcia pliku), jak i na poziomie aplikacji (np. Jeśli aplikacja umieści plik blokady, wygra ” zostać usunięte).