Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

Програмный ремонт жёстких дисков HDD

Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital

<<Назад  Вперед>> Страницы: 1 2 * 3 4 5 6 .. 75 76 77 78 79 80
Печать
 
iron98
Advanced Member


Откуда: Златоуст
Всего сообщений: 495
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 нояб. 2015
Очень даже дельная тема!!!
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Свежеизготовленный винт с записанными на серворайтере сервометками должен пройти калибровки сервосистемы и канала чтения-записи, процедуру низкоуровневого форматирования и тесты дефектоскопии, а также сформировать служебку. Всё это можно было бы делать под внешним управлением, но на практике оказалось проще и дешевле, чтобы этим занимался сам контроллер жёсткого диска в процедуре, называемой селфскан (Selfscan), или в терминологии Samsung - BURN. Подробнее о селфскане:
http://www.ihdd.ru/selfscan
А какое отношение это имеет к винторемонту? Дело в том, что для безопасного прохождения селфскана при сбоях питания его код хранится на блинах и после завершения скана может быть запущен пользователем повторно! В результате мы получим винт как новенький, будто только что с завода, без единого бэда и провалов в чтении! Ну, или не получим вовсе никакой - если тест будет провален. В общем, идеальное средство для ремонта. К сожалению, селфскан доступен не у всех моделей и производителей. Список жёстких дисков, где он есть:

  • Conner - все модели. Запуск и мониторинг прохождения производится в терминале.
  • Kalok - запуск перемычкой или подачей команды в терминал.
  • Seagate - все модели после 96 года (т.е. после покупки Conner) и до архитектуры F3. Запуск и мониторинг прохождения производится в терминале. Модели после 7200.7 включительно затирают при этом ATA оверлей, его надо предварительно сохранить, а позже - залить обратно. Подробнее будет ниже, в описании на Seagate.
  • Samsung - все модели, кроме самых новых. Для запуска необходима заливка специальной бурновой прошивки в ПЗУ и правка скрипта, мониторинг - в терминале и по морганию светодиода. Подробности - ниже.
  • Maxtor - практически все модели. Описание процедуры есть далее, в главе про Maxtor.
    ConnerTech (ExelStor) - для этих редких винтов нужны отдельная прошивка для селфскана и программка для запуска, есть в свободном доступе.
  • WD: есть возможность запустить селфскан на относительно новых дисках с процессором Marvell, но это выходит за рамки темы. Про старые сведений нет.
  • Quantum - есть возможность запустить Selfscan на семействах ST и новее (SE, TM, EL, AS, lct, кваксторы). Сам не пробовал.
  • IBM - есть возможность запуска selfscan на семействах с 22GXP по 120GXP, про другие сведений нет. Сам не пробовал.


На винчестерах Fujitsu, Toshiba, Hitachi, древних Seagate и Maxtor, старых WD селфскана нет или он нам не доступен.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
С ростом ёмкости жёстких дисков скрытие дефектов на уровне файловой системы стало большой проблемой, и жёсткие диски обзавелись собственными механизмами сокрытия дефектных секторов и замещения их резервными. Поначалу такой механизм работал только на этапе изготовления жёсткого диска, позже появилась возможность скрывать дефектные сектора в процессе эксплуатации жёсткого диска. Такая процедура называется ремапом.

Ремап - это замещение дефектного сектора резервным. Замещение происходит в трансляторе - таблице, которая преобразует логический адрес LBA/CHS в координаты физических цилиндра, головки и сектора (PCHS) (как известно, логические координаты CHS не совпадают с физическими уже очень давно, примерно от емкостей в 100 Мб и более). Адрес дефектного сектора просто заменяется адресом резервного. Замещение может происходить как перманентно, перезаписью модуля транслятора на диске, так и виртуально, в памяти контроллера, "пропатчиванием" рабочей копии транслятора информацией из G-List. У разных накопителей по-разному. Недостаток такого метода - каждый раз при обращении к этому сектору головка перемещается в резервную область и обратно, что отрицательно сказывается на производительности (выглядит как "провал" на графике чтения).

