แตกออกจาก e2fsck เมื่อบูต


4

เป็นไปได้หรือไม่ที่จะแตกออกจาก e2fsck เมื่อบู๊ต?

ระบบของฉันทำงาน e2fsck ทุก ๆ 30 วันซึ่งเป็นเรื่องปกติสำหรับฉันและฉันต้องการให้มันคงอยู่อย่างนั้น แต่บางครั้งเมื่อฉันเปิดคอมพิวเตอร์และผ่านไป 30 วันแล้วฉันก็ยังต้องการให้มันบูตเร็ว เช่นเมื่อฉันต้องนำเสนอออกแล็ปท็อปลองนึกภาพบอกคน 50 คน "เราต้องรอ 10 นาที ... ไม่ฉันไม่สามารถหลีกเลี่ยงได้ ... ใช่นี่คือ Linux ทำไมคุณถาม ?" :)

หากฉันกด Ctrl + C จะเป็นการหยุดการตรวจสอบและดำเนินการตามลำดับการบูตต่อ แต่ระบบไม่สามารถใช้งานได้เนื่องจากระบบไฟล์รูทติดตั้งแบบอ่านอย่างเดียว และหลังจากที่ฉันรีบูตเครื่องจะเริ่มตรวจสอบอีกครั้ง

ฉันค้นหาคำตอบจากอินเทอร์เน็ตและมีคำถามที่คล้ายกันมากมาย แต่ฉันไม่สามารถหาคำตอบได้ ใครรู้วิธีแก้ปัญหา?

หมายเหตุ : ฉันกำลังมองหาวิธีแก้ปัญหาที่จะไม่ปิดการใช้งาน fsck และไม่ต้องการการดำเนินการใด ๆ ก่อนที่จะรีบูตคอมพิวเตอร์ - ฉันไม่ทราบล่วงหน้าฉันจะต้องข้ามการตรวจสอบ

ถ้ามันสำคัญ: Debian 6 (บีบ)

UPDATE : ฉันได้เรียนรู้ว่ามันเป็นไปได้ที่จะแบ่ง e2fsck ด้วยปุ่ม Esc บน Ubuntu นี่คือสิ่งที่ฉันกำลังมองหา - ทุกคนรู้วิธีที่จะทำให้สิ่งนี้เกิดขึ้นบนเดเบียน?

SOLUTION : คำตอบของ Garrett /etc/init.d/checkroot.shถูกต้องผมต้องแก้ไข ก่อนหน้าบรรทัดเหล่านี้:

#
# The actual checking is done here.
#
if [ "$rootcheck" = yes ]
then
    ...

ฉันเพิ่มบรรทัดเหล่านี้:

if [ "$rootcheck" = yes ]
then
    if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline
    then
        echo "fsck was forced."
    else
        echo "********************************************************************************************************"
        echo "*                                                                                                      *"
        echo "*  WARNING: fsck should be run, but it is disabled. Create /forcefsck and reboot at your convenience.  *"
        echo "*                                                                                                      *"
        echo "********************************************************************************************************"
        rootcheck="no"
    fi
fi

ทำงานได้อย่างสวยงาม - ฉันยิ้มทุกครั้งที่เห็นข้อความโดยรู้ว่าฉันเพิ่งช่วยชีวิตอีกครึ่งชั่วโมง :)


1
การตรวจสอบไม่มีประโยชน์ใด ๆ ดังนั้นจึงเป็นการดีที่สุดเพียงปิดการใช้งาน
psusi

4
ไม่เห็นด้วยอย่างยิ่งกับความคิดเห็นก่อนหน้า พวกเขาอยู่ที่นั่นด้วยเหตุผลและหากคุณไม่ต้องการข้อมูลที่ไม่สอดคล้องกันฉันจะไม่ทำตามความคิดเห็นที่ชัดเจน
Garrett

1
ฉันสงสัยว่าคุณกำลังใช้ระบบไฟล์ ext3 หากคุณใช้ ext4 แทนคุณจะได้สัมผัสกับ fsck เร็วกว่า ... พาร์ติชัน ~ 200GB ของฉันที่มีข้อมูลมากกว่า 100GB อาจใช้เวลา 10 วินาที อันที่จริงแล้วนั่นเป็นคุณสมบัติหนึ่งที่ทำให้ระบบไฟล์นี้น่าสนใจอย่างยิ่งสำหรับฉัน (ฉันเริ่มใช้มันก่อนที่จะมีการประกาศเสถียร)
tshepang

ยังเร็วกว่ายังไม่ดีพอ - ฉันต้องการข้ามขั้นตอนนี้จนกว่าฉันจะรอ
johndodo

ถ้าคุณไม่ชอบอัตโนมัติfsckที่มักจะคุณควรใช้tune2fsกับตัวเลือก-cและและ-C -iดูman tune2fsรายละเอียดเพิ่มเติมได้ที่ จากนั้นให้ทำการfsckรันด้วยตนเองทุก ๆ คราว การตรวจสอบเป็นระยะ ๆ ไม่เพียง แต่สำหรับข้อผิดพลาดที่เป็นไปได้ของโปรแกรมควบคุมระบบไฟล์เท่านั้น
Mikko Rantalainen

คำตอบ:


6

