บังคับให้ fsck.ext4 ทำการรีบูท แต่“ แรง” จริงๆ


21

หนึ่งในเซิร์ฟเวอร์ Ubuntu 10.04 ของฉันกำลังสร้างปัญหาให้ฉัน เมื่อฉันรันfsck.ext4 -n /dev/sda5มันจะบอกฉันว่ามีข้อผิดพลาดในการนับไอโหนดอิสระจำนวนบล็อกฟรีและอื่น ๆ

ฉันเหนื่อย:

touch /forcefsck

พยายามด้วย:

shutdown -rF now

และยังคงหลังจากรีบูตฉันเห็นข้อผิดพลาด

ฉันเพิ่งตรวจสอบบน eeePC netbook ของฉัน Ubuntu 10.10 และมีปัญหาเดียวกัน!

ฉันจะบังคับให้ "บังคับ" "พลัง" "แก้ไขระบบไฟล์ของฉันอย่างจริงจัง" fsck ของระบบไฟล์ "/" เมื่อรีบูตได้อย่างไร

ชี้แจง:ฉันทำงานfsck.ext4 -nเพราะมันเป็นระบบไฟล์ที่ติดตั้งอยู่เพื่อตรวจสอบว่ามีข้อผิดพลาดหรือไม่ สิ่งนี้บอกฉันว่ามี ผมคิดว่า fsck อัตโนมัติทุก 30 ม้าในระหว่างกระบวนการ boot-up เป็นอย่างแม่นยำในการดูแลของข้อผิดพลาดในระบบแฟ้มราก แต่มันไม่ได้ทำในกรณีของฉัน ฉันสามารถรีบูตด้วย LiveCD และแก้ไขข้อผิดพลาดจากนั้นรีบูตอีกครั้ง แต่นั่นเป็นช่วงเวลาที่ร้ายแรงสำหรับเซิร์ฟเวอร์ที่ใช้งานจริง การรีบูตอัตโนมัติ fsck จากนั้นทำการบู๊ตต่อไปจะยั่งยืนมากขึ้นบนเซิร์ฟเวอร์ที่ใช้งานจริงและฉันเชื่อว่าควรจะมีพฤติกรรมที่เหมาะสม

ข้อมูลเพิ่มเติม:นี่คือผลลัพธ์ ดูเหมือนว่าสิ่งที่ autofsck จะแก้ไขใช่ไหม

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

รุ่นเซิร์ฟเวอร์ Ubuntu ที่คุณใช้คืออะไร
crncosta

10.04 ฉันจะแก้ไขคำถามของฉัน
UrkoM

ฉันไม่คิดว่าคุณสามารถทำได้จริง ๆ แล้วในความเป็นจริงคุณอาจทำดีกว่าการตรวจสอบด้วยตนเอง
RolandiXor

1
ขออภัยฉันยังต้องการข้อมูลเพิ่มเติม คุณกำลังทำ fsck ในระบบไฟล์ที่ติดตั้งอยู่หรือไม่? คุณสามารถบูทจาก LiveCD และตรวจสอบอีกครั้ง (ด้วย / dev / sda5 ของคุณหรือไม่)
crncosta

เป็นไปได้หรือไม่ที่ไม่ใช่ระบบไฟล์ แต่ฮาร์ดไดรฟ์เสีย? ในกรณีนี้คาดว่า ext4 จะไม่แก้ไขข้อผิดพลาดและจะมีเพียงส่วนที่ไม่ดี
Stefano Palazzo

คำตอบ:


10

จากหน้า e2fsck:

