จะตรวจสอบรูตพาร์ติชันด้วย fsck ได้อย่างไร?


38

ฉันติดตั้ง Linux Mint 12 KDE แล้วและฉันต้องการตรวจสอบพาร์ติชันรากสำหรับข้อผิดพลาดใด ๆ

ฉันจะตรวจสอบพาร์ติชันรูทด้วย fsck ณ เวลาบูตได้อย่างไร

คำตอบ:



22

คุณสามารถใช้คำสั่งปิดระบบได้เช่นกัน

shutdown -rF now

จากมนุษย์:

ธง -F หมายถึง 'force fsck'
สิ่งนี้จะสร้างไฟล์คำแนะนำ / forcefsck ซึ่งสามารถทดสอบได้โดยระบบเมื่อมันเกิดขึ้นอีกครั้ง ไฟล์ boot rc สามารถทดสอบว่าไฟล์นี้มีอยู่หรือไม่และตัดสินใจรัน fsck (1) ด้วยการตั้งค่าสถานะ `force 'พิเศษเพื่อให้ได้รับการตรวจสอบระบบไฟล์ที่ยังไม่ได้ถอดประกอบ หลังจากนั้นกระบวนการบูตควรลบ / forcefsck


1
ฉันลองมันด้วย Linux Mint 15 MATE และมันไม่ได้ทำให้เกิดการตรวจสอบเมื่อรีบูตเครื่อง แต่ทำงานเมื่อฉันไม่ว่าก่อนที่จะsudo touch /forcefsck sudo reboot
โคลิน D เบนเน็ตต์

6
shutdownมาพร้อมกับ Upstart ไม่รองรับ-Fตัวเลือกอีกต่อไป คุณควรใช้sudo touch /forcefsckแทน ดูตัวอย่างว่าทำไม -F ถูกลบออกจาก / sbin / shutdown และbug # 74139: ปิด -F (แรง fsck) ตัวเลือกที่ขาดหายไป
pabouk

คือลินุกซ์มิ้นต์ 12, ควรทำงาน
Francisco Tapia

4

นี่เป็นอีกวิธีในการทำสิ่งนี้:

tune2fs -C 2 -c 1 /dev/THEDEVTHATROOTIS

รีบูต

จากนั้นระบบไฟล์จะถูกตรวจสอบและเมื่อทุกอย่างดีคุณควรทำ

tune2fs -c 60 /dev/THEDEVTHATROOTIS

ฉันสันนิษฐานว่า max-mount-count ถูกตั้งค่าเป็น 60 คุณควรทราบก่อนออกคำสั่งแรกด้วย

dumpe2fs /dev/THEDEVTHATROOTIS |grep "Maximum mount count"


4
คำตอบของคุณเป็นสิ่งที่ดีและ ... ควรใช้เวลาส่วนใหญ่ (ฉันหมายถึงส่วนใหญ่ของ Linux มาตรฐานที่ติดตั้ง) แต่คุณคิดว่าพาร์ทิชันรากเป็นรูปแบบ ext2,3,4 รูปแบบถ้าเป็นอย่างอื่นเช่น XFS หรือ reiserfs? :)
เทสเซอร์

จริงนี่คือโซลูชัน 9/10
g24l

2

ในระบบของฉัน (โน๊ตบุ๊ค x86 จำนวนมากและ Banana Pi Pro) การพูดsudo shutdown nowนำฉันไปสู่ ​​runlevel 1 (โหมดการบำรุงรักษา aka) ซึ่งฉันสามารถตรวจสอบรูต FS ของฉันได้อย่างปลอดภัย:

mount -o remount,ro /dev/rootpartition
fsck /dev/rootpartition
reboot

ไม่จำเป็นต้องเปลี่ยนแปลง/etc/fstabในการทำเช่นนี้และฉันมีโอกาสที่จะทำงานfsckกับตัวเลือกอะไรก็ได้ที่อาจจำเป็นในการแก้ไขกรณีที่ยุ่งยาก

หมายเหตุ: /forcefsckและtune2fsเทคนิคใช้งานได้กับ x86 แต่ไม่ใช่ใน Banana Pi


มันจะเป็นไปได้ที่จะทำให้tune2fsetc ทำงานบนแพลตฟอร์มใด ๆ เนื่องจากสนับสนุน initramfs (อาจฝัง) ดังนั้นมันขึ้นอยู่กับการกระจาย Linux
Daniel B

คำตอบไม่ทำงานสำหรับการตรวจสอบระยะไกล
Sopalajo de Arrierez

@SopalajodeArrierez ใช่คุณต้องเข้าถึงสถานีในเครื่องในโหมดผู้ใช้คนเดียวดังนั้นชื่อ
Dmitry Grigoryev

0

หากคุณอยู่ใน Raspberry pi และคุณพบว่าตัวเองอยู่ในโหมดฉุกเฉินคุณสามารถยกเลิกการต่อเชื่อมพาร์ติชันรูทและใช้ fsck ได้

(login as root)
mount -o remount,ro /
fsck
reboot

-3

บนระบบ linux ที่ทันสมัยคำตอบข้างต้น (ด้วย forcefsck) ไม่ทำงาน คุณต้องทำด้วยตนเอง:

  1. ทำให้พาร์ติชันรูทของคุณเข้าสู่โหมดอ่านอย่างเดียวโดยการแก้ไขบรรทัดของพาร์ติชันที่ผิดพลาด/etc/fstab(แต่จำการตั้งค่าเดิมของคุณ):

    UUID=fd1d0fad-3a4c-457f-9b5e-eed021cce3d1 /                       ext4    remount,ro        1 1
    
  2. Reboot

  3. เปลี่ยนเป็น runlevel 1 เพียงเพื่อลดจำนวนกระบวนการที่รบกวน:

    init 1
    
  4. แก้ไขระบบไฟล์ของคุณ (แทนที่ / dev / sda2 ด้วยอุปกรณ์ของพาร์ติชันของคุณ) ซึ่งตอนนี้ควรจะทำงานได้เนื่องจากพาร์ติชันรูทเป็นแบบอ่านอย่างเดียว:

    fsck /dev/sda2
    
  5. Reboot (ในระบบ Fedora 21 ของฉันฉันต้องเปลี่ยนเป็น runlevel 1 ระหว่างการบู๊ตด้วย Grub2เพราะไม่เช่นนั้นระบบจะติดเนื่องจากไม่สามารถเขียนบนพาร์ติชันรูทได้)

  6. ทำให้ระบบไฟล์รูทของคุณสามารถอ่าน / เขียนได้:

    mount -o remount,rw /dev/sda2
    
  7. กู้คืน / etc / fstab ของคุณกลับสู่สถานะดั้งเดิม

  8. Reboot


ที่มา: http://bitsofmymind.com/2014/03/14/how-to-fix-fsck-your-root-file-system-that-you-have-to-boot-into-on-linux/


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