बूट पर e2fsck से बाहर निकलें


4

क्या यह संभव है कि किसी तरह बूट पर e2fsck को तोड़ दिया जाए?

मेरा सिस्टम हर 30 दिन में e2fsck चलाता है, जो मेरे द्वारा ठीक है और मैं चाहता हूं कि वह इसी तरह से रहे। लेकिन कभी-कभी जब मैं कंप्यूटर चालू करता हूं और 30 दिन बीत जाते हैं, तब भी मैं चाहता हूं कि यह तेजी से बूट हो। उदाहरण के लिए जब मुझे एक लैपटॉप बंद करके प्रेजेंटेशन देना है - 50 लोगों को बताने की कल्पना करें "हमें बस 10 मिनट इंतजार करना होगा ... नहीं, मैं इसे टाल नहीं सकता ... हां, यह लिनक्स है, आप क्यों पूछ रहे हैं ? " :)

अगर मैं Ctrl + C दबाता हूं तो यह चेक को रोक देता है और बूट अनुक्रम जारी रखता है, लेकिन सिस्टम अनुपयोगी है क्योंकि रूट फाइल सिस्टम केवल रीड-माउंटेड है। और मैं रिबूट के बाद चेक फिर से शुरू होता है।

मैंने उत्तर के लिए इंटरनेट पर खोज की है और कई समान प्रश्न हैं, लेकिन मुझे कोई समाधान नहीं मिला। किसी को भी एक समाधान का पता है?

ध्यान दें : मैं एक समाधान खोज रहा हूँ जो होगा नहीं fsck को निष्क्रिय करें और यह होगा नहीं कंप्यूटर को रिबूट करने से पहले किसी भी कार्रवाई की आवश्यकता है - मुझे पहले से नहीं पता है कि मुझे चेक को छोड़ना होगा।

अगर यह मायने रखता है: डेबियन 6 (निचोड़)। "

अद्यतन करें : मैंने सीखा है कि Ubuntu पर Esc कुंजी के साथ e2fsck को तोड़ना संभव है। यह वही है जो मैं देख रहा हूँ - किसी को पता है कि डेबियन पर ऐसा कैसे करना है?

उपाय : गैरेट का जवाब सही था, मुझे संपादित करना था /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 से अधिक डेटा के साथ शायद 10s लेता है। वास्तव में, यह एक ऐसी विशेषता है जिसने इस फाइलसिस्टम को मेरे लिए बेहद आकर्षक बना दिया है (मैंने इसे स्थिर घोषित किए जाने से पहले इसका उपयोग शुरू कर दिया था)।
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 का उपयोग कर सकता हूं, रिबूट और फास्टबूट विकल्प का उपयोग कर सकता हूं (जिसे मैं पहले से तैयार कर सकता हूं)। मैं यह देखने के लिए प्रतीक्षा करूँगा कि क्या कोई आसान तरीका है, लेकिन यह भी मदद करेगा! धन्यवाद! :)
johndodo

मैं इसे विकल्प 2 के साथ काम नहीं कर सका, लेकिन मुझे मेरे लिए इस मुद्दे को हल करने का एक तरीका मिल गया है (मैंने उत्तर के साथ प्रश्न को अपडेट किया है)। धन्यवाद!
johndodo

1

हालांकि यह सीधे तौर पर आपके सवाल को संबोधित नहीं करता है कि कैसे एक रनिंग fsck को निरस्त किया जाए, यदि आप पहले से जानते हैं कि आपको एक तेज़ बूट की आवश्यकता होगी (जैसे कि यदि आप एक प्रस्तुति देने की योजना बना रहे हैं) तो आप निश्चित रूप से कुछ समय पहले मैन्युअल रूप से fsck चला सकते हैं पहर। यह आपको किसी भी सिस्टम कॉन्फ़िगरेशन को छूने के बिना अगली स्वचालित फ़ाइल सिस्टम जांच से 30 दिन पहले एक नया संकेत देगा।


धन्यवाद, लेकिन मेरे पास गिनती की तुलना में बेहतर चीजें हैं कि पिछले चेक से कितने दिन बीत गए, आप जानते हैं ...;) एक तरफ मजाक करें, मैं वास्तव में एफएस चेक की मैन्युअल रूप से देखभाल करने की संभावना से रोमांचित नहीं हूं।
johndodo

खैर, वहाँ हमेशा है dumpe2fs -h और उसका Mount count, Maximum mount count तथा Next check after जानकारी के बिट्स। मैं मानता हूं कि यह इष्टतम नहीं है (और @ गैरेट बिंदु पर) fastboot शायद बेहतर है, अगर यह आपके लिए काम करता है), लेकिन मेरे जवाब का विवरण था विशेष रूप से "यदि आप पहले से जानते हैं"।
a CVn

हां, लेकिन मेरा प्रश्न विशेष रूप से कहा गया है "मुझे पहले से पता नहीं है" ...;) फिर भी, उत्तर के लिए धन्यवाद। उत्तर का कारण यह था कि मेरे द्वारा पूछे गए अधिकांश प्रश्नों के उत्तर एक ही तरह के थे - जिनमें से कोई भी मेरे बिल में फिट नहीं था मैं हालांकि प्रयास की सराहना करता हूं।
johndodo

1

आप स्टार्टअप स्क्रिप्ट को संपादित कर सकते हैं, जिसे 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.