"โปรดทราบว่าโดยทั่วไปแล้วจะไม่ปลอดภัยที่จะเรียกใช้ e2fsck บนระบบไฟล์ที่เมาท์ข้อยกเว้นเพียงอย่างเดียวคือหากระบุตัวเลือก -n และไม่ได้ระบุตัวเลือก -c, -l หรือ -L อย่างไรก็ตามแม้ว่าจะปลอดภัยแล้วก็ตาม หากต้องการทำเช่นนั้นผลลัพธ์ที่พิมพ์โดย e2fsck จะไม่ถูกต้องหากระบบไฟล์ติดตั้งอยู่หาก e2fsck ถามว่าคุณควรตรวจสอบระบบไฟล์ที่ติดตั้งอยู่หรือไม่คำตอบที่ถูกต้องคือ '' ไม่ '' ผู้เชี่ยวชาญเท่านั้นที่รู้จริง ๆ ว่าอะไร พวกเขากำลังทำอยู่ควรพิจารณาตอบคำถามนี้ด้วยวิธีอื่น "

ดังนั้นหากคุณตรวจสอบ FS ที่เมาท์ด้วย fsck แม้ใช้ตัวเลือก -n ผลลัพธ์อาจไม่ถูกต้องเลย อย่าตรวจสอบระบบไฟล์ที่เมาท์ ใช้ Live-CD / Live-USB

หากคุณไม่ตรวจสอบระบบไฟล์ในขณะที่ติดตั้งอยู่ฉันไม่เข้าใจว่าทำไมคุณต้องใช้touch /forcefsckคุณสามารถยกเลิกการต่อเชื่อมและแก้ไขได้ แต่ถ้าเป็นกรณีนี้และหลังจากแก้ไข FS ของคุณยังมีข้อผิดพลาดอยู่คุณสามารถลองใช้:

e2fsck -cy /dev/sda5

ที่จะแก้ไขปัญหาที่เกี่ยวข้องกับฮาร์ดไดรฟ์ที่เรียกว่าบล็อกที่ไม่ดีที่คุณอาจมี (ซึ่งจะใช้เวลานาน)

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


คุณถูกต้องระบบไฟล์ติดตั้งอยู่ และแน่นอนฉันต้องทำ fsck เมื่อเดินเท้า แต่ผมใช้ fsck -n เพื่อตรวจสอบในขณะที่ติดตั้งโดยไม่มีการเปลี่ยนแปลงและมันบอกฉันมีข้อผิดพลาด และไม่ควร fsck ในการรีบูตแก้ไขหรือไม่
UrkoM

ฉันเพิ่งสังเกตเห็นสิ่งที่คุณพูดในประโยคแรก: ทำไม fsck -n จะไม่ถูกต้องในระบบไฟล์ติดตั้ง? ฉันจะตรวจสอบหากมีการติดตั้งระบบแฟ้มมีข้อผิดพลาดในทางที่น่าเชื่อถือ?
UrkoM

คุณสามารถตรวจสอบหน้า e2fsck ที่พูดว่า: "โปรดทราบว่าโดยทั่วไปจะไม่ปลอดภัยที่จะเรียกใช้ e2fsck บนระบบไฟล์ที่เมาท์ข้อยกเว้นเพียงอย่างเดียวคือหากระบุตัวเลือก -n และ -c, -l หรือ -L คือ ไม่ได้ระบุไว้อย่างไรก็ตามแม้ว่าจะปลอดภัยแล้วก็ตามผลลัพธ์ที่พิมพ์โดย e2fsck จะไม่ถูกต้องหากระบบไฟล์ถูกเมาท์หาก e2fsck ถามว่าคุณควรตรวจสอบระบบไฟล์ที่ติดตั้งหรือไม่คำตอบที่ถูกต้องคือ '' ไม่มี ''. ผู้เชี่ยวชาญเท่านั้นที่จะรู้ว่าจริงๆสิ่งที่พวกเขากำลังทำอะไรควรพิจารณาการตอบคำถามนี้ในลักษณะอื่นใด."
Nyamiou Galeanthrope

ผมไม่ทราบว่าวิธีการตรวจสอบระบบไฟล์ติดบางทีคุณควรสร้างคำถามอื่น
Nyamiou Galeanthrope

