UncorrectableError

Sziasztok!

Van egy durván 3 éves 160GB-os vinyóm, amelyiken lett egy rossz szektor: ha ráolvasok, akkor azt a bizonyos "UncorrectableError"-t kapom.
Más vinyókon is volt már ilyenre példa, de akkor simán ráírtam a rossz szektorra 1 szektornyi 0-t, és minden megjavult (gondolom ilynekor a vinyó a saját tartalék területéről bemappol egy jó szektort a rossz helyére). Viszont most ez a trükk nem megy. Írni sem tudom a rossz szektort, olvasni sem. Ez vajon azt jelenti, hogy annyi már a rossz szektor, hogy nincs több tartalék? Pedig ezen a vinyón ilyen ráírásos trükközést még soha nem csináltam.
A `smartctl -a` kimenetéből ki lehet hámozni, hogy mi történik?
Köszi a tippeket.

Hozzászólások

Nézd meg, a smartctl kimenetében, hogy hány reallokált szektor van már. Ha több száz, akkor lehet, hogy kifogyott.

Van még egy "pending" sor is, az is érdekes.

Hát abból semmit nem látok:


196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x000a   100   100   051    Old_age   Always       -       0
201 Soft_Read_Error_Rate    0x000a   100   100   051    Old_age   Always       -       0

Illetve azt látom, hogy minden 0, kivéve a Reallocated_Event_Count, ami 1. Szerintem ez nem mutat semmilyen hibát.

Direkt feljegyeztem magamnak régről egy ilyen jellegű hiba megoldását, hátha újrázik, remélem érthető. Számodra a végén lévő hdparm rész lehet izgalmas, hacsak nem így írtad eddig is a szektornyi 0-t, mert akkor ez sem fog segíteni. A saját HDD-m értékei vannak felsorolva! :)

--
smartctl offline test:
LBA_of_first_error: 88318068

dd if=/dev/sda of=/dev/null: 88318064-88318071 sectors are bad
BadBlockLBA-StartOfPartitionThatHoldsBadBlock=48798168
BadBlockLBA*(512/BlockSizeOfFS)=badguy on /dev/sda3 is around block 6099771 # ide kéne egy bad file-t csinálni, mert dd_writeover elhasal...(-google segített a meghatározásban)

debugfs: icheck 6099771
-> debugfs: ncheck 1799697
Inode Pathname
1799697 ~/.VirtualBox/VDI/Debian_LVM_crypto.vdi - nem nagy kár ezért a teszt cuccért, tovább

dd if=/dev/zero of=BadBlockPlace
#for i in $(seq 1 175); do dd if=/dev/zero of=./$i bs=50M count=1; done
debugfs: icheck 6099771
-> debugfs: block not found, na akkor dd if=testfiles of=/dev/null - melyik az I/O error-os
nincs I/O error, tehát nem enged a bad részre írni...

dd if=urandom of=largefile -- teleírtam a partíciót, elmúlt a hiba, mert írásnál reallokál (short test-nél legalábbis)

később:
hdparm --write-sector 88318064-88318071 # ez raw 0-t ír, nem érdekli semmi - hátha jó lesz
smartctl -t long - COMPLETED WITHOUT ERROR!

fsck /dev/sda3 - jó!
--