Транслятор бывает статический и динамический. Статический хранится модулем на диске, создаётся один раз во время селфскана на базе P-List, однако может быть внутренне пересоздан командой "Пересчёт транслятора" (к слову, эта же команда является внутренним форматированием, разница только в параметрах). Динамический собирается в памяти на основе информации о числе головок, зонном распределении и дефект-листов, и любые изменения в этих модулях отображаются на трансляции немедленно. Динамический более характерен для старых винтов, статический - для современных.

Стратегии резервирования секторов
1. Резервные дорожки. На каждой стороне выделено по несколько резервных дорожек, при обнаружении бэда дорожка заменяется целиком. Одна из простейших стратегий резервирования, высокая надёжность. Недостатки - малое число скрываемых бэдов, неэффективное использование пространства. Встречается на первых винтах, у которых CHS адресация совпадала с физической.
2. Резервные сектора в конце каждой дорожки. Также один из простейших алгоритмов. В конце дорожки выделяется по одному-два резервных сектора. При обнаружении бэда он замещается резервным на той же дорожке, что даёт ремап практически без потери скорости обращения. Недостатки - неэффективное использование места, проблемы при появлении более чем одного-двух дефектных секторов на дорожке - винчестер либо отказывается делать ремап, либо вынужден использовать резервный сектор соседней дорожки, что сильно усложняет алгоритм.
3. Выделенная резервная зона, обычно в конце диска. Позволяет наиболее экономно использовать место. Недостаток - большие задержки, вызванные перемещением головки каждый раз в конец диска.
4. Распределение резервных блоков по всему дисковому пространству. Наиболее эффективный, но и наиболее сложный алгоритм.
Кроме того, для улучшения эффективности многие диски допускают группировку дефектов в треки - если число бэдов на дорожке больше определённого, трек целиком заменяется резервным. Таким образом, каждый дефект-лист оказывается разбитым на две части - трековый и секторный.

Кроме растущего при ремапах дефект-листа (G-List), есть ещё первичный дефект-лист (P-List). В него заносятся дефекты, найденные в процессе изготовления и заводского тестирования винчестера. В трансляторе их адреса просто пропущены (slipped). Таким образом, дефекты из P-List не влияют на скорость работы диска. Разумеется, при ремонте возникает желание перенести G-List в P-List. И у многих винчестеров такая возможность есть! Выполняется она, естественно, недокументированной vendor-specific служебной командой, подать которую можно только при помощи спец-утилит (либо, если такой команды нет, утилита может сама пересчитать адреса, внести необходимые изменения в P-List и переписать его). Кроме того, служебными командами оба листа доступны для считывания, записи и редактирования. Но есть одно "но": после переноса (merge) G-List в P-List адреса во всём трансляторе должны быть сдвинуты. Для этого служит операция пересчёта транслятора. Она строит новый транслятор, опираясь на данные одного или нескольких дефект-листов. В принципе, пересчёт транслятора может учитывать сразу и G-List, но тогда он должен сам выполнять перенос дефектов - после пересчёта транслятора оставлять G-List непустым бессмысленно.
У некоторых винчестеров LBA адрес сектора хранится в его заголовке, поэтому команда пересчёта транслятора совмещёна с внутренним форматированием. А делать при этом реальное форматирование или нет - определяется опциями команды. Если его не проводить, возможна проблема, известная как расхождение транслятора или "вилка" транслятора, когда с определённого (первого бывшего сбойного) сектора адреса перестают совпадать, и винт читается только до определённого места, дальше выдавая сплошные UNC. Решение проблемы при ремонте - обычными средствами сделать запись всей поверхности диска: при записи заголовок сектора переписывается правильным. Восстановление же информации на диске с "вилкой" - задача сложная и нетривиальная, выходящая за рамки темы.
Другая проблема, которая может возникнуть при скрытии дефектов вручную - это конфликт таблиц дефектов. Например, если есть трековый дефект и секторные дефекты по тому же треку. Команда пересчёта транслятора при этом завершается с ошибкой. Решение - вручную найти и удалить из секторной таблицы дефекты, которые уже есть в трековой.

