Jak naprawić uszkodzony system plików FAT32


109

Używam systemu plików FAT32 dla mojego pendrive'a. Często powoduje uszkodzenie plików / danych.

W systemie Windows użyłem narzędzia do skanowania dysku, aby naprawić systemy plików FAT32 / NTFS. Jak mogę to zrobić w Ubuntu?


3
Czy bezpiecznie wysuwasz?
— ζ--

Odpowiedzi:


125

Spróbuj wpisać następujące polecenie w terminalu Linux:

sudo dosfsck -w -r -l -a -v -t /dev/sdc1

SDC1 to zwykle Twój pendrive. Możesz znaleźć swój pendrive pisząc mount w terminalu. Jest gdzieś w środku. Jeśli to polecenie zabiera ci zbyt dużo czasu, unikaj przełączania -t .

  • -w oznacza natychmiastowy zapis na dysk.
  • -roznacza interaktywne sprawdzanie dysku (zapytaj, co zrobić, gdy wystąpią błędy). W nowszych wersjach dosfsck jest to ustawienie domyślne.
  • -l oznacza listę przetworzonych nazw plików.
  • -aoznacza automatyczne naprawianie błędów. Nie używaj go, jeśli chcesz mieć większą kontrolę nad naprawianiem ewentualnych błędów.
  • -voznacza pełny tryb. Generuje nieco większą wydajność.
  • -t oznacza, że ​​nieczytelne klastry oznaczają jako złe.

Jeśli chcesz mieć pewność, że nie stracisz danych, najpierw utwórz kopię zapasową urządzenia źródłowego.


Jaki inny system plików to polecenie może naprawić poza FAT32?
— Shaharil Ahmad

@ShaharilAhmad FAT16, które mogą być nadal używane. Na przykład dostałem mini SD 2GB z FAT16.
— keiki

Ale jeśli nie zrobię -t, to następnym razem spróbuje ponownie użyć złych klastrów następnym razem?
— keiki,

„Obecnie obsługiwanych jest tylko 1 lub 2 FAT, a nie 0.”
— Aaron Franke,

nie używam -a, ale nie rozumiem, jak odpowiedzieć na połowę pytań, o które mnie pyta!
— Michael

51

Możesz wypróbować Dosfsck, który jest składnikiem dosfstools.

W tym celu wpisz terminal:

sudo apt-get install dosfstools

Aby użyć Dosfsck , musisz wskazać odpowiedni adres urządzenia (np. / Dev / sdb1, / dev / sdb2 lub inne urządzenie).

Aby poznać adres swojego urządzenia, otwórz terminal (CTRL + ALT + T), a następnie uruchom następującą komendę:

mount

Jeśli na przykład twoją partycją jest / dev / sdb1, najpierw odłącz ją, uruchamiając następującą komendę:

sudo umount /dev/sdb1

Teraz możesz zweryfikować i naprawić partycję, uruchamiając następujące polecenie:

sudo dosfsck -t -a -w /dev/sdb1

Mam nadzieję że to pomoże.

Uwaga:

jeśli pojawi się następujący błąd, gdy dysk flash USB nie zostanie rozpoznany:

Error: Buffer I/O error on device sdb1

Uruchom to polecenie:

dmesg|tail

Jeśli dane wyjściowe to:

end_request: I/O error, dev sdb1, sector 0
Buffer I/O error on device sdb1, logical block 0

Uruchom to polecenie:

sudo dosfsck -t -a /dev/sdb1

Oczywiście musisz zmienić adres urządzenia do swoich potrzeb, jak napisałem powyżej.


w 13.04 umount wydaje się działać również bez sudo
— giuspen

Zawsze miałem problem z tym, że jeśli zewnętrzny dysk twardy lub pendrive został nieprawidłowo odłączony podczas wykonywania operacji na nim, uprawnienia oszalałyby, czyniąc urządzenie praktycznie bezużytecznym. Twoja odpowiedź wydaje mi się posłana przez Boga; dzięki wielkie!
— Alfredo Hernández


4

ściągawka dosfsck

Te przykłady wykorzystają FAT32 i / dev / sdc1

fsck.vfat -n /dev/sdc1 - proste, nieinteraktywne sprawdzenie tylko do odczytu

fsck.vfat -a /dev/sdc1 - sprawdza system plików i naprawia nieinteraktywnie. Zawsze stosuje się podejście najmniej destrukcyjne.

fsck.vfat -r /dev/sdc1 - interaktywna naprawa. Użytkownik jest zawsze monitowany, gdy istnieje więcej niż jedno podejście do rozwiązania problemu.

fsck.vfat -l -v -a -t /dev/sdc1 - bardzo szczegółowy sposób sprawdzania i naprawy systemu plików w sposób nieinteraktywny. Parametr -t oznaczy nieczytelne klastry jako złe, co spowoduje, że będą niedostępne dla nowo tworzonych plików i katalogów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.