चेकडिस्क कैसे चलाएं?


84

मुझे संदेह है कि डिस्क पर खराब क्षेत्र हो सकता है। मैंने ext3 फाइलसिस्टम का उपयोग किया।

विंडोज के एरर चेकिंग टूल का सबसे अच्छा समकक्ष कौन सा टूल है?


@PabloBianchi: उस प्रश्न में बिल्कुल यही गुंजाइश है। मैं उन्हें विलय करने के लिए एक मॉड के लिए झंडी दिखा रहा हूं।
डेविड फ़ॉस्टर

जवाबों:


101

डिस्क

खराब क्षेत्रों की जांच करने के लिए स्मार्ट डेटा की जांच करें, संभवतः डिस्क उपयोगिता ( पालिम्पेस्ट ) लॉन्च करके सबसे अच्छा सुलभ है । यहां तक ​​कि अगर आपको वहां कोई बुरा ब्लॉक नहीं दिखता है, तो सुनिश्चित करने के लिए एक आत्म-परीक्षण लॉन्च करें।

कार्यक्रम gnome-disk-utilityपैकेज में बंडल किया गया है। Daudgksudo gnome-disks

Palimpsest से स्मार्ट

या उबंटू में 16.04 संस्करण (3.18):

डिस्क से स्मार्ट

Badblocks

आप भी उपयोग कर सकते हैं badblocks

sudo badblocks -sv /dev/sda

केवल जाँच करने के लिए, या जाँचने और ठीक करने के लिए पहले एक अस्थायी फ़ाइल पर परिणाम लिखें:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

संपूर्ण डिस्क की जाँच करेगा और / dev / sda पर आने वाले सभी ख़राब ब्लॉकों का प्रिंट आउट लेगा ।

से badblocksमैनुअल:

महत्वपूर्ण नोट: यदि बैडब्लॉक का आउटपुट e2fsck या mke2fs प्रोग्राम को खिलाया जा रहा है, तो यह महत्वपूर्ण है कि ब्लॉक का आकार ठीक से निर्दिष्ट हो, क्योंकि ब्लॉक नंबर जो उत्पन्न होते हैं, वे फाइलसिस्टम द्वारा उपयोग में ब्लॉक आकार पर बहुत निर्भर होते हैं। । इस कारण से, यह दृढ़ता से अनुशंसा की जाती है कि उपयोगकर्ता सीधे बैडब्लॉक न चलाएं, बल्कि e2fsck और mke2fs कार्यक्रमों के -c विकल्प का उपयोग करें।

fsck

fsckअपने आप को खराब क्षेत्रों को खोजने में मदद नहीं करेगा, इससे भी बदतर, अगर बहुत सारे बुरे क्षेत्र हैं तो यह आपके डेटा को और भी अधिक नुकसान पहुंचा सकता है। इसका उपयोग केवल तब करें जब डिस्क स्वस्थ हो।


1
वास्तव में बैडब्लॉक का मैनुअल इसे सीधे उपयोग करने से हतोत्साहित करता है और उपयोगकर्ताओं को "-c" (केवल पढ़ने के लिए चेक) या "-cc" (पढ़ने लिखने की जाँच के लिए) विकल्प के साथ e2fsck के लिए निर्देशित करता है।
श्रीवास्तव

2
एक नोट के रूप में, 13.04 पर आप उबंटू मेनू से सिर्फ "डिस्क" चलाकर तालमेल बनाते हैं, हालांकि ... मुझे न तो एक आत्म-परीक्षण शुरू करने का विकल्प दिखाई देता है (संभवतः क्योंकि मेरे पास केवल एक ड्राइव है, और यह एक चल रहा है उबंटू ...)
रोजरपैक

2
@ mrówa मैनुअल केवल यह करने के लिए कहता है कि अगर "बैडब्लॉक का उत्पादन e2fsck या mke2fs प्रोग्राम को खिलाया जा रहा है"
जॉन

