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
আহহহ
আমার হৃদয় ভেঙে যাচ্ছে, প্যাট্রাশ।
গুগল করা
আমি অতীতের প্রযুক্তিবিদদের জ্ঞানের উপর নির্ভর করব।
(লিনাক্স 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
এখানেও আমি কিছু অংশ বাদ দিচ্ছি, তবে দয়া করে মনে রাখবেন যে I/O ত্রুটির কারণে fsck চেষ্টা করতে এবং প্লাগ/আনপ্লাগ করতে গিয়ে ড্রাইভ লেটার sdb থেকে sdc এবং তারপর sdd-তে পরিবর্তিত হয়েছে।
যাইহোক, 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 মারা গেছে জেনেও সেদিনই এটি পুনরুদ্ধার করা।
তাহলে।
আবার আপনার সহযোগিতা কামনা করছি।