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?

Chalitha
źródło
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.

Naveen
źródło
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.

Octávio Filipe Gonçalves
źródło
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
6

Spróbuj także:

fsck.vfat -r /dev/sdXn
gavenkoa
źródło
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.

m3asmi
źródło