Но это всё были сложные случаи, вернёмся к простому: а как же, собственно, пользователю сделать этот самый ремап сбойного сектора? Ответ - никак. В стандарте ATA нет команды на ремап выбранного сектора, жёсткий диск сам, на основании своих алгоритмов, решает, делать ли ему ремап или нет, а мы можем лишь его к этому подтолкнуть. (Примечение: это не совсем так. у некоторых производителей, например Fujitsu и Quantum, есть vendor specific команда Reassign) Обычный алгоритм таков: при обращении с сектору контроллер фиксирует количество попыток чтения и ошибок ECC, и исходя из них, может занести его в лист кандидатов на ремап (Pending Sectors). Количество секторов в этом листе отображается в 197 атрибуте S.M.A.R.T - Current Pending Sector Count. При записи в этот сектор контроллер проверяет результат записи, и если сектор после этого стал читаться успешно (т.н. софт-бэд) - удаляет его из списка пендингов, если же нет - записывает информацию в резервный сектор и дополняет G-List: происходит ремап. Счётчик SMART #196 Reallocation Event Count при этом увеличивается на единицу, а в #05 Reallocated Sectors Count добавляется число переназначенных секторов. Либо же накопитель во время операции оффлайн-самотестирования делает попытку чтения пендингов, и если сектор прочёлся успешно - делает попытку его ремапа. В переназначенный сектор записывается старая информация. Таким образом, потери информации ни в том, ни в другом случае не происходит.

Так как же вынудить винчестер сделать ремап? MHDD и Victoria делают это так: при сканировании при обнаружении сбойного сектора делается одна из следующих выбранных опций:
Remap - сектор перезаписывается (чем - не знаю), потом проверяется его читаемость, о которой программа судит об успешности ремапа. Информация в секторе при этом, насколько мне известно, теряется.
Advanced remap - делается несколько последовательных попыток чтения-записи в ожидании, что контроллер занесёт дефект в кандидаты и выполнит его ремап. Операция при этом осуществляется не только для нечитаемых секторов, но и для секторов со слишком большим временм обращения - при этом в них записывается старая информация.
Fujitsu Remap - дефект заносится в дефект-лист, используя технологические команды этих накопителей.
Erase 256 sect. - затирается не только этот сектор, но и окружающие его соседние. На всякий случай.
Подробнее тут: http://gattosporco.blogspot.fr...p-hdd.html
Либо можно просто затереть весь диск любым доступным способом.

Еще о ремапе: https://3dnews.ru/166013/page-2.html
Ну и последнее примечание: у винчестеров Samsung ремап отключен на заводе (хотя микропрограмма его поддерживает).
Byteman
Junior Member


Откуда: Беларусь, Брест/Минск
Всего сообщений: 110
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
9 авг. 2006
Тема супер! Надеюсь на освещение привода в чувства современных накопителей вроде ST2000DM00x, т.к. частично забэдованных (и подвисающих при попытке эти самые бэды заремапить, или просто перезаписать весь диск, до передергивания питания не определяющихся) собралось уже несколько штук...
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Byteman, тема воскрешения современных Seagate F3 до сих пор толком не раскопана, я сам только начинаю ей заниматься - подопытных кроликов маловато. Я дам лишь общие наработки и справочные материалы по этой теме, дальше советую обращаться в тему http://forum.ru-board.com/topic.cgi?forum=84&topic=5249 , именно там обитают самые лучшие специалисты во всём Рунете.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Добавлю к своим словам:
[q]
4. Микропрограммы жёстких дисков являются интеллектуальной собственностью разработчиков. Их изучение или даже просто выкладывание может преследоваться по закону.
[/q]
Или так (цитата с другого форума):
[q]
south_man написал:
[q]
терминал залочен или мне так показалось?

