खराब सेक्टर से "क्षतिग्रस्त फ़ाइल" - क्या यह लिनक्स / एक्सट 3 के लिए था, क्या मैं इसे विंडोज / एनटीएफएस के लिए कर सकता हूं?


17

जब कोई डिस्क पर एक SMART चेक एक खराब सेक्टर की रिपोर्ट करता है, तो उस फाइल को पहचानने में सक्षम होना जरूरी है जो खराब सेक्टर है - और इसे बैकअप से पुनर्स्थापित करें। नीचे, मैं दिखाता हूं कि मैंने अपने लिनक्स / ext3 VMWARE सर्वर के लिए यह कैसे किया - लेकिन क्या किसी को पता है कि यह विंडोज / NTFS के लिए किया जा सकता है?

यहाँ मैंने इसे लिनक्स / एक्सट 3 के लिए कैसे किया: मैंने पहली बार ड्राइव को एक हार्डवेयर सतह स्कैन (ओएस स्तर के नीचे, ऑन-ड्राइव स्मार्ट सर्किट के साथ) करने के लिए कहा:

vserver:~# smartctl -t long /dev/sdc

मैंने परिणामों को देखा:

vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
...
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     27679         591363172

इसलिए, एक सेक्टर पहले से ही खराब था, 9 को "स्टेजिंग" सेक्टर स्पेस से बदलने के लिए चिह्नित किया गया था। इससे भी महत्वपूर्ण बात, पहला तार्किक ब्लॉक पता (एलबीए) जो अपठनीय है, 591363172 था।

मैंने पाया कि विभाजन (और इसके अंदर की ऑफसेट) कि यह संख्या "अनुवादित" है:

vserver:~# fdisk -lu /dev/sdc
Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           32   976773119   488386544   83  Linux

विभाजन 32 सेक्टर में शुरू हुआ। तो, बुरा क्षेत्र था ...

vserver:~# bc -l
591363172-32+1
591363141

... विभाजन की शुरुआत से 591363141 क्षेत्रों की भरपाई।

अब मुझे पता चला कि कौन सी फाइल "hosed" थी:

vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size:               4096

इस EXT3 फाइलसिस्टम का ब्लॉक आकार 4096 बाइट्स था, इसलिए खराब सेक्टर ने फाइलसिस्टम में इस ब्लॉक को नष्ट कर दिया:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

और ब्लॉक नंबर (73920392) इस फाइल में संगत है:

vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sdc1
testb 73920392
debugfs:  testb 73920392
Block 73920392 marked in use
debugfs:  icheck 73920392
Block           Inode number
73920392        18472967
debugfs:  ncheck 18472967
Inode           Pathname
18472967        /path/to/filewithbadsector

और मैंने अपने बैकअप से उस फ़ाइल को पुनर्स्थापित किया।

क्या विंडोज / NTFS के लिए एक समान प्रक्रिया है जिसका मैं पालन कर सकता हूं?


FYI करें: 9 की वर्तमान लंबित गणना का मतलब है कि 9 बुरे क्षेत्र हैं, न कि केवल एक। विस्तारित आत्म परीक्षण बस पहले एक को रोकता है जो इसे पाता है। इससे पहले कि आप बैकअप से पुनर्स्थापित करें, आप भी इसके साथ शून्य लिखकर खराब क्षेत्र से निपटना चाहते हैं dd। यह ड्राइव को मरम्मत के लिए बाध्य करेगा या उसे पुनः लोड करेगा।
Psusi

हां, आप सही हैं। पुनर्स्थापना के बाद, मैंने एक और स्मार्ट चेक किया और पाया कि सब ठीक था - इसलिए फ़ाइल का लेखन जाहिरा तौर पर 9 + 1 खराब क्षेत्रों (और मंचन क्षेत्र प्रदान किए गए विकल्प) पर लिखा था। लेकिन विंडोज के बारे में क्या? :-)
ttsiodras

मुझे लगता है कि एक विभाजन में क्षेत्र की ऑफसेट के लिए आपकी गणना गलत है। सेक्टर संख्या (अन्य कि शारीरिक, उर्फ ​​सीएचएस) सभी शून्य आधारित हैं, क्योंकि सेक्टर 32 विभाजन सेक्टर 32-32 == 0 है, न कि 1.

शॉकिंगली किसी ने अभी तक एक साल पुराने सवाल पर यह नहीं कहा है: जब आप ड्राइव पर खराब क्षेत्रों को देखना शुरू करते हैं तो इसका मतलब है कि आपको ड्राइव के कई आंतरिक आंतरिक खराब-ब्लॉक रीमैपिंग की भरपाई नहीं हो सकती है। बैकअप से एक मरणासन्न ड्राइव पर पुनर्स्थापित करने के बजाय आपको ड्राइव को बदलना चाहिए और नई ड्राइव पर पुनर्स्थापित करना चाहिए।
voretaq7

जवाबों:


7

मुझे पता है कि आपके पास एक NTFS FS है, और उस FS पर विंडोज़ चलाएं। मुझे नहीं पता कि आप उस ड्राइवर पर काम करने के लिए लाइव लिनक्स को "बूट" कर सकते हैं या नहीं।

यदि आप CD या USB से लिनक्स बूट कर सकते हैं, तो आप ntfsprogs का उपयोग कर सकते हैं। की ओर देखें -

ntfscluster 

ntfsinfo 

मेरा मानना ​​है कि ntfscluster आपको बताता है कि किसी विशेष क्लस्टर स्टोर को क्या फाइल किया जाता है। मुझे उम्मीद है कि यह आपको सही दिशा में ले जाएगा।


मुझे यह फ़ोरम पोस्ट मिला, जिसमें विभिन्न फाइल सिस्टम पर ऐसा करने के लिए एक उपयोगिता आवरण है, और ntfscluster का भी उपयोग करता है। ubuntuforums.org/showthread.php?t=1943721
सुस्ती

हाँ, ddrutility फ़ीचर: खराब क्षेत्रों से संबंधित फ़ाइलों को ढूँढता है, किसी सेक्टर सूची वाली फ़ाइल का भी उपयोग कर सकता है, शायद हम "badblocks -nvs" + "ddrutility" का उपयोग कर सकते हैं
diyism
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.