LINUX.ORG.RU

Восстановление диска ddrescue


0

1

Принесли тут родичи один больной винт, с которого нужно вытянуть максимум данных.

По смарту там куча reallocated и pending секторов, но это не главная проблема. Главная - то что он через некоторое время перестает работать вообще, не читает ни живые ни мертвые сектора:

[352521.542480] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[352521.542482] sd 1:0:0:0: [sdb] CDB:
[352521.542482] Read(10): 28 00 0c e1 54 e3 00 00 02 00
[352521.542493] sd 1:0:0:0: [sdb] Unhandled error code
[352521.542494] sd 1:0:0:0: [sdb]
[352521.542495] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[352521.542497] sd 1:0:0:0: [sdb] CDB:
[352521.542497] Read(10): 28 00 0c e1 54 e5 00 00 02 00
[352521.542517] sd 1:0:0:0: [sdb] Unhandled error code
[352521.542519] sd 1:0:0:0: [sdb]

Я его по питанию на живую дергаю, диск переопределяется и еще какое-то время работает, ddrescue успевает вытянуть часть данных. Таким макаром из 1Тб я вытащил почти 800Гб.

Но на последних 200+ гигабайтах он у меня перестал читаться толком даже после power-cycle. Диск переопределяется ок:

[352921.998992] ata2: exception Emask 0x50 SAct 0x0 SErr 0x4090800 action 0xe frozen
[352921.998996] ata2: irq_stat 0x00400040, connection status changed
[352921.999001] ata2: SError: { HostInt PHYRdyChg 10B8B DevExch }
[352921.999012] ata2: hard resetting link
[352922.722199] ata2: SATA link down (SStatus 0 SControl 300)
[352922.722215] ata2: EH complete
[352922.722227] ata2.00: detaching (SCSI 1:0:0:0)
[352922.723020] sd 1:0:0:0: [sdb] Synchronizing SCSI cache
[352922.723093] sd 1:0:0:0: [sdb]
[352922.723098] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[352922.723103] sd 1:0:0:0: [sdb] Stopping disk
[352922.723138] sd 1:0:0:0: [sdb] START_STOP FAILED
[352922.723143] sd 1:0:0:0: [sdb]
[352922.723146] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[353094.478380] ata2: exception Emask 0x10 SAct 0x0 SErr 0x4050002 action 0xe frozen
[353094.478385] ata2: irq_stat 0x00400040, connection status changed
[353094.478389] ata2: SError: { RecovComm PHYRdyChg CommWake DevExch }
[353094.478399] ata2: hard resetting link
[353100.253635] ata2: link is slow to respond, please be patient (ready=0)
[353103.825840] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[353103.878839] ata2.00: ATA-8: ST31000333AS, CC1H, max UDMA/133
[353103.878844] ata2.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[353103.920834] ata2.00: configured for UDMA/133
[353103.920844] ata2: EH complete
[353103.920959] scsi 1:0:0:0: Direct-Access     ATA      ST31000333AS     CC1H PQ: 0 ANSI: 5
[353103.921223] sd 1:0:0:0: Attached scsi generic sg1 type 0
[353103.921229] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[353103.921334] sd 1:0:0:0: [sdb] Write Protect is off
[353103.921340] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[353103.921404] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[353103.942840]  sdb: sdb1
[353103.943422] sd 1:0:0:0: [sdb] Attached SCSI disk
Но после, при попытке ddrescue продолжить считывать сектора опать падает с теми же ошибками в логах и лежит в коматозе до того как его не вырубишь. Что можно сделать, товарищи? Винт Seagate ST31000333AS

★★★★★

Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от greenman

в холодильнике

А это его не убъёт совсем? Лучше уж просто на столе пусть полежит.

i-rinat ★★★★★
()

С бубном попрыгать :-) Если бы были гарантированные рецепты вытаскивания всей информации с умирающего винта, бекапы были бы не нужны. Охдаждение в холодильнике, ИМХО, не поможет, так как здесь не дефекты микросхем.

Попробуйте почитать данные в обратном порядке (с конца диска), попробуйте сделать чтение нескольких произвольных секторов из этих проблемных 200 Гбайт, если хоть один сектор прочитался, мучайтесь дальше, иначе считайте, что эти 200 Гбайт не читаются и всё.

mky ★★★★★
()
Ответ на: комментарий от mky

так как здесь не дефекты микросхем.

Не факт. Да, контроллер, вроде, работает нормально. Как работают микросхемы считывания и прочего — всё, что «с той стороны» контроллера, понять, имхо, невозможно (без спец софта/железа).

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от mky

дефекты механики вполне себе от температуры могут усиливаться. Только в холодильник пихать не надо - пусть охладится естественно, на столе.

Дело в том, что он может начинать греться выше обычного (у меня это произошло из-за износа подшипника на Maxtor 60Gb) - винт не может произвести термокалибровку (на очень старых винтах ее нет) - летят ошибки при чтении. Часа два полежит - полчаса работает нормально - потом падает. Остыл - опять 30 минут работает. Если чтение будет линейным - время работы дольше (нагрев медленнее).

anonymous
()
Ответ на: комментарий от anonymous

Думаю, что ТС этот винт и так на столе, раз он питание постоянно дёргает. И, раз ему удалось прочитать 800 Гбайт, винт более-менее охлаждается. Я встречал что-то подобное и считаю, что у данного винта в конце сплошной bad, что даже сервометки не читаются, как только головка уходит в конец диска, он впадает в кому, так как вобще ничего прочитать не может. А то, что есть проблемы с чтением начальной области диска, связано с realloc-нутыми секторами, которые физически находятся в конце диска.

Если бы у ТС была проблема с перегревом, она бы не лечилась, как он пишет, простым отключением питания, требовались бы заметные паузы на остывание диска.

mky ★★★★★
()
Ответ на: комментарий от mky

Большое спасибо всем за советы!

Удалось продолжить его др.чить и теперь ddrescue обещает что осталось восстановить всего 21Гбайт :) Так что с сервометками, судя по всему, проблем нет.

На всякий случай поставил на винт дуть мощным кулером, но на частоту глюков оно, как и предполагали, судя по всему не влияет.

Сегодня уже думаю добью последние гигабайты, но фигачит в час по чайной ложке, чем ближе к финалу тем чаще дёргать приходится. Надеюсь механике такое насилие вытянет :)

Глючит он, похоже, при попытке считать какие-то битые сектора, но я не уверен - dmesg сразу флудит аццким количеством ошибок и начало я прочитать не успеваю.

Да, на сигейте оказалось обновление прошивки для этой модели винта, но для моего серийника она не подходит, так что остается только долбать его.

blind_oracle ★★★★★
() автор топика
Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от blind_oracle

В качестве эпилога: восстановилось все, кроме ~600Мбайт, после этого я уже его дергал-передергал, нифига. Но, в общем и целом, на фоне почти 1Тб данных это фигня, ФС (NTFS) нормально определилась, чекдиск оффтопиковый нашел несколько несущественных ошибок, какие там файлы остались нечитаемыми я хз, отдал диск хозяевам, пущай разбираются...

blind_oracle ★★★★★
() автор топика
Последнее исправление: blind_oracle (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.