F3 T>
Diagnostic Port Locked
[/q]
BOBAH4IK написал:
[q]
Угу... Это Розвуд... И залочен и варь подписана... Эт всем козья рожа от сигейта. Усё, отлазились в терминал
[/q]
south_man написал:
[q]
абидно - и так не много было вариантов, чего делать с этими F3, и тут такое)
[/q]
BOBAH4IK написал:
[q]
Скажите спасибо всем тем, кто в паблик инфу вываливал. Ведь неоднократно предупреждали чем это закончится.
Приятного аппетита!
[/q]
Sedin написал:
[q]
а с самсунгами чё... не также было?
.... терь ждите подляны от wd... однозначно.....
[/q]
BOBAH4IK написал:
[q]
Уже, однако... >потёрто> граждане.
[/q]
[/q]
В общем, за выкладывание в публичный доступ информации о доступе к микропрограмме и служебным командам накопителей производитель этот самый доступ отрубает. Вот так-то.
ATauenis
Advanced Member


Откуда: Москва
Всего сообщений: 2904
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 апр. 2015
Если я правильно понял, то просто производители периодически меняют интерфейс терминала, дабы карась не дремал? Старые коды работают только на старых винтах, новым надо новые. Или всё хитрее?
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
ATauenis, да, в целом так. И команды терминала, и сервисные команды ATA, и технологические ключи. Многие ремонтные функции попросту выкидываются. Вот поэтому я только старьём и занимаюсь - там попроще и подоступнее. А новые предлагаю оставить профессионалам.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Во многих сервисных программах (MHDD, Victoria, PC3000 и др.) можно увидеть строку мигающих индикаторов с подписями ERR, INX, CORR, DRQ и т.д. Что же они означают? Всё очень просто - это индикация битов регистров состояния и регистра ошибок IDE/ATA. Восходят они ещё к регистрам самых первых MDM HDD контроллеров от WD, и их назначение в наше время очень сильно изменилось и зачастую мало информативно, но всё же они могут быть полезны для диагностики. Узнать их назначение можно из стандартов на IDE/ATA интерфейс. Вот их разъяснение своими словами:

Регистр состояния:
ERR (Error) Произошла ошибка. В регистре ошибок можно узнать код ошибки. Используется для быстрой проверки успешного завершения команды. Сбрасывается, когда в регистр команд засылается новая команда.
INX (Index). Зажигается при каждом обороте диска. По сути, был нужен разве что для низкоуровневого форматирования (команда 50h). В современных моделях не используется, вместе с этой командой.
CORR (Correction Data) Индицирует, что при считывании с диска произошла ошибка, которая была успешно скорректирована аппаратурой CRC. Устарело и на новых HDD не применяется.
DRQ (Data Request). Винт готов к обмену данными через интерфейс; этот бит показывает, что имеется запрос по обмену данными с буфером сектора при выполнении команд чтения записи. По этому запросу необходимо прочитать или записать буфер.
DRSC (Drive Seek Complete). Винт успешно закончил установку головки на трек; Устарело. На новых назначение зависит от предшествующей команды.
WRFT (Write Fault). Ошибка записи. Устарело. По новому стандарту, и, следовательно, на новых HDD: "Device Fault" - неисправность устройства
DRDY (Drive Ready). Винт готов к приему команды
BUSY (Busy). Винт занят обработкой команды или "завис". В то время, пока горит эта лампочка, все остальные индикаторы считаются недействительными, и винчестер может реагировать только на команду "Reset" (подаётся кнопкой F3).

В режиме простоя и готовности исправный винт должен иметь установленные биты DRSC и DRDY, ну и возможно мигающий INX. Все остальные гореть не должны.

Регистр ошибок:
AMNF (Address Mark Not Found). Невозможно найти сектор; адресная метка не найдена. Конкретная причина у современных накопителей может разниться. Обычно это расхождение транслятора (лечится его правильным пересчётом или записью поверхности - смотря что важнее, работоспособность или данные). Всегда загорается после сброса до первой полученной команды.
T0NF (Track 0 Not Found). Невозможно выполнить рекалибровку на стартовый цилиндр рабочей области. Устанавливается только после команды "Рекалибровка", изначально у MFM контроллеров - если после 2048 шагов не получен сигнал от датчика нулевой дорожки. У современных накопителей говорит о повреждении микрокода, приводящем к невозможности инициализации.
ABRT (Aborted Command). Винт отверг команду в результате неисправности (получено состояние WRFT, not DRSC или not DRDY), или команда не поддерживается данным HDD (пароль, устаревшая или слишком новая модель итд.).
IDNF (ID Not Found). Идентификатор сектора не найден; разрушен заголовок сектора или обращение к несуществующему сектору. Конкретная причина у современных накопителей может разниться.
UNCR (Uncorrectable Data Error). Не удалось скорректировать данные избыточным кодом, блок признан нечитаемым. Может быть как следствием нарушения контрольной суммы данных, так и следствием физического повреждения поверхности (бэд-блок). Конкретная причина у современных накопителей может разниться.
BBK (Bad Block Detected). В идентификаторе блока установлена метка дефектного сектора. Устарело.
Ещё два бита регистра не используются.
При нормальной работе ни один из этих индикаторов гореть не должен.