1
जानकारी रखें कि सभी डिस्क का उपयोग करने के लिए sudo fdisk -l
Kangarooo

2
इसे अब सूक्ति-डिस्क कहा जाता है
Endolith

74

इस पूरे उत्तर के दौरान, मैं मान लूंगा कि पथ पर स्टोरेज ड्राइव ब्लॉक डिवाइस के रूप में दिखाई देती है /dev/sdc। हमारे वर्तमान सेटअप में स्टोरेज ड्राइव का रास्ता खोजने के लिए, उपयोग करें:

  • यदि कोई GUI उपलब्ध है, या सूक्ति डिस्कGnome डिस्क स्थापित करें (भूतपूर्व सूक्ति डिस्क उपयोगिता, उर्फ palimpsest), या
  • के उत्पादन पर टर्मिनल देखो पर lsblkऔर ls -l /dev/disk/by-idऔर आकार, विभाजन, निर्माता और मॉडल नाम से सही डिवाइस को खोजने के लिए प्रयास करें।

बुनियादी जाँच

  • केवल पूरी तरह से अनुत्तरदायी मीडिया का पता लगाता है
  • लगभग तात्कालिक (जब तक माध्यम नीचे या टूट गया है)
  • सुरक्षित
  • रीड-ओनली मीडिया पर काम करता है (उदाहरण के लिए CD, DVD, BluRay)

कभी-कभी एक भंडारण माध्यम बस काम करने से मना कर देता है। यह अभी भी कर्नेल और डिस्क प्रबंधक में एक ब्लॉक डिवाइस के रूप में दिखाई देता है, लेकिन विभाजन तालिका को पकड़ने वाला इसका पहला क्षेत्र पठनीय नहीं है। इसे आसानी से सत्यापित किया जा सकता है:

sudo dd if=/dev/sdc of=/dev/null count=1

यदि यह आदेश "इनपुट / आउटपुट त्रुटि" के बारे में संदेश देता है, तो हमारी ड्राइव टूट गई है या अन्यथा अपेक्षित रूप से लिनक्स कर्नेल के साथ बातचीत करने में विफल रहता है। पूर्व मामले में, थोड़े से भाग्य के साथ, उचित रूप से सुसज्जित प्रयोगशाला के साथ एक डेटा रिकवरी विशेषज्ञ इसकी सामग्री को उबार सकता है। बाद के मामले में, एक अलग ऑपरेटिंग सिस्टम एक कोशिश के लायक है। (मैं USB ड्राइव पर आया हूं जो विशेष ड्राइवरों के बिना विंडोज पर काम करता है, लेकिन लिनक्स या ओएस एक्स पर नहीं।)

स्मार्ट आत्म परीक्षण

  • समायोज्य पूरी तरह से
  • धीमा या धीमा करने के लिए तात्कालिक (परीक्षण की पूर्णता पर निर्भर करता है)
  • सुरक्षित
  • निकट भविष्य में संभावित विफलता के बारे में चेतावनी देता है

जो डिवाइस इसका समर्थन करते हैं, उन्हें SMART के माध्यम से अपने स्वास्थ्य के बारे में बताया जा सकता है या अलग-अलग संपूर्णता के अखंडता परीक्षण करने का निर्देश दिया गया है। यह आमतौर पर सबसे अच्छा विकल्प है, लेकिन आमतौर पर केवल (गैर-प्राचीन) हार्ड डिस्क और ठोस राज्य ड्राइव पर उपलब्ध है। अधिकांश हटाने योग्य फ्लैश मीडिया इसका समर्थन नहीं करते हैं।

आगे के संसाधन और निर्देश:

पढ़ें-केवल जांच

  • केवल कुछ फ़्लैश मीडिया त्रुटियों का पता लगाता है
  • हार्ड डिस्क के लिए काफी विश्वसनीय है
  • धीमा
  • सुरक्षित
  • रीड-ओनली मीडिया पर काम करता है (उदाहरण के लिए CD, DVD, BluRay)