คุณสามารถเพิ่มความคิดเห็นสองข้อสุดท้ายในคำตอบของคุณได้ไหม? จากนั้นฉันจะยอมรับมัน ฉันไม่รู้ว่านั่นคือเหตุผลว่าทำไม ... ฉันคิดว่าเป็นเพราะ fsck -n ไม่ประมวลผลเจอร์นัลดังนั้นสถานะระบบไฟล์ไม่สอดคล้องกันโดยไม่ได้ดูการเปลี่ยนแปลงล่าสุดที่เก็บไว้ที่นั่น
UrkoM

24

ฉันรู้ว่านี่เป็นเธรดเก่าจริง ๆ แต่เมื่อเร็ว ๆ นี้ฉันต้องแก้ปัญหานี้ดังนั้นฉันจึงต้องการโพสต์วิธีบังคับให้ระบบปฏิบัติการแก้ไขปัญหาที่พบใน fsck ระหว่างการบูต (สำหรับ 12.04)

sudo touch /forcefsckคุณไม่จำเป็นต้องเรียกใช้คำสั่ง นี่จะทำให้ fsck ทำการบู๊ตครั้งต่อไป คุณสามารถเห็นผลลัพธ์ของ fsck ใน /var/log/boot.log

อย่างไรก็ตามคุณไม่รับประกันว่า fsck จะแก้ไขสิ่งที่พบ ในการทำเช่นนี้คุณจะต้องแก้ไขไฟล์ / etc / default / rcS มีบรรทัดที่ท้ายไฟล์นั้น:

FSCKFIX=no

สิ่งนี้จำเป็นต้องเปลี่ยนเป็นสิ่งต่อไปนี้:

FSCKFIX=yes

สิ่งนี้จะมีผลเช่นเดียวกับการรัน fsck ด้วยตัวเลือก -y ซึ่งจะบังคับให้แก้ไขทั้งหมดที่เป็นไปได้ที่จะนำมาใช้และจะไม่ขอให้ผู้ใช้โต้ตอบ

สิ่งนี้จะช่วยให้คุณเรียกใช้ fsck อย่างที่ OP ร้องขอโดยไม่ต้องรีบูตเครื่องจากดิสก์สดซึ่งไม่สามารถทำได้โดยเฉพาะถ้าคุณอยู่ในระบบระยะไกล


1
การแก้ไขรายการนี้ในอินสแตนซ์ Ubuntu EC2 ของฉันพร้อมกับคำสั่งsudo touch /forcefsckและsudo shutdown -rคำสั่งแก้ไขปัญหาระบบไฟล์ได้สำเร็จและคำเตือนการตรวจสอบเมื่อเข้าสู่ระบบ ง่ายและไม่ก่อกวน - ไชโย
c.gutierrez

คำถามเดียวกันถูกถามใน Server Fault และคำตอบนี้ก็เป็นคำถามเดียวที่ใช้ได้กับฉันในระบบ Ubuntu 14.04 เพียงแค่ทำsudo touch /forcefsckแล้ว rebooting ไม่ได้; การแก้ไขrcSเป็นสิ่งที่จำเป็น
Teemu Leisti

12
sudo touch /forcefsck
sudo reboot

คุณพิมพ์ผิด - คุณกำลังแตะต้อง / forcefcsk "c" และ "s" ถูกสลับ fsck สั้นสำหรับ FileSystemChecK


สิ่งนี้จะไม่ทำงานสำหรับฉันเพราะระบบไฟล์รูทติดตั้งแบบอ่านอย่างเดียวเนื่องจากข้อผิดพลาดที่ฉันต้องแก้ไขด้วยfsck! ปัญหาไก่และไข่ที่สามารถแก้ไขได้ผ่านทาง liveCD หรือดึงไดรฟ์เข้าสู่เครื่องอื่น
HDave

3

คุณไม่สามารถบังคับ fsck เปิด / ที่จะซ่อมแซมได้เนื่องจากมีการใช้งานพาร์ติชัน ลองเรียกใช้การตรวจสอบจากพาร์ติชันอื่นหรือซีดีสด


2
เป็นจริงมาก แต่ fsck อัตโนมัติในการบูตควรเกิดขึ้นก่อนที่พาร์ทิชันจะถูกใช้งานอย่างแม่นยำเพื่อให้สามารถแก้ไขข้อผิดพลาดใน "/" มิฉะนั้นประเด็นคืออะไร?
UrkoM

