คอมพิวเตอร์สมัยใหม่มีความน่าเชื่อถืออย่างเหลือเชื่อ แต่สิ่งต่างๆ ยังคงผิดพลาดได้ และสิ่งที่แย่ที่สุดที่มักจะผิดพลาดก็คือการสูญเสียข้อมูลของคุณ ไม่ว่าจะเป็นงานสำคัญหรือภาพถ่ายอันมีค่าของคุณ
ควบคู่ไปกับระบบสำรองข้อมูลที่แข็งแกร่ง fsck (File System cheCK) น่าจะเป็นเครื่องมือที่สำคัญที่สุดที่คุณสามารถมีได้เพื่อป้องกันข้อมูลสูญหาย บทแนะนำนี้จะอธิบายวิธีใช้ fsck เพื่อแก้ไขข้อผิดพลาดของระบบไฟล์ใน Linux และนำคุณผ่านตัวอย่างทั่วไปสี่ตัวอย่าง
fsck ตรวจสอบความสมบูรณ์และแก้ไขข้อผิดพลาดในระบบไฟล์ Linux ของคุณ
ไวยากรณ์
fsck เป็นอินเทอร์เฟซสำหรับตัวตรวจสอบระบบไฟล์จำนวนหนึ่งสำหรับระบบไฟล์ที่ใช้โดย Linux และมีรูปแบบดังนี้:
fsck [OPTIONS]... [FILESYSTEMS]...
โปรดทราบว่า:
- [OPTIONS]… เป็นรายการตัวเลือกจากตารางด้านล่าง
- [FILESYSTEMS] คือรายการระบบไฟล์ที่จะตรวจสอบ/ซ่อมแซม
- ตัวเลือกที่ไม่ใช่ เข้าใจโดย fsck จะถูกส่งต่อไปยังตัวตรวจสอบระบบไฟล์เฉพาะที่ใช้สำหรับระบบไฟล์เฉพาะที่คุณกำลังตรวจสอบ
- หากไม่มีการระบุระบบไฟล์ fsck จะเริ่มต้นการตรวจสอบระบบไฟล์ทั้งหมดใน /etc/fstab (เช่น ค่าเริ่มต้นเป็น -A ตัวเลือก)
ตัวเลือก
fsck มีหลายทางเลือก คุณสามารถดูรายการทั้งหมดได้โดยเรียกใช้:
man fsck
…ในเทอร์มินัลของคุณ ต่อไปนี้คือข้อมูลสรุปของตัวเลือกที่คุณน่าจะต้องใช้มากที่สุด:
ต่อไปนี้คือตัวเลือกที่ใช้กันทั่วไปเมื่อใช้ fsck ตรงจากคู่มือ (แต่มีการทบทวนเพื่อให้กระชับ – ตรวจสอบคู่มือสำหรับรายละเอียดการใช้งานขั้นสูงเพิ่มเติม):
-t | fslist ระบุประเภทของระบบไฟล์ที่จะตรวจสอบ พารามิเตอร์ fslist คือรายการระบบไฟล์และตัวระบุตัวเลือกที่คั่นด้วยเครื่องหมายจุลภาค โดยปกติ ประเภทของระบบไฟล์จะถูกอนุมานโดยการค้นหา filesys ในไฟล์ /etc/fstab และใช้รายการที่เกี่ยวข้อง |
-A | เดินผ่านไฟล์ /etc/fstab และพยายามตรวจสอบระบบไฟล์ทั้งหมดในการรันครั้งเดียว โดยทั่วไปจะใช้ตัวเลือกนี้จากไฟล์การเริ่มต้นระบบ /etc/rc แทนที่จะใช้คำสั่งหลายคำสั่งในการตรวจสอบระบบไฟล์เดียว |
-M | อย่าตรวจสอบระบบไฟล์ที่เมาท์และส่งคืนรหัสทางออก 0 สำหรับระบบไฟล์ที่เมาท์ |
-N | ไม่ดำเนินการ แค่แสดงสิ่งที่จะทำ |
-R | เมื่อตรวจสอบระบบไฟล์ทั้งหมดที่มีแฟล็ก -A ให้ข้ามระบบไฟล์รูท (ในกรณีที่ติดตั้งแบบอ่าน-เขียนแล้ว) |
-V | สร้างเอาต์พุตแบบละเอียด รวมถึงคำสั่งเฉพาะระบบไฟล์ทั้งหมดที่ดำเนินการ |
ตัวเลือกสำหรับ fsck เฉพาะระบบไฟล์ที่แตกต่างกันนั้นไม่ได้มาตรฐาน หากมีข้อสงสัย โปรดศึกษาหน้าคู่มือของตัวตรวจสอบเฉพาะระบบไฟล์ แม้ว่าจะไม่รับประกัน แต่ตัวตรวจสอบระบบไฟล์ส่วนใหญ่รองรับตัวเลือกต่อไปนี้:
-a | ซ่อมแซมระบบไฟล์โดยอัตโนมัติโดยไม่มีคำถามใดๆ (ใช้ตัวเลือกนี้ด้วยความระมัดระวัง) |
-n | สำหรับตัวตรวจสอบเฉพาะระบบไฟล์บางตัว ตัวเลือก -n จะทำให้ fsck เฉพาะ fs หลีกเลี่ยงการพยายามแก้ไขปัญหาใดๆ แต่เพียงรายงานปัญหาดังกล่าว |
-r | ซ่อมแซมระบบไฟล์แบบโต้ตอบ (ขอคำยืนยัน) |
-y | สำหรับตัวตรวจสอบเฉพาะระบบไฟล์บางตัว ตัวเลือก -y จะทำให้ fsck เฉพาะ fs พยายามแก้ไขความเสียหายของระบบไฟล์ที่ตรวจพบโดยอัตโนมัติเสมอ |
หากคุณต้องการดูตัวเลือกที่มีให้สำหรับตัวตรวจสอบเฉพาะสำหรับระบบไฟล์เฉพาะ ให้เรียกใช้:
man fsck.ext4
รหัสออก
รหัสออกที่ส่งคืนโดย fsck คือผลรวมของเงื่อนไขต่อไปนี้ | |
---|---|
0 | ไม่มีข้อผิดพลาด |
1 | แก้ไขข้อผิดพลาดของระบบไฟล์ |
2 | ควรรีบูตระบบ |
4 | ข้อผิดพลาดของระบบไฟล์ที่ยังไม่ถูกแก้ไข |
8 | การทำงานผิดพลาด |
16 | การใช้งานหรือข้อผิดพลาดทางไวยากรณ์ |
32 | Fsck ถูกยกเลิกโดยคำขอของผู้ใช้ |
128 | ข้อผิดพลาดของไลบรารีที่ใช้ร่วมกัน |
รหัสทางออกที่ส่งคืนเมื่อตรวจสอบระบบไฟล์หลายระบบคือ OR ระดับบิต ของรหัสออกสำหรับแต่ละระบบไฟล์ที่ถูกตรวจสอบ |
ตัวอย่าง
ต่อไปนี้คือตัวอย่างการใช้งานทั่วไปของ fsck – ตรวจสอบดิสก์ในเครื่อง รวมถึงระบบไฟล์รูท
กำลังถอนการติดตั้ง
คุณไม่สามารถตรวจสอบระบบไฟล์ที่กำลังใช้งานอยู่ เนื่องจากอาจทำให้ระบบไฟล์เสียหายและส่งผลให้ข้อมูลสูญหายได้ หากต้องการยกเลิกการต่อเชื่อมระบบไฟล์เพื่อไม่ให้ใช้งานและสามารถตรวจสอบได้ ให้เรียกใช้:
sudo umount /dev/filesystem
… โดยที่ ระบบไฟล์ เป็นชื่อระบบไฟล์ที่จะ unmount
หากคุณไม่ทราบชื่อระบบไฟล์ ให้เรียกใช้:
df -h
… เพื่อรับรายการระบบไฟล์และจุดต่อเชื่อม
ติดตั้งใหม่
เมื่อคุณตรวจสอบและซ่อมแซมเสร็จแล้ว คุณสามารถต่อเชื่อมระบบไฟล์อีกครั้งโดยใช้:
sudo mount /dev/filesystem
ตรวจสอบและซ่อมแซมระบบไฟล์ที่เสียหาย
sudo fsck -p /dev/filesystem
โปรดทราบว่า:
- ระบบไฟล์ เป็นชื่อของระบบไฟล์ที่กำลังตรวจสอบและดูเหมือน “sda1” หรือ “sdc1”
- ที่ -p ตัวเลือกบอก fsck เพื่อแก้ไขปัญหาที่ไม่ต้องการการโต้ตอบกับผู้ใช้โดยอัตโนมัติ
ตรวจสอบการบู๊ต / ตรวจสอบระบบไฟล์รูท
เนื่องจากคุณตรวจสอบระบบไฟล์ที่ใช้งานไม่ได้ จึงไม่สามารถตรวจสอบระบบไฟล์รูทใน Linux ได้ในขณะที่ระบบบูทโดยสมบูรณ์และใช้งานอยู่
การเรียกใช้ Check on Boot เป็นวิธีที่ดีที่สุด เนื่องจากใช้งานได้แม้ว่าคุณจะเข้าสู่ระบบจากระยะไกล
การแจกจ่าย Linux ส่วนใหญ่ได้รับการกำหนดค่าโดยค่าเริ่มต้นให้เรียกใช้ fsck โดยอัตโนมัติหากระบบไฟล์ถูกทำเครื่องหมายเป็น "สกปรก" (ต้องตรวจสอบ) หรือหลังจากระยะเวลาการบู๊ตคงที่
ในการบังคับตรวจสอบเฉพาะการบูตระบบแต่ละครั้ง (รวมถึงระบบไฟล์รูท) ให้ใช้ tune2fs เพื่อปรับพารามิเตอร์ระบบไฟล์:
tune2fs -c 1 /dev/filesystem
โดยที่ ระบบไฟล์ คือชื่อของระบบไฟล์ที่จะตรวจสอบ 1 คือจำนวนบูท fsck ทำงานหลังจาก – โดยมีค่าเริ่มต้นเป็น 30 ในการแจกแจงของ Ubuntu เพื่อให้สิ่งต่าง ๆ กลับมาเป็นปกติ คุณสามารถเรียกใช้:
tune2fs -c 30 /dev/filesystem
หากไม่ได้ผล การแจกแจงที่เก่ากว่าจะเรียกใช้ fsck เมื่อเปิดเครื่องหาก /forcefsck ไฟล์มีอยู่:
sudo touch /forcefsck
เมื่อ fsck เสร็จแล้วตอนบูต ผลลัพธ์จะถูกบันทึกไว้ที่ตำแหน่ง:
/var/log/fsck
… พร้อมให้คุณตรวจสอบแล้ว
หากระบบของคุณเสียหายจนไม่สามารถบู๊ตได้เลย คุณสามารถบู๊ตจากแผ่นดิสก์สำหรับการกู้คืนหรืออุปกรณ์ USB แล้วเรียกใช้ fsck จากนั้นระบบไฟล์รูทที่คุณต้องการตรวจสอบจะไม่ถูกติดตั้ง
บทสรุป
สำหรับข้อมูลเพิ่มเติม คุณสามารถอ่าน fsck คู่มือโดยเรียกใช้:
man fsck
ในเทอร์มินัลของคุณ
ตรวจสอบเครื่องมืออธิบายอื่นๆ ของเราเกี่ยวกับเครื่องมือเชลล์ Linux ทั่วไป