रास्पबेरी पाई 3 और रास्पबियन जेसी - बूट में fsck कैसे चलाएं?


13

Pi 3 और रास्पबेरी जेसी का उपयोग करते समय बूट पर fsck कैसे चलाएं? मैंने कुछ ट्यूटोरियल पढ़े हैं लेकिन वे अलग हैं।

मैं दौड़ चुका हूं sudo touch /forcefsckलेकिन मुझे और क्या करना है? मुझे पता है कि मुझे FSCKFIX = हां सेट करना चाहिए लेकिन सही फाइल क्या है? कुछ /lib/init/vars.shदूसरों का कहना है /etc/default/rcS

मैं कैसे सत्यापित कर सकता हूं कि मेरी सेटिंग्स काम कर रही हैं? मेरे पास स्क्रीन करने के लिए कोई दृश्यता नहीं है। पावर आउटेज है इसलिए उच्च जोखिम है कि फ़ाइल सिस्टम दूषित हो जाता है।

संपादित करें:

मैंने नीचे दिए गए दो समाधानों की कोशिश की।

1)sudo shutdown -rF now /var/log/boot.log का उपयोग करके कहते हैं: [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2) का उपयोग करके fsck.mode=forceऔर fsck.repair=yesमें /boot/cmdline.txtbootlog का कहना है: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

इन दो मामलों में लॉग फ़ाइल बिलकुल अलग क्यों है?

जवाबों:


23

मैंने सुडोल टच / फोर्सफेक चलाया है लेकिन मुझे और क्या करना है?

वह सामान जो मट्ठा पर अधिक लागू होता है; jessie इसके साथ संगत हो सकती है (या नहीं), लेकिन आप इसे नए तरीके से कर सकते हैं:

निम्नलिखित जोड़ें /boot/cmdline.txt:

fsck.mode=force

सुनिश्चित करें कि फ़ाइल सभी एक पंक्ति में बनी हुई है। पैरामीटर को रिक्त स्थान के साथ अलग किया जाना चाहिए।

आप शायद देखेंगे fsck.repair=yesकि वहाँ पहले से ही है; ये एक ही बात नहीं हैं। से man systemd-fsck(ये वास्तव में पैरामीटर हैं जो कर्नेल द्वारा init , यानी, systemd पर पारित किए जाते हैं ):

fsck.mode =

"ऑटो", "बल", "स्किप" में से एक। ऑपरेशन के मोड को नियंत्रित करता है। डिफ़ॉल्ट "ऑटो" है, और यह सुनिश्चित करता है कि फ़ाइल सिस्टम की जाँच तब की जाए जब फ़ाइल सिस्टम चेकर उन्हें आवश्यक समझे। "बल" बिना शर्त पूरी फाइल सिस्टम जांच में परिणाम करता है। "स्किप" किसी भी फाइल सिस्टम जांच को छोड़ देता है।

fsck.repair =

"प्रीएन", "हां", "नो" में से एक। ऑपरेशन के मोड को नियंत्रित करता है। डिफ़ॉल्ट "प्रीएन" है, और स्वचालित रूप से उन समस्याओं की मरम्मत करेगा जो सुरक्षित रूप से तय की जा सकती हैं। "हाँ" fsck द्वारा सभी प्रश्नों के लिए हाँ में उत्तर देगा और "नहीं" सभी प्रश्नों का उत्तर नहीं देगा।


इसकी तुलना में यह अलग कैसे है sudo shutdown -rF now? Boot.log बिलकुल अलग दिखता है।
जेपीएक्स

3

यह मैं जेसी पुरानी-स्थिर रिलीज पर लाइन के अंत में उपयोग कर रहा हूं cmdline.txt: forcefsck

मेरे पास निम्नलिखित भी हैं fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 नोट 1और 2लाइन के अंत में

यह प्रत्येक बूट पर रूट विभाजन (/ dev / mmcblk0p2) की जांच करता है (@JulianKnight not / dev / sda2)।

मूल ओपी में वर्णित है जो अभी भी आरपीआई पर व्हीजी के लिए काम करता है: sudo touch /forcefsck

Wheezy के बाद @WillianPaixao का -Fविकल्प shutdownअब समर्थित नहीं है

फाइलसिस्टम जांच को कैसे बाध्य किया जाए (अधिकतर) कर्नेल संस्करण के लिए बाध्य है, कुछ बिंदु पर डेबियन 8.0 (8.2?) के बाद, इसे @goldilocks उत्तर में वर्णित रूप में बदल दिया गया था।


2

आपको निम्नलिखित भी करने में सक्षम होना चाहिए जो किसी भी लिनक्स के लिए काम करना चाहिए न केवल पाई (जाहिर है कि डिवाइस विभिन्न प्लेटफार्मों के लिए बदल जाएगा, sda2 डिफ़ॉल्ट पीए एसडी कार्ड के लिए सही होना चाहिए):

sudo tune2fs -c 1 /dev/sda2

कि हर रिबूट एक चेक सेट करना चाहिए। आप जो चाहें उसे नंबर बदल सकते हैं। यदि आप समय-आधारित जाँच चाहते हैं, तो -सी के बजाय -सी का उपयोग करें। अधिक जानकारी के लिए मैन पेज देखें।


1

मैं पैरामीटर के shutdownसाथ उपयोग करता हूं -F[1]

sudo shutdown -rF now

मैंने आज्ञा का पालन किया। रिबूट के बाद मेरे syslog में fsck run (raspbian खिंचाव) के बारे में कोई जानकारी नहीं है।
रॉबर्ट

2
मैंने सिर्फ man shutdownरास्पियन पर जाँच की - वहाँ कोई -F विकल्प नहीं है।
विक्टर सर्जिनेको

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