3
ฉันเชื่อว่าการตรวจสอบนั้นเกิดขึ้นก่อนการใช้งาน แต่มันเป็นการตรวจสอบที่ปรึกษามากกว่า ขึ้นอยู่กับคุณที่จะตัดสินใจว่าจะแก้ไขข้อผิดพลาดอย่างไร การตรวจสอบง่ายคือเมื่อดูที่ / etc / fstab "/" ได้รับเช็คที่แตกต่างจากพาร์ติชั่นอื่น ๆ
charlie-tca

มันจะเกิดขึ้นก่อนที่รูตจะถูกหมุน? กล่าวคือ INITial Ram Disk
mckenzm

1

คุณสามารถแก้ไขได้โดยอัตโนมัติด้วยวิธีต่อไปนี้:

Tune2fs -c 5 -i 10 / dev / sda1

-cเป็นจำนวนสูงสุดของเมาท์ก่อนที่จะใช้fsckและเป็นจำนวนสูงสุดของวันก่อนที่จะใช้-ifsck

ในกรณีนี้จะทำทุก ๆ 5 ครั้งหรือทุก ๆ 10 วันแล้วแต่ว่าจะถึงอย่างใดก่อน

ฉันมีคอมพิวเตอร์สองเครื่องเครื่องหนึ่งที่มี Linux SuSE 13.2 และอีกเครื่องที่มี Linux Mint 18.0 และทั้งคู่ทำงานได้อย่างสมบูรณ์


อะไรคือรูปแบบและความคิดเห็นในรูปแบบอัตโนมัติดังต่อไปนี้: Tune2fs -c 5 -i 10 / dev / sda1 โดยที่: -c เป็นจำนวนสูงสุดของการติดตั้งก่อนที่จะใช้ fsck โดยที่: -i เป็นจำนวนสูงสุดของวันก่อนที่จะใช้ fsck ในกรณีนี้จะทำทุก ๆ 5 ครั้งหรือทุกๆ 10 วันแล้วแต่ว่าจะถึงอย่างใดก่อน ฉันมีคอมพิวเตอร์สองเครื่องเครื่องหนึ่งที่มี Linux SuSE 13.2 และอีกเครื่องที่มี Linux MInt 18.0 และทั้งคู่ทำงานได้อย่างสมบูรณ์แบบ
hk3jld

อะไรคือรูปแบบและความคิดเห็นในรูปแบบอัตโนมัติดังต่อไปนี้: Tune2fs -c 5 -i 10 / dev / sda1 โดยที่: -c เป็นจำนวนสูงสุดของการติดตั้งก่อนที่จะใช้ fsck โดยที่: -i เป็นจำนวนสูงสุดของวันก่อนที่จะใช้ fsck ในกรณีนี้จะทำทุก ๆ 5 ครั้งหรือทุกๆ 10 วันแล้วแต่ว่าจะถึงอย่างใดก่อน ฉันมีคอมพิวเตอร์สองเครื่องเครื่องหนึ่งที่มี Linux SuSE 13.2 และอีกเครื่องที่มี Linux MInt 18.0 และทั้งคู่ทำงานได้อย่างสมบูรณ์แบบ ฉันไม่ทราบภาษาอังกฤษ แต่ฉันใช้นักแปลฉันหวังว่าการฝึกอบรมจะดี
hk3jld

1
ใช้งานกับ Ubuntu ได้หรือไม่
George Udosen

0

touch /forcefsckเพียงอย่างเดียวไม่แน่ใจว่าระบบของฉันจะทำงานfsckในการบู๊ตครั้งถัดไป ฉันต้องวิ่งด้วย:

sudo tune2fs -c 1 /dev/<my partition>

เช่น

sudo tune2fs -c 1 /dev/sda1

คำอธิบายเพิ่มเติมฉันพบอยู่ที่นี่: วิธีการบังคับ fsck เพื่อตรวจสอบระบบไฟล์หลังจากรีบูต

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