Cách sửa chữa hệ thống tệp FAT32 bị hỏng


109

Tôi đang sử dụng hệ thống tập tin FAT32 cho ổ đĩa bút của mình. Nó thường xuyên bị hỏng tập tin / dữ liệu.

Trong Windows, tôi đã sử dụng tiện ích đĩa quét để sửa các hệ thống tệp FAT32 / NTFS. Làm thế nào tôi có thể làm điều này trong Ubuntu?


3
Bạn có đẩy ra an toàn không?
ζ--

Câu trả lời:


125

Hãy thử gõ lệnh sau trong thiết bị đầu cuối Linux:

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

sdc1 thường là ổ đĩa bút của bạn. Bạn có thể tìm ổ đĩa bút của mình bằng cách gõ mount trong terminal. Nó ở đâu đó bên trong. Nếu lệnh đó mất quá nhiều thời gian cho bạn, hãy tránh chuyển đổi -t .

  • -w có nghĩa là ghi vào đĩa ngay lập tức.
  • -rnghĩa là kiểm tra đĩa một cách tương tác (hỏi bạn phải làm gì khi gặp lỗi). Trên các phiên bản mới hơn của dosfsck, đây là mặc định.
  • -l có nghĩa là liệt kê tên tập tin được xử lý.
  • -acó nghĩa là tự động sửa lỗi. Không sử dụng nó, nếu bạn muốn có nhiều quyền kiểm soát hơn trong việc sửa các lỗi có thể xảy ra.
  • -vcó nghĩa là chế độ dài dòng. Tạo đầu ra nhiều hơn một chút.
  • -t có nghĩa là đánh dấu các cụm không thể đọc là xấu.

Nếu bạn muốn chắc chắn không làm mất dữ liệu của mình, trước tiên hãy tạo bản sao lưu của thiết bị nguồn.


Hệ thống tập tin nào khác mà lệnh này có khả năng sửa chữa ngoài FAT32?
Shaharil Ahmad

@ShaharilAhmad FAT16, có thể vẫn được sử dụng. Ví dụ: tôi có một thẻ sd 2GB mini với FAT16.
keiki

Nhưng nếu tôi không làm -t thì lần sau nó lại thử sử dụng các cụm xấu vào lần sau?
keiki

"Hiện tại, chỉ có 1 hoặc 2 FAT được hỗ trợ, không phải 0."
Aaron Franke

không sử dụng -a, nhưng tôi không hiểu làm thế nào để trả lời một nửa câu hỏi mà nó hỏi tôi!
Michael

51

Bạn có thể thử Dosfsck, một thành phần của dosfstools.

Đối với điều này, nhập vào thiết bị đầu cuối:

sudo apt-get install dosfstools

Để sử dụng Dosfsck , bạn phải cho biết địa chỉ thiết bị bạn muốn (Ví dụ: dev / sdb1, / dev / sdb2 hoặc thiết bị khác.).

Để biết địa chỉ thiết bị của bạn, hãy mở thiết bị đầu cuối (CTRL + ALT + T), sau đó chạy lệnh này:

mount

Ví dụ, nếu phân vùng của bạn là / dev / sdb1, thì hãy ngắt kết nối nó trước bằng cách chạy lệnh này:

sudo umount /dev/sdb1

Bây giờ bạn có thể xác minh và sửa chữa phân vùng của mình bằng cách chạy lệnh này:

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

Hi vọng điêu nay co ich.

Ghi chú:

nếu bạn nhận được lỗi sau, khi ổ flash USB của bạn không được nhận dạng:

Error: Buffer I/O error on device sdb1

Chạy lệnh này:

dmesg|tail

Nếu đầu ra là:

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

Chạy lệnh này:

sudo dosfsck -t -a /dev/sdb1

Tất nhiên, bạn phải thay đổi địa chỉ thiết bị theo nhu cầu của bạn, như tôi đã viết ở trên.


vào ngày 13.04, umount dường như cũng hoạt động mà không có sudo
giuspen

Tôi luôn gặp phải vấn đề là nếu ổ cứng gắn ngoài hoặc ổ đĩa bút bị ngắt kết nối không đúng cách trong khi thực hiện các thao tác với nó, các quyền sẽ trở nên điên rồ, khiến thiết bị gần như vô dụng. Câu trả lời của bạn cảm thấy như một vị thần - gửi cho tôi; cám ơn nhiều, ông bạn!
Alfredo Hernández


4

áo choàng dosfsck

Những ví dụ này sẽ sử dụng FAT32 và / dev / sdc1

fsck.vfat -n /dev/sdc1 - kiểm tra chỉ đọc không tương tác đơn giản

fsck.vfat -a /dev/sdc1 - kiểm tra hệ thống tập tin và sửa lỗi không tương tác. Phương pháp phá hoại tối thiểu luôn được sử dụng.

fsck.vfat -r /dev/sdc1 - Sửa chữa tương tác. Người dùng luôn được nhắc khi có nhiều hơn một cách tiếp cận để khắc phục sự cố.

fsck.vfat -l -v -a -t /dev/sdc1 - một cách rất dài để kiểm tra và sửa chữa hệ thống tập tin không tương tác. Tham số -t sẽ đánh dấu các cụm không thể đọc là xấu, do đó làm cho chúng không có sẵn cho các tệp và thư mục mới được tạo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.