И да, как я уже говорил, те же самые регистры были у "безбиосных" MFM/RLL контроллеров, поэтому софт для ремонта и диагностики IDE HDD может ограниченно применяться и с ними. Самое главное ограничение, с которым я столкнулся - у MFM отсутствует команда выдачи паспорта диска.

При подготовке использовались материалы:
http://www.ihdd.ru/victoria-doc-ru#lamp
http://ab57.ru/hdd.html
http://www.acelab.ru/dep.pc/products/doc-hddtech.pdf
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
KALDYH, с Вашего позволения, несколько добавлений от меня.
Я иногда пользую DOS версию PC3000, в основном для ремонта совсем старых HDD.

Ремонтируемый HDD нужно питать от отдельного БП с выключателем, тк "дергать питание"
придется часто, земли обеих БП нужно надежно соединить.

Из-за неудачного взлома работает со странностями, нужно подбирать материнку, критерии как
понять какая лучше подходит я пока не выявил. При неподходящей плате может наблюдаться очень
медленное прохождение теста сервометок и некоторых других, бракование всех секторов как
плохие, причем чем новее утилиты тем больше проблем (видимо плату PC3K доработали таймером).
На последних WD утилитах (для DOS версии) утилит нужно "шаманить" с передергиванием питания
в некоторые (подобранные экспериментально) моменты времени. Но в конце-концов WD400 (ранний
выпуск, с большой платой электроники) восстановить удалось.

Сами утилиты имеют некоторые странности (со взломом это не связано).

Используется редкий шрифт, который "выбрасывает" (по умолчанию, по крайней мере) BIOS
Patcher с rom.by, и изображение становится искаженным. Это было одной из причин, после
чего пользоваться BP я перестал.

Нет возможности сохранить дефект-лист в файл, что неудобно например на ST-157A (практически
это первый IDE disk от Seagate). И если модуля с P-list вообще нет (это по сути MFM(RLL) диск
+ контроллер), то восстановить заводской дефект лист после форматирования трудно.

Если надо работать с совсем старыми дисками, лучше выбирать из плат на VIA, тк Intel начиная
с PIIX4 использует заниженные сигнальные уровни. VIA чипсеты, даже современные с UDMA100 лучше
совместимы с древними HDD. Со старыми WD (WDAC1210 например) и Seagate (ST3491A например) на
VIA нормально работает multiword DMA mode, на Intel PIIX4 - нет.

Про MFM. Помимо отмеченного Вами отсутствия паспорта диска, для 16-bit MFM controller перед
первым доступом к носителю нужно подать команду INITIALIZE_DEVIZE 0x91 (это нужно и для
некоторых старых IDE, например WDAC1210) и RECALIBRATE 0x1x с полем step rate x. У IDE это
поле ликвидировали, но в наследство она кодируется как 0x1x, где x от 0 до F (так же и seek).
Если команду не подать, MFM позиционирует ОЧЕНЬ медленно. Это все на случай работы с MFM без
BIOS и без инициализации от BIOS.

upd.
Забыл. Установка AMNF после сброса - признак присутствия ATA устройства (при этом в регистре
статуса бит ERR сброшен), поэтому после сброса диска взвденный AMNF - нормально. Во всех
остальных случаях это ошибка.
<<Назад  Вперед>> Страницы: 1 2 * 3 4 5 6 .. 75 76 77 78 79 80
Печать
Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS