Stabilna wersja NTFS-3G 1.2506 wydana

Stabilna wersja NTFS-3G 1.2506 wydana

    przez -
    0 232
    Konsola katalog
    Szabolcs Szakacsits powiadomił wszystkich o wydaniu nowej wersji NTFS-3G, pozwalającego na komunikację linuksowych plików z windowsowymi plikami. Powodem tegoż było odkrycie błędu, który mógł wywołać utratę danych.

    Błąd wydaje się niegroźny, jednakże sposób, w jaki go odkryto był bardzo ciekawy:

    Do niedawna FUSE miało ograniczony rozmiar zapisywanego bloku do 4KB, również typowej wielkości klaster NTFS ma rozmiar 4KB. To oznacza, że wszystkie operacje zapisu kończą się na alokacji nowego, pojedynczego klastra. Jednak uszkodzenie danych może się zdarzyć w rzadkich przypadkach podczas alokacji wielo-klastrowej.

    Alokator klastrów, który decyduje gdzie znajdą się na dysku dane, jest również używany do rozmieszczania metadanych NTFS. Jeden przypadek używa alokacji pojedynczych klastrów, a inny nie. To może prowadzić do zepsucia danych jeśli wszystkie z poniższych warunków są prawdziwe:

    • ostatni używany klaster MFT nie był “wyrównany”
    • wolne miejsce było tylko na końcu grupy alokacji klastrów (CAG – Cluster Allocation Group)
    • było wymagane więcej wolnego miejsca niż było na końcu CAG
    • niewłaściwie odczytana pamięć miała “nieszczęśliwe” wartości

    Kolejnym czynnikiem zależnym od szczęścia było to, żeby metadane wymagające wielo-klastrowej alokacji używały innej, zarezerwowanej dla siebie strefy alokacji – w przeciwieństwie do wszystkiego innego, więc to nie wpływało na inne operacje alokacji… dopóki partycja nie zapełniła się prawie do końca.

    To jeszcze nie wszystko. Był kolejny czynnik zależący od szczęścia, który normalnie zapobiegał tej sytuacji. Chodzi o pewien brak w funkcjonalności, który w niektórych przypadkach zupełnie blokował wielo-klastrowe alokacje metadanych.

    Woluminy NTFS używające mniejszych niż 4KB klastry (512, 1024, 2048) są bardziej narażone. Najwyższe ryzyko jest związane z partycjami korzystającymi z 512 bajtowych klastrów.

    Na nasze szczęście znaleźliśmy ten błąd w ostatniej chwili. Następna stabilna wersja jądra Linux 2.6.26 może używać bloków większych niż 4KB, czego skutkiem byłyby losowe uszkodzenia NTFS na dużą skalę.

    Na szczęście Miklos Szeredi natychmiast zasugerował i zgodził się zaimplementować opcjonalną (domyślnie wyłączoną) obsługę większych bloków w FUSE. To oznacza, że aktualizacja jądra nie może spowodować uszkodzenia danych na NTFS, tylko jeśli NTFS-3G nie został zaktualizowany do wersji 1.2506.

    Obsługa dużych bloków zostanie włączona w NTFS-3G, gdy przejdzie wszystkie nasze testy.

    Stabilną wersję sterowników można ściągnąć z adresu: http://ntfs-3g.org/.

    Źródło: osnews.pl.

    Podobne artykuły

    Konsola katalog

    przez -
    0 289
    Konsola katalog

    przez -
    0 305
    Konsola katalog

    przez -
    0 218