ค้นหาเว็บไซต์

วิธีใช้ '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 โปรดอย่าลังเลที่จะส่งคำถามเหล่านั้นในส่วนความคิดเห็นด้านล่าง