O HDD de 3TB é um escravo do caos ~ Reparando e ressuscitando setores defeituosos de um HDD de 3TB morto ~

9 min

language: ja bn en es hi pt zh-cn zh-tw

Olá, sou um inútil.
Eu estava imerso em desespero no artigo anterior, mas não sou o tipo de homem que desiste facilmente.
O verão não acaba. Até que a lição de casa termine______

O que aconteceu

Ontem, de repente, a conexão SSH parou e o GNU/Linux parecia ter travado. Após reiniciar, verifiquei o 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  

O quê?
Ah...
Hmm?

O HDD não voltou no Obon

Tentando fsck

Por enquanto, conectei via USB-HDD.

$ sudo fsck -f -y /dev/sdb  

Após verificar o disco com lsblk, executei-o por enquanto.

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 (Erro de entrada/saída).  Ignore error? yes  
  
Force rewrite? yes  
  
Error writing block 32768 (Erro de entrada/saída).  Ignore error? yes  
  
Error reading block 98304 (Erro de entrada/saída).  Ignore error? yes  

Certo!!!!!
Sim, é o erro de I/O desesperador que já vi no passado.

Verificando com dmesg

Vou omitir um pouco, mas verifico os itens da unidade relevante com 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  

Ahhh
Meu coração está prestes a quebrar, Patrasche.

Pesquisando no Google

Vou me apoiar na sabedoria dos engenheiros do passado.

(Setores defeituosos ocorreram no HDD do Linux, então tentei repará-los)[https://web.archive.org/web/20240828125146/https://neocat.hatenablog.com/entry/2019/10/21/061645]

Li e entendi o mecanismo de alguma forma.

Nesses casos, se você escrever neste setor, o firmware do HDD deve substituí-lo por um setor alternativo.

Parece que sim. Por enquanto, mesmo com pressa, continuo inserindo os setores que apareceram na saída do 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  

Também estou omitindo isso, mas o sdb→sdc→sdd está mudando um pouco porque estou tentando fsck e desconectando/reconectando devido a erros de I/O, então, por favor, entenda.
Por enquanto, executei de uma vez os comandos roteirizados para os setores que apareceram no dmesg.
Poderia ser feito de forma mais concisa, mas em momentos como este, não consigo pensar em eficiência. Mesmo que seja uma abordagem suja, se for para arriscar perder todos os dados da unidade, eu faria isso com a mesma determinação de beber água lamacenta.

E então, para o fsck...

De alguma forma, enquanto executava várias vezes no mesmo setor,
Bad sectors playing hide and seek on my hard drive
Dizia que o smartctl também verificaria setores defeituosos, então tentei no início, mas não funcionou.
No entanto, depois de algumas tentativas daquela 'luta suja' mencionada, começou a funcionar, então executei sudo smartctl -a /dev/sda, sudo smartctl -t short /dev/sda e deu certo, e repeti a 'luta suja' novamente...

$ 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)  

Corrigir? sim

Uaaaaahhhhhhhhhhhhhh!!!!!

Ressurreição!!!!

Imagem
Ainda não consegui verificar quais arquivos estão corrompidos, mas a maioria dos 1TB de dados voltou.

E assim, foi um dia em que senti profundamente a grandeza da sabedoria dos antepassados.
Foi um dia em que eu nunca imaginei que, ao descobrir pela manhã que o HDD havia morrido, conseguiria recuperá-lo no mesmo dia.
Então.
Até a próxima.

Related Posts