วิธีใช้ 'fsck' เพื่อซ่อมแซมข้อผิดพลาดของระบบไฟล์ใน Linux
Linux Filesystems มีหน้าที่จัดระเบียบวิธีจัดเก็บและกู้คืนข้อมูล ไม่ทางใดก็ทางหนึ่งเมื่อเวลาผ่านไประบบไฟล์อาจเสียหายและบางส่วนอาจไม่สามารถเข้าถึงได้ หากระบบไฟล์ของคุณพัฒนาความไม่สอดคล้องกันดังกล่าว ขอแนะนำให้ตรวจสอบความสมบูรณ์ของระบบ
ซึ่งสามารถทำได้ผ่านยูทิลิตี้ระบบที่เรียกว่า fsck (การตรวจสอบความสอดคล้องของระบบไฟล์) ซึ่งจะตรวจสอบระบบไฟล์รูทโดยอัตโนมัติในช่วงเวลาบูตหรือรันด้วยตนเอง
ในบทความนี้ เราจะดู คำสั่ง fsck และการใช้งานเพื่อช่วยคุณซ่อมแซมข้อผิดพลาดของดิสก์ Linux
เมื่อใดจึงจะใช้คำสั่ง fsck ใน Linux
มีสถานการณ์ที่แตกต่างกันเมื่อคุณต้องการรัน fsck นี่คือตัวอย่างบางส่วน:
- ระบบไม่สามารถบู๊ตได้
- ไฟล์ในระบบเสียหาย (บ่อยครั้งคุณอาจเห็นข้อผิดพลาดอินพุต/เอาท์พุต)
- ไดรฟ์ที่ต่ออยู่ (รวมถึงแฟลชไดรฟ์/การ์ด SD) ไม่ทำงานตามที่คาดไว้
ตัวเลือกคำสั่ง fsck
คำสั่ง fsck จำเป็นต้องรันด้วยสิทธิ์ผู้ใช้ขั้นสูงหรือ root คุณสามารถใช้มันกับข้อโต้แย้งที่แตกต่างกันได้ การใช้งานขึ้นอยู่กับกรณีเฉพาะของคุณ ด้านล่างนี้คุณจะเห็นตัวเลือกที่สำคัญกว่า:
-A
– ใช้สำหรับตรวจสอบระบบไฟล์ทั้งหมด รายการนี้นำมาจาก /etc/fstab
-C
– แสดงแถบความคืบหน้า-l
– ล็อคอุปกรณ์เพื่อรับประกันว่าไม่มีโปรแกรมอื่นใดจะพยายามใช้พาร์ติชันระหว่างการตรวจสอบ-M
– อย่าตรวจสอบระบบไฟล์ที่เมาท์-N
– แสดงเฉพาะสิ่งที่ควรทำ – ไม่มีการเปลี่ยนแปลงที่เกิดขึ้นจริง-P
– หากคุณต้องการตรวจสอบระบบไฟล์แบบขนาน รวมถึงรูทด้วย-R
– อย่าตรวจสอบระบบไฟล์รูท สิ่งนี้มีประโยชน์เฉพาะกับ '-A
'-r
– ระบุสถิติของแต่ละอุปกรณ์ที่กำลังตรวจสอบ-T
– ไม่แสดงหัวเรื่อง-t
– ระบุเฉพาะประเภทระบบไฟล์ Linux ที่จะตรวจสอบ ประเภทสามารถเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคได้-V
– ระบุคำอธิบายของสิ่งที่กำลังทำอยู่
เรียกใช้คำสั่ง fsck เพื่อซ่อมแซมข้อผิดพลาดของระบบไฟล์ Linux
เพื่อที่จะรัน fsck คุณจะต้องแน่ใจว่าไม่ได้ติดตั้งพาร์ติชันที่คุณจะตรวจสอบ เพื่อวัตถุประสงค์ของบทความนี้ ฉันจะใช้ไดรฟ์ที่สองของฉัน /dev/sdb
ที่ติดตั้งใน /mnt
นี่คือสิ่งที่จะเกิดขึ้นหากฉันพยายามเรียกใช้ fsck เมื่อติดตั้งพาร์ติชัน
fsck /dev/sdb
เพื่อหลีกเลี่ยงสิ่งนี้ให้ยกเลิกการต่อเชื่อมพาร์ติชันโดยใช้
umount /dev/sdb
จากนั้น fsck ก็สามารถรันได้อย่างปลอดภัยด้วย
fsck /dev/sdb
ทำความเข้าใจกับรหัสออก fsck
หลังจากรัน fsck มันจะส่งคืนโค้ดทางออก รหัสเหล่านี้สามารถดูได้ในคู่มือของ fsck โดยเรียกใช้:
man fsck
0 No errors
1 Filesystem errors corrected
2 System should be rebooted
4 Filesystem errors were left uncorrected
8 Operational error
16 Usage or syntax error
32 Checking canceled by user request
128 Shared-library error
Fsck ซ่อมแซมระบบไฟล์ Linux
บางครั้งอาจพบข้อผิดพลาดมากกว่าหนึ่งข้อในระบบไฟล์ ในกรณีเช่นนี้ คุณอาจต้องการให้ fsck พยายามแก้ไขข้อผิดพลาดโดยอัตโนมัติ ซึ่งสามารถทำได้ด้วย:
fsck -y /dev/sdb
แฟล็ก -y
จะ “yes ”
โดยอัตโนมัติเมื่อได้รับแจ้งจาก fsck ให้แก้ไขข้อผิดพลาด
ในทำนองเดียวกัน คุณสามารถเรียกใช้แบบเดียวกันได้ในทุกระบบไฟล์ (โดยไม่ต้องมี root):
fsck -AR -y
วิธีรัน fsck บนพาร์ติชั่นรูท Linux
ในบางกรณี คุณอาจต้องเรียกใช้ fsck บนพาร์ติชัน root ของระบบของคุณ เนื่องจากคุณไม่สามารถรัน fsck ได้ในขณะที่ติดตั้งพาร์ติชัน คุณสามารถลองใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้:
- บังคับ fsck เมื่อบูตระบบ
- เรียกใช้ fsck ในโหมดช่วยเหลือ
เราจะตรวจสอบทั้งสองสถานการณ์
บังคับ fsck เมื่อบูตระบบ
การดำเนินการนี้ค่อนข้างง่าย สิ่งเดียวที่คุณต้องทำคือสร้างไฟล์ชื่อ forcefsck ในพาร์ติชันรากของระบบของคุณ ใช้คำสั่งต่อไปนี้:
touch /forcefsck
จากนั้นคุณก็สามารถบังคับหรือกำหนดเวลาการรีบูตระบบของคุณได้ ในระหว่างการบูทครั้งถัดไป fsck จะถูกดำเนินการ หากการหยุดทำงานเป็นสิ่งสำคัญ ขอแนะนำให้วางแผนอย่างรอบคอบ เนื่องจากหากมี inode ที่ใช้งานอยู่จำนวนมากในระบบของคุณ fsck อาจต้องใช้เวลาเพิ่มเติม
หลังจากที่ระบบของคุณบูทแล้ว ให้ตรวจสอบว่าไฟล์ยังคงอยู่หรือไม่:
ls /forcefsck
หากเป็นเช่นนั้น คุณอาจต้องการลบออกเพื่อหลีกเลี่ยง fsck ในการบู๊ตระบบทุกครั้ง
เรียกใช้ fsck ในโหมดช่วยเหลือ
การเรียกใช้ fsck ใน โหมดช่วยเหลือ ต้องใช้ขั้นตอนเพิ่มเติมอีกสองสามขั้นตอน ขั้นแรก เตรียมระบบของคุณสำหรับการรีบูต หยุดบริการที่สำคัญใดๆ เช่น MySQL/MariaDB ฯลฯ แล้วพิมพ์
reboot
ในระหว่างการบู๊ต ให้กดปุ่ม shift
ค้างไว้เพื่อให้เมนูด้วงปรากฏขึ้น เลือก “ตัวเลือกขั้นสูง ”
จากนั้นเลือก “โหมดการกู้คืน ”
ในเมนูถัดไป เลือก “fsck ”
คุณจะถูกถามว่าคุณต้องการให้ระบบไฟล์ /
ของคุณติดตั้งใหม่หรือไม่ เลือก <รหัส>“ใช่ ”
คุณควรเห็นสิ่งที่คล้ายกันนี้
จากนั้นคุณสามารถบูตต่อตามปกติได้โดยเลือก “ดำเนินการต่อ ”
บทสรุป
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีใช้ fsck และดำเนินการตรวจสอบความสอดคล้องบนระบบไฟล์ Linux ต่างๆ หากคุณมีคำถามใดๆ เกี่ยวกับ fsck โปรดอย่าลังเลที่จะส่งคำถามเหล่านั้นในส่วนความคิดเห็นด้านล่าง