इसे लिखे बिना पूरे डिवाइस की रीड अखंडता का परीक्षण करने के लिए, हम badblocks(8)इस तरह का उपयोग कर सकते हैं :

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

इस ऑपरेशन में बहुत समय लग सकता है, खासकर अगर स्टोरेज ड्राइव वास्तव में क्षतिग्रस्त हो। यदि त्रुटि गणना शून्य से ऊपर उठती है, तो हम जानेंगे कि एक बुरा ब्लॉक है। हम किसी भी क्षण (यहां तक ​​कि एक शक्ति विफलता के दौरान भी जबरदस्ती) ऑपरेशन को सुरक्षित रूप से समाप्त कर सकते हैं, अगर हम खराब ब्लॉकों की सटीक राशि (और शायद स्थान) में रुचि नहीं रखते हैं। विकल्प के साथ त्रुटि पर स्वचालित रूप से गर्भपात करना संभव है -e 1

उन्नत उपयोग के लिए ध्यान दें: यदि हम इसके लिए आउटपुट का पुन: उपयोग करना चाहते हैं e2fsck, तो हमें -bनिहित फ़ाइल सिस्टम के ब्लॉक आकार ( ) को सेट करने की आवश्यकता है। हम -cथ्रूपुट में सुधार करने के लिए एक बार परीक्षण किए गए डेटा की मात्रा ( ब्लॉक में) को भी ट्वीक कर सकते हैं ; अधिकांश उपकरणों के लिए 16 MiB ठीक होना चाहिए।

गैर-विनाशकारी पढ़ने-लिखने की जांच

  • बहुत गहन
  • धीमी
  • काफी सुरक्षित (एक बिजली की विफलता या आंतरायिक कर्नेल आतंक को छोड़कर)

कभी-कभी - विशेष रूप से फ्लैश मीडिया के साथ - एक त्रुटि केवल तब होती है जब लिखने की कोशिश की जाती है। (यह मज़बूती से (फ्लैश) मीडिया की खोज नहीं करेगा , जो बड़े आकार का विज्ञापन करता है, वास्तव में उनके पास है; इसके बजाय फ़ाइट फ्लैश फ्रॉड का उपयोग करें।)

  • कभी भी माउंटेड फाइल सिस्टम वाली ड्राइव पर इसका इस्तेमाल न करें ! badblocksवैसे भी उन पर काम करने से इनकार करते हैं, जब तक कि आप इसे मजबूर न करें।

  • इस ऑपरेशन को बलपूर्वक बाधित न करें ! Ctrl+ C(SIGINT / SIGTERM) और सुशोभित समयपूर्व समाप्ति की प्रतीक्षा करना ठीक है, लेकिन killall -9 badblocks(SIGKILL) नहीं है। जबरदस्ती समाप्ति पर badblocksवर्तमान में परीक्षण की गई ब्लॉक रेंज की मूल सामग्री को पुनर्स्थापित नहीं किया जा सकता है और यह जंक डेटा के साथ अधिलेखित हो जाएगा और संभवतः फ़ाइल सिस्टम को दूषित कर देगा।

गैर-विनाशकारी रीड-राइट चेक का उपयोग -nकरने के लिए, उपरोक्त badblocksकमांड में विकल्प जोड़ें ।

विनाशकारी पढ़ने-लिखने की जाँच

  • बहुत गहन
  • और धीमा
  • ड्राइव पर सभी डेटा मिटाता है

जैसा कि ऊपर है, लेकिन लेखन परीक्षण करने के बाद पिछली ड्राइव सामग्री को पुनर्स्थापित किए बिना, इसलिए यह थोड़ा तेज़ है। चूँकि डेटा को वैसे भी मिटा दिया जाता है, इसलिए जबरदस्ती समाप्ति नकारात्मक परिणाम के बिना (अतिरिक्त) रहती है।

विनाशकारी रीड-राइट चेक का उपयोग -wकरने के लिए, उपरोक्त badblocksकमांड में विकल्प जोड़ें ।


43

fsck - लिनक्स फाइल सिस्टम की जांच और मरम्मत करें। इसका उपयोग करके आह्वान करें

fsck /dev/sda1

जहाँ / dev / sda1 वह ड्राइव है जिसे आप जांचना चाहते हैं। अधिक विवरण के लिए 'आदमी fsck' देखें।

'बैडब्लॉक' कमांड भी है, जो किसी डिवाइस की जांच करता है, आपने अनुमान लगाया है कि यह खराब है।

चेक करते समय ड्राइव को अनमाउंट करने की आवश्यकता होती है, इसलिए रूट विभाजन की जांच करने के लिए आपको विभाजन के रूट में एक फाइल 'फोर्सफेक' बनाने की जरूरत है और रिबूट करें। डिवाइस अगले बूट पर जाँच की जाएगी:

sudo touch /forcefsck
sudo reboot

वैकल्पिक रूप से, आप एक लाइव सीडी से बूट कर सकते हैं और वहां से चेक चला सकते हैं।


धन्यवाद, मशीन मॉनिटर के बिना चल रही है, क्या रीबूट के बाद चेक के आउटपुट तक पहुंचने का एक तरीका है?
गिलियूम कोटे

मैंने फ़ाइल बनाई और रिबूट किया, लेकिन यह वास्तव में त्वरित था और boot.log में कुछ भी नया नहीं है।
गुइल्यूम कोटे

fsck बस एक बहुत ही त्वरित जांच करते हैं, मैंने खराब ब्लॉक के लिए विकल्प -c की कोशिश की।
गिलौम कोटे

fsck -c ने सिर्फ इतना कहा: / dev / sda9: खराब ब्लॉक इनोडेट को अपडेट करना। मुझे इस बात की कोई जानकारी नहीं है कि वे कितने खराब नोड और किस अनुपात में फाइल सिस्टम का प्रतिनिधित्व करते हैं।
गिलोय कोटे

sudo dumpe2fs -b /dev/sda9। लेकिन मुझे लगता है कि यह बेहतर है अगर डिस्क दोषपूर्ण क्षेत्रों का ख्याल रखती है, न कि फाइल सिस्टम (SMART, बैडब्लॉक आदि), अपनी पोस्ट देखें)।
व्यवस्थित करें

20

badblocks

आप कमांड चलाने वाले बैडब्लॉक की जांच कर सकते हैं

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultएक गैर-विनाशकारी पढ़ने-लिखने के परीक्षण के लिए। यह bad-blocks-resultक्षतिग्रस्त क्षेत्रों के साथ नामक एक फ़ाइल उत्पन्न करेगा ।
    • -नॉन -डिस्ट्रक्टिव रीड-राइट मोड का उपयोग करें। डिफ़ॉल्ट रूप से केवल एक गैर-विनाशकारी रीड-ओनली परीक्षण किया जाता है।

    • -s डिस्क पर वर्तमान बैडब्लॉक पास के लगभग प्रतिशत पूर्णता को लिखकर स्कैन की प्रगति दिखाएं।

    • -V वर्बोज मोड।

  2. फिर, आप sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]उस फ़ाइल सिस्टम को बताने के लिए चला सकते हैं जहां खराब क्षेत्र हैं और यदि संभव हो तो डेटा को उनसे दूर ले जाएं।

आप इसके बारे में और अधिक जानकारी यहाँ पा सकते हैं ।


1
बाद में बैडब्लॉक जारी रखने के लिए या यदि आप खराब सेक्टर को टेक्स्ट फाइल (मेरे जैसे) को एक्सपोर्ट करना भूल गए हैं, तो यह उत्तर आपकी मदद करेगा: superuser.com/a/693000/218025
chelder

