3TB HDD अराजकता के अधीन है ~ अपने खराब सेक्टरों की मरम्मत करके एक मृत 3TB HDD को पुनर्जीवित करना ~
नमस्ते, मैं अक्षम हूँ।
पिछले लेख में मैं निराशा में डूबा हुआ था, लेकिन मैं आसानी से हार मानने वाला आदमी नहीं हूँ।
गर्मियाँ खत्म नहीं होतीं। जब तक होमवर्क खत्म नहीं हो जाता______
मामले का विवरण
कल, अचानक SSH कनेक्शन रुक गया और ऐसा लगा जैसे GNU/Linux अटक गया हो, पुनः आरंभ करने के बाद, मैंने फिलहाल syslog की जाँच की।
Aug 27 04:03:55 localhost kernel: [2768521.366336] EXT4-fs (sdc1): error count since last fsck: 52
Aug 27 21:19:27 haturatu kernel: [ 28.915465] EXT4-fs (sdc1): warning: mounting fs with errors, running e2fsck is recommended
Aug 27 21:24:30 haturatu kernel: [ 332.803482] EXT4-fs (sdc1): error count since last fsck: 53
Aug 27 22:28:45 haturatu kernel: [ 5.694598] EXT4-fs (sdc1): warning: mounting fs with errors, running e2fsck is recommended
Aug 27 22:33:55 haturatu kernel: [ 316.412146] EXT4-fs (sdc1): error count since last fsck: 53
Aug 28 08:19:17 haturatu kernel: [ 5.710007] EXT4-fs (sdc1): warning: mounting fs with errors, running e2fsck is recommended
Aug 28 08:24:39 haturatu kernel: [ 316.427213] EXT4-fs (sdc1): error count since last fsck: 53
क्या?
अरे
हम्म?
HDD, वापस नहीं लौटा
fsck का प्रयास करना
फिलहाल, USB-HDD से कनेक्ट करें।
$ sudo fsck -f -y /dev/sdb
lsblk से डिस्क की जाँच करने के बाद, फिलहाल इसे चलाएँ।
727810) +(77856769--77859749) +(77987841--77990269) +(78118913--78121629) +(78249985--78252434) +(78381057--78383008) +(78512129--78515588) +(78643201--78644782) +(78774273--78776000) +(78905345--78907598) +(79036417--79038955) +(79167489--79169769) +(79298561--79300360) +(79429633--79431425) +(79560705--79562857) +(79691777--79695179) +(79822849--79857556) +(79953921--79960927) +(80084993--80113787) +140247041
Fix? yes
Padding at end of inode bitmap is not set. Fix? yes
Error reading block 32768 (इनपुट/आउटपुट त्रुटि है). Ignore error? yes
Force rewrite? yes
Error writing block 32768 (इनपुट/आउटपुट त्रुटि है). Ignore error? yes
Error reading block 98304 (इनपुट/आउटपुट त्रुटि है). Ignore error? yes
सही कहा नाーー!!!!!
हाँ, यह वही निराशाजनक I/O त्रुटि है जिसे मैंने पहले भी देखा है।
dmesg से देखते हैं
मैं कुछ हिस्सों को छोड़ दूँगा, लेकिन मैं grep से संबंधित ड्राइव प्रविष्टियों की जाँच करूँगा।
$ sudo dmesg | grep ' I/O error,' | grep "sdb"
[227123.296980] I/O error, dev sdb, sector 62916608 op 0x0:(READ) flags 0x83700 phys_seg 1 prio class 0
[227175.622027] I/O error, dev sdb, sector 78880 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[227175.622087] I/O error, dev sdb, sector 62916624 op 0x0:(READ) flags 0x83700 phys_seg 14 prio class 0
[227459.286465] I/O error, dev sdb, sector 373295104 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0
[227490.240900] I/O error, dev sdb, sector 377489408 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
आह आह आह
मेरा दिल टूट रहा है, पैट्राश।
गूगल करना
मैं पिछले तकनीशियनों की बुद्धिमत्ता पर निर्भर रहूँगा।
(Linux HDD में खराब सेक्टर उत्पन्न होने के बाद मैंने उसे सुधारने की कोशिश की)[https://web.archive.org/web/20240828125146/https://neocat.hatenablog.com/entry/2019/10/21/061645]
मैंने इसे सरसरी तौर पर पढ़ा और तंत्र को समझ गया।
ऐसे समय में, यदि आप इस सेक्टर पर लिखते हैं, तो HDD का फर्मवेयर इसे एक वैकल्पिक सेक्टर से बदल देगा।
ऐसा लगता है। फिलहाल, घबराते हुए भी, मैं dmesg आउटपुट में दिखाई देने वाले सेक्टरों को लगातार दर्ज करता रहूँगा।
$ cat secter.sh
#!/bin/bash
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((62916608 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((62916624 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((373295104 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((406849536 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((411043840 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((415238144 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((419432448 / 8)) count=1
sudo dd if=/dev/zero of=/dev/sdc bs=4k seek=$((423626752 / 8)) count=1
मैं इस हिस्से को भी छोड़ रहा हूँ, लेकिन कृपया समझें कि ड्राइव का नाम sdb से sdc से sdd में बदल गया है क्योंकि मैं fsck का प्रयास कर रहा था और I/O त्रुटियों के कारण इसे बार-बार अनप्lug/प्लग कर रहा था।
फिलहाल, मैंने dmesg में दिखाई देने वाले सेक्टरों के लिए स्क्रिप्टेड कमांड्स को एक साथ चलाया।
मुझे यकीन है कि इसे करने का एक छोटा तरीका है, लेकिन ऐसे समय में मैं दक्षता के बारे में नहीं सोच सकता। भले ही यह लड़ने का एक गंदा तरीका हो, अगर इसका मतलब है कि मैं गलती से ड्राइव के सभी डेटा को मिटा सकता हूँ, तो मैं कीचड़ वाला पानी पीना पसंद करूँगा।
और फिर, fsck की ओर...
एक ही सेक्टर पर कई बार इसे चलाते हुए
Bad sectors playing hide and seek on my hard drive
यहाँ कहा गया था कि smartctl भी खराब सेक्टरों की जाँच करेगा, इसलिए मैंने शुरुआत में इसे आज़माया, लेकिन यह काम नहीं किया।
हालांकि, उपरोक्त गंदी लड़ाई को कुछ बार करने के बाद, यह काम करने लगा, इसलिए मैंने sudo smartctl -a /dev/sda, sudo smartctl -t short /dev/sda चलाया और यह सफल रहा, और फिर गंदी प्रक्रिया को दोहराया...
$ sudo fsck -f -y /dev/sdd1
fsck from util-linux 2.40.2
e2fsck 1.47.1 (20-May-2024)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: +(7864320--7872543) +(7929856--7946227) +(7946240--7962599) +(46661632--46669855) +(50855936--50864159) +(51380224--51388447) +(51388796--51404769) +(51404800--51412989) +(51904512--51928992) +(51929026--51929058) +(51929088--51937274) +(52428800--52453339) +(52453376--52461542) +(52953088--52962248) +(52964143--52977649) +(52977664--52985847)
Fix? yes
उआआआआआआआआआआआआआआआआआआआआआह!!!!!
पुनरुत्थान!!!!

मैंने अभी तक पूरी तरह से पुष्टि नहीं की है कि कौन सी फाइलें दूषित हैं, लेकिन 1TB डेटा का अधिकांश हिस्सा वापस आ गया है।
और इस प्रकार, यह वह दिन था जब मैंने गहराई से महसूस किया कि हमारे पूर्ववर्तियों का ज्ञान कितना महान है।
यह वास्तव में एक ऐसा दिन था जिसकी मैंने कभी उम्मीद नहीं की थी, सुबह मेरे HDD के खराब होने का पता चला और उसी दिन उसे ठीक कर लिया।
तो फिर।
फिर मिलेंगे।