มีวิธีง่าย ๆ สามวิธีในการบรรลุสิ่งที่คุณต้องการทำขึ้นอยู่กับสถานการณ์

  1. เมื่อปิดใช้บรรทัดคำสั่งshutdownไบนารีและผ่านสวิทช์เช่นสำหรับการรีบูต:-f shutdown -rf nowคุณสามารถสร้างทางลัดด้วยวิธีนี้ได้หากต้องการ นี่จะข้ามการตรวจสอบ fsck ในการรีบูตครั้งถัดไปเท่านั้น
  2. เมื่อเมนูด้วงปรากฏขึ้นเมื่อบู๊ตกดปุ่ม 'e' เพื่อแก้ไขเคอร์เนลการบูตปัจจุบันให้แก้ไขบรรทัด vmlinuz และต่อfastbootท้าย เช่นเดียวกับตัวเลือก 1 การทำเช่นนี้จะข้ามการตรวจสอบ fsck สำหรับการบู๊ตนั้นเท่านั้น
  3. หากคุณจริงๆต้องการปิดใช้งานการตรวจสอบทั้งหมด (ยังไม่แนะนำ) /etc/fstabคุณสามารถแก้ไขไฟล์ 1 2หาบรรทัดที่มีระบบแฟ้มรากของคุณและในตอนท้ายจะมีตัวเลขสองมักจะ การเปลี่ยนหมายเลขสุดท้าย (2 ที่นี่) เป็น 0 จะป้องกันการตรวจสอบ fsck อัตโนมัติทุกครั้งที่เรียกใช้บนไดรฟ์ข้อมูลนั้น

แก้ไขสำหรับ # 2: คุณสามารถเพิ่มรายการใหม่ลงในด้วงfastbootซึ่งอาจเหมาะกับกรณีตัวอย่างของคุณมากขึ้น ยังคงมีการตรวจสอบ fsck ปกติในขณะที่นำเสนอทางเลือกในระหว่างการบูต


+1! ตัวเลือกแรกและตัวที่สามไม่สามารถใช้งานได้สำหรับฉัน แต่ตัวเลือกที่สองคือ หากทำเครื่องหมาย "เกิดขึ้น" ฉันสามารถใช้ Ctrl + C รีบูตและใช้ตัวเลือก fastboot (ซึ่งฉันสามารถเตรียมล่วงหน้าได้) ฉันจะรอดูว่ามีวิธีที่ง่ายกว่านี้ไหม แต่นั่นก็จะช่วยด้วย! ขอบคุณ! :)
johndodo

ฉันไม่สามารถทำงานกับตัวเลือก 2 ได้ แต่ฉันพบวิธีแก้ปัญหานี้สำหรับฉัน (ฉันได้อัปเดตคำถามพร้อมคำตอบแล้ว) ขอบคุณ!
johndodo

1

แม้ว่าจะไม่ได้ตอบคำถามของคุณโดยตรงถึงวิธีการยกเลิก fsck ที่กำลังรันอยู่หากคุณรู้ล่วงหน้าว่าคุณจะต้องใช้การบูตอย่างรวดเร็ว (เช่นถ้าคุณวางแผนที่จะให้งานนำเสนอ) คุณสามารถเรียกใช้ fsck ได้ด้วยตนเองก่อนหน้านี้ เวลา. สิ่งนี้จะทำให้คุณใหม่ 30 วันก่อนการตรวจสอบระบบไฟล์อัตโนมัติครั้งต่อไปโดยไม่ต้องแตะการกำหนดค่าระบบใด ๆ


ขอบคุณ แต่ฉันมีสิ่งที่ดีกว่าที่จะทำมากกว่านับกี่วันที่ผ่านมาจากการตรวจสอบครั้งสุดท้ายคุณรู้ว่า ... ;) ตลกกันฉันไม่ได้ตื่นเต้นที่มีโอกาสดูแลการตรวจสอบด้วยตนเอง
johndodo

ดีมีเสมอdumpe2fs -hและMount count, Maximum mount countและNext check afterบิตข้อมูล ผมเห็นว่ามันไม่ดีที่สุด (และ @ จุดการ์เร็ตฯ เมื่อวันที่fastbootอาจจะดีกว่าถ้ามันเหมาะกับคุณ) แต่ข้อแม้ของคำตอบของฉันคือเฉพาะ "ถ้าคุณรู้ล่วงหน้า"
CVn

ใช่ แต่คำถามของฉันระบุไว้โดยเฉพาะ "ฉันไม่ทราบล่วงหน้า" ... ;) ยังขอบคุณสำหรับคำตอบ เหตุผลในการตอบกลับคือคำถามส่วนใหญ่ที่ฉันพบมีคำตอบแบบเดียวกัน - ไม่มีคำถามใดที่ตรงกับบิลของฉัน ฉันขอขอบคุณความพยายาม
johndodo

1

คุณสามารถแก้ไขสคริปต์เริ่มต้นที่เรียกว่า fsck ตัวอย่างเช่นคุณสามารถทำให้มันถามคอนโซลว่าจะทำ fsck ด้วยการหมดเวลา สคริปต์อยู่ใน /etc/init.d/checkroot.sh และ /etc/init.d/checkfs.sh

ฉันสังเกตเห็นว่าสำเนาของฉันมีรหัสนี้ซึ่งคุณสามารถเปิดใช้งานได้อีกครั้ง:

# Disabled AC power check until fsck can be told to only check the
# file system if it is corrupt when running on battery. (bug #526398)
#       if which on_ac_power >/dev/null 2>&1 && [ "$rootcheck" = yes ]
#       then
#               on_ac_power >/dev/null 2>&1
#               if [ "$?" -eq 1 ]
#               then
#                       log_warning_msg "On battery power, so skipping file system check."
#                       rootcheck=no
#               fi
#       fi

หากฉันเข้าใจถูกต้องการดำเนินการนี้จะข้ามการตรวจสอบทุกครั้งที่ฉันใช้แบตเตอรี่
johndodo

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