क्या मैं अपने विंडो विभाजन की जांच करने के लिए बैडब्लॉक का उपयोग कर सकता हूं? या यह किसी भी तरह से इसे नुकसान पहुंचा सकता है?
प्राइवेट

1
@ सही यदि आपके पास कोई नया प्रश्न है, तो कृपया शीर्ष पर "प्रश्न पूछें" लिंक का उपयोग करें।
जॉन

fsckकमांड के साथ विफल रहता है btrfsफाइल सिस्टम।
लुइस डी सूसा

20

smartctl

IMO smartctl एक बेहतर टूल है। आपको पहले इसे स्थापित करने की संभावना है

sudo apt-get install smartmontools 

फिर

sudo smartctl -a /dev/sda | less

ड्राइव स्वास्थ्य डेटा, विशेषताओं और उपलब्ध परीक्षण परिणामों को प्रिंट करने के लिए। कम छोड़ने के लिए, टाइप करें q। वैकल्पिक रूप से

sudo smartctl -H /dev/sda

सिर्फ स्वास्थ्य डेटा मुद्रित करने के लिए।

एक नई छोटी (कुछ मिनट) या लंबी (कई घंटों तक) पृष्ठभूमि में आत्म परीक्षण शुरू करने के लिए:

sudo smartctl -t [short|long]

यदि आप चाहें तो GSsmartControl ( होम पेज ) और गनोम डिस्क ग्राफिकल फ्रंट एंड हैं।

यह सभी देखें


5
महान समाधान, अगर डिवाइस स्मार्ट का समर्थन करता है। कई (सस्ते) हटाने योग्य फ्लैश ड्राइव और बहुत पुरानी हार्ड ड्राइव नहीं हैं।
डेविड फ़ॉस्टर

रिपोर्ट किए जाने पर मुझे शुरू में स्टम्प्ड किया गया था smartctl: "अज्ञात यूएसबी ब्रिज", "कृपया -d विकल्प के साथ डिवाइस प्रकार निर्दिष्ट करें"। मुझे वह डेटा मिला जिसकी मुझे आवश्यकता थी: smartmontools.org/wiki/Supported_USB-Devices
नोबार

10

F3 (फाइट फ्लैश फ्रॉड) एक और विकल्प है जो अतिरिक्त रूप से नकली फ्लैश ड्राइव का पता लगाना चाहिए (फ्लैश ड्राइव जिनकी वास्तविक क्षमता विज्ञापन क्षमता का एक अंश है):

  1. F3 स्थापित करें

    sudo apt install f3
    
  2. अपनी ड्राइव डालें

  3. टेस्ट डेटा को ड्राइव पर खाली जगह पर लिखें (जाँच करें कि आपकी ड्राइव कहाँ है lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. परीक्षण डेटा पढ़ें

    f3read /media/$USER/D871-DD7C/
    

संदर्भ:

बैडब्लॉक अच्छी तरह से काम करता है लेकिन यह नकली फ्लैश ड्राइव का पता लगाने के लिए नहीं बनाया गया है और हो सकता है कि उनके लिए कोई त्रुटि रिपोर्ट न करें


badblocksके साथ -wया fsckनिशान क्षेत्रों के साथ के रूप में बुरा / क्षतिग्रस्त तो वे उपयोग नहीं कर रहे हैं। f3 जैसे कुछ वापस कर सकता है Corrupted: 16.01 MB (32784 sectors), लेकिन क्या वे बुरे क्षेत्रों के रूप में चिह्नित करते हैं? या फिर हमें उसके लिए बैडब्लॉक की आवश्यकता है? मैं कोशिश कर रहा हूँ के साथdumpe2fs -b और ऐसा लगता आईडी निशान नहीं है।
पाब्लो ए

4

प्रगति संकेतक दिखाते हुए आप संपूर्ण डिस्क को टेस्ट-रीड कर सकते हैं:

time sudo pv /dev/sdc >/dev/null

कुछ डिस्क समस्याएं I / O त्रुटियों के रूप में प्रकट होंगी। यह ddप्रगति सूचक के कारण थोड़ा सा अच्छा है और क्योंकि कमांड-लाइन इंटरफ़ेस थोड़ा अधिक मानक और थोड़ा कम टाइपो-प्रवण है । ध्यान दें कि pvमूल रूप से और वर्धित संस्करण है cat। यह डिफ़ॉल्ट रूप से स्थापित नहीं किया जा सकता है, लेकिन इसके साथ स्थापित किया जा सकता है sudo apt-get install pv

एक समान दृष्टिकोण डिस्क को कई उपलब्ध उपकरणों में से एक के साथ पढ़ना है जो विशेष रूप से डिस्क I / O त्रुटियों से अवगत हैं - और "डेटा को बचाने के लिए कड़ी मेहनत करने" की सुविधा है। ddrescueपैकेज मैनेजर में खोजें ।


यह उन मुद्दों का पता नहीं लगाएगा जो केवल लिखने की पहुंच के दौरान दिखाई देते हैं और यह भंडारण माध्यम के प्रभावित क्षेत्र की रिपोर्ट नहीं करेगा कि किसी को समस्या को ठीक करने या उसके आसपास काम करने की आवश्यकता होगी। dd count=1जब तक कि भंडारण माध्यम पूरी तरह से टूट न जाए (या असमर्थित) भी बहुत तेज है।
डेविड फ़ॉस्टर

इसे भी देखें:ddrescueview
nobar

चूंकि GNU Coreutils 8.24+ के ddपास प्रगति सूचक है status=progress
पाब्लो ए

1

यदि आपके पास एक विभाजन है जिसे आप नहीं हटा सकते हैं तो डेटा इन चरणों का पालन करता है

  1. निर्धारित करें कि आप किस विभाजन का उपयोग करके खराब क्षेत्र की जांच करना चाहते हैं

$fdisk -l commnd

मान लें कि चेक करने के लिए विभाजन को / dev / sdPTC (जांच करने के लिए विभाजन) कहा जाता है और आपके पास / स्कैन / resultPath / फ़ोल्डर पर माउंट किए गए परिणामों को संग्रहीत करने के लिए एक और विभाजन है

2. जब आप इस कमांड को चला सकते हैं

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

जो निर्धारित करेगा कि दिए गए डिवाइस के खराब ब्लॉक क्या हैं और उन्हें badsectors.txt नामक फाइल पर स्टोर करें

  1. अब आप fsckUbuntu का उपयोग करके बता सकते हैं कि खराब सेक्टर्स में उल्लिखित बुरे सेक्टरों का उपयोग न करें।

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

इस तरह हार्ड डिस्क का जीवन तब तक थोड़ा बढ़ जाता है जब तक आपको प्रतिस्थापन के लिए एक नया नहीं मिलता।


यदि आपके पास एक पूर्ण विभाजन है जिसे आप खराब भौतिक क्षेत्रों के लिए जाँचना चाहते हैं और आप उस विभाजन पर सभी डेटा को खो सकते हैं या क्या यह इन चरणों का पालन करना है?

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. जांचें और जांचें कि उस विभाजन पर कोई महत्वपूर्ण डेटा नहीं है

  4. का उपयोग करते हुए gnome-disks"-" चिन्ह / हटा का उपयोग कर हाथ से विभाजन निकालें

  5. gnome-disksएक नए विभाजन का उपयोग करना और "धीमा" विकल्प चुनें जो त्रुटियों के लिए दिए गए स्थान की जांच करेगा

यहाँ छवि विवरण दर्ज करें


क्या यह बात है कि यह कौन सा उबंटू संस्करण है? क्या bionic beaverडिस्क जांच अलग से संभालती है?
गेब्रियल फेयर

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