วิธีซ่อมแซมระบบไฟล์ FAT32 ที่เสียหาย


109

ฉันใช้ระบบไฟล์ FAT32 สำหรับไดรฟ์ปากกาของฉัน มันมักจะมีความเสียหายของไฟล์ / ข้อมูล

ใน Windows ฉันใช้ยูทิลิตีดิสก์สแกนเพื่อแก้ไขระบบไฟล์ FAT32 / NTFS ฉันจะทำสิ่งนี้ใน Ubuntu ได้อย่างไร


3
คุณนำออกอย่างปลอดภัยหรือไม่
ζ--

คำตอบ:


125

ลองพิมพ์คำสั่งต่อไปนี้ใน terminal Linux:

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

sdc1มักเป็นไดรฟ์ปากกาของคุณ คุณสามารถค้นหาไดรฟ์ปากกาของคุณโดยการพิมพ์การเชื่อมต่อใน terminal มันอยู่ที่ไหนซักแห่งข้างใน หากคำสั่งนั้นใช้เวลามากเกินไปให้คุณหลีกเลี่ยงการสลับ-t

  • -w หมายถึงเขียนลงดิสก์ทันที
  • -rหมายถึงการตรวจสอบดิสก์แบบโต้ตอบ (ขอให้คุณทำอย่างไรเมื่อพบข้อผิดพลาด) ในรุ่นที่ใหม่กว่าของdosfsckนี่คือค่าเริ่มต้น
  • -l หมายถึงรายการชื่อไฟล์ที่ดำเนินการ
  • -aหมายถึงแก้ไขข้อผิดพลาดโดยอัตโนมัติ อย่าใช้มันหากคุณต้องการควบคุมการแก้ไขข้อผิดพลาดที่เป็นไปได้มากขึ้น
  • -vหมายถึงโหมด verbose สร้างเอาต์พุตเพิ่มขึ้นเล็กน้อย
  • -t หมายถึงทำเครื่องหมายกลุ่มที่อ่านไม่ได้ว่าไม่ดี

หากคุณต้องการแน่ใจว่าข้อมูลของคุณไม่สูญหายให้สร้างการสำรองข้อมูลของอุปกรณ์ต้นทางก่อน


ระบบไฟล์อื่นใดที่คำสั่งนี้สามารถแก้ไขนอกเหนือจาก FAT32
Shaharil Ahmad

@ShaharilAhmad FAT16 ซึ่งอาจยังคงใช้อยู่ ตัวอย่างเช่นฉันได้รับการ์ดหน่วยความจำ 2GB ขนาดเล็กที่มี FAT16
keiki

แต่ถ้าฉันไม่ทำ -t ถ้างั้นคราวหน้าลองอีกครั้งเพื่อใช้กลุ่มที่ไม่ดีในครั้งหน้า?
keiki

"ปัจจุบันสนับสนุน FAT เพียง 1 หรือ 2 ตัวไม่ใช่ 0"
Aaron Franke

อย่าใช้-aแต่ฉันไม่เข้าใจวิธีการตอบครึ่งคำถามที่ถามฉัน!
Michael

51

คุณสามารถลอง Dosfsck ซึ่งเป็นส่วนประกอบของ dosfstools

สำหรับสิ่งนี้พิมพ์ใน terminal:

sudo apt-get install dosfstools

ในการใช้Dosfsckคุณจะต้องระบุที่อยู่อุปกรณ์ที่คุณต้องการ (เช่น. dev / sdb1, / dev / sdb2 หรืออุปกรณ์อื่น ๆ )

หากต้องการทราบที่อยู่อุปกรณ์ของคุณให้เปิดเทอร์มินัล (CTRL + ALT + T) จากนั้นเรียกใช้คำสั่งนี้:

mount

หากพาร์ติชันของคุณคือ / dev / sdb1 ให้ถอนการติดตั้งก่อนโดยรันคำสั่งนี้:

sudo umount /dev/sdb1

ตอนนี้คุณสามารถตรวจสอบและซ่อมแซมพาร์ติชันของคุณโดยใช้คำสั่งนี้:

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

หวังว่านี่จะช่วยได้

บันทึก:

หากคุณได้รับข้อผิดพลาดต่อไปนี้เมื่อ USB flash drive ของคุณไม่เป็นที่รู้จัก:

Error: Buffer I/O error on device sdb1

เรียกใช้คำสั่งนี้:

dmesg|tail

หากผลลัพธ์คือ:

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

เรียกใช้คำสั่งนี้:

sudo dosfsck -t -a /dev/sdb1

แน่นอนคุณต้องเปลี่ยนที่อยู่อุปกรณ์ตามความต้องการของคุณเช่นที่ฉันเขียนไว้ด้านบน


ใน 13.04 จำนวนดูเหมือนว่าจะทำงานได้โดยไม่ต้อง sudo
giuspen

ฉันมักจะพบกับปัญหาที่ว่าถ้า HDD หรือไดรฟ์ปากกาภายนอกถูกตัดการเชื่อมต่ออย่างไม่ถูกต้องในขณะที่ดำเนินการกับมันการอนุญาตจะกลายเป็นบ้าทำให้อุปกรณ์ไร้ประโยชน์อย่างแท้จริง คำตอบของคุณรู้สึกเหมือนพระเจ้าส่งมาให้ฉัน ขอบคุณมาก ๆ !
Alfredo Hernández


4

cheatsheet dosfsck

ตัวอย่างเหล่านี้จะใช้ FAT32 และ / dev / sdc1

fsck.vfat -n /dev/sdc1 - เช็คแบบอ่านอย่างเดียวแบบไม่โต้ตอบ

fsck.vfat -a /dev/sdc1 - ตรวจสอบระบบไฟล์และแก้ไขแบบไม่โต้ตอบ มีวิธีการทำลายล้างน้อยที่สุดเสมอ

fsck.vfat -r /dev/sdc1 - ซ่อมแบบโต้ตอบ ผู้ใช้จะได้รับพร้อมท์เสมอเมื่อมีมากกว่าหนึ่งวิธีในการแก้ไขปัญหา

fsck.vfat -l -v -a -t /dev/sdc1 - วิธีตรวจสอบและซ่อมแซมระบบไฟล์แบบไม่โต้ตอบ พารามิเตอร์ -t จะทำเครื่องหมายกลุ่มที่อ่านไม่ได้ว่าไม่ดีดังนั้นจึงไม่สามารถใช้งานได้กับไฟล์และไดเรกทอรีที่สร้างขึ้นใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.