Мы продолжаем цикл публикаций о дисках одного из немногих оставшихся производителей НЖМД — Western Digital и их проблемах. Сегодня на операционном столе WD5000AAKS-00S9B0, семейства Dragon Fly III.



Со слов клиента, от предыдущего администратора ему достался парк рабочих станций с некачественными noname-блоками питания Made In China, случаи выхода из строя дисков по этой причине уже были, но предыдущие накопители, в отличие от этого, важных данных не содержали.

Как обычно — “только вчера диск работал исправно”, а сегодня стал определяться в BIOS как WDC-ROM MODEL-DF3-PL2K, и объемом 232Gb.

Получив винчестер на диагностику перво-наперво проверили плату электроники на предмет возможных повреждений (http://habrahabr.ru/company/hardmaster/blog/251263/) и подали питание на диск. На запрос get ID в поле паспорта “высветился” заводской псевдоним. Здесь необходимо сделать небольшое отступление и рассказать, в чем обычно заключается причина такого поведения дисков WD архитектуры Royl.

В тех случаях, когда диск, при комплексной инициализации, не может прочитать критичные для нормального старта модули служебной информации (Service Area), накопитель переходит в так называемый, Kernel Mode, отдавая только код семейства из ПЗУ, а паспортные данные (которые, на самом деле, лежат в SA) – отдаются вот такой вот «рыбой». Или не отдаются вообще.



Вроде бы все понятно – проблемы с чтением SA, пора искать вышедшую из строя голову. Но указанный диск, отдавая такой паспорт, в Kernel Mode НЕ находился. Как минимум программный код (оверлеи) прочитаны и загружены в ОЗУ. Это уже интересно. Если инициализация пошла – значит модули в служебной области в принципе читаются. И причину отдачи такого «кривого» паспорта надо искать где-то в другом месте.

Здесь необходимо сделать еще одно отступление и немного рассказать о структуре служебной информации “Вестернов”.

Для того, чтобы диск смог работать с модулями служебной информации, ему необходимо знать, где, в каких секторах, эти модули находятся. Описать их координаты призван самый первый модуль SA, находящийся по смещению, прописанному в ПЗУ – это id00 DIR.

Паспорт диска и его основные рабочие параметры описаны в модуле по соседству – это id02 — Drive Configuration.

На этом с теоретическими рассуждениями закончим и, поскольку у нас (по меньшей мере) присутствуют проблемы с паспортом диска, посмотрим, какое же содержимое id02 пациента:



Очевидно, что никаких паспортных данных тут и близко нет. А как же так? И куда делся оригинальный id02? Вопросов много.

Следующим шагом мы проверили наличие в памяти диска всех необходимых оверлеев, нужных для работы по АТА, и запустили специальную процедуру, которая сканирует SA, и по сигнатурам, находит в ней модули.



И даже DIR нашелся. Предположим, что найденное – это несколько не то, что отдает нам диск в обычном режиме. Настроим утилиту по найденному DIR и попробуем получить доступ к SA с помощью него.



Вот и ответ на вопрос «куда делся оригинальный id02». Он никуда не девался и находится на своем месте. А вот его координата в DIR – запорчена.

На всякий случай, резервируем все найденные модули, а также полностью всю SA единым дампом. Пробуем писать id02 в то место, которое указано в DIR, передергиваем питание, диск корректно проинициализирован и готов к снятию с него данных в штатном режиме:



Что же случилось, спросите вы?

В процессе работы диск периодически обновляет некоторые модули. Это SMART, дефект-листы и т.д. Скорее всего, в момент очередного обновления какого-то из этих модулей, произошел выброс по питанию, обусловленный низким качеством примененного БП, и запись произошла не в искомый модуль, а в DIR, “удачно” подпортив координату id02 в нем. Пока содержимое id02 находилось в ОЗУ диска, все работало нормально, а после рестарта по питанию случился полный швах.

Для инженера, обладающего достаточными знаниями по внутреннему устройству дисков Western Digital — это не очень сложная работа. В данном случае пришлось потратить около получаса, с момента приемки диска в работу, до получения доступа к “поляне” (пользовательским данным). Но, в современных условиях тотальной экономии на всем, на чем только можно, последствия зачастую бывают гораздо более печальными. Здесь и прогоревшие платы и вылетевшие коммутаторы БМГ в гермозоне. Данные обычно восстанавливаются, но достаточно обидно осознавать, что когда-то сэкономленные $20 теперь привели к потере денежной суммы, объемом примерно в 50 раз выше.

Комментарии (57)


  1. en1gma
    18.05.2015 13:24
    +17

    а можно поподробнее про архитектуры и семейства жестких дисков рассказать?


    1. Security_Lab
      18.05.2015 13:49
      +2

      интересно было бы почитать (поддерживаю )
      а так спасибо за статью


      1. wwwHardMasterInfo
        18.05.2015 14:16
        +3

        Попробуем подготовить материал специальный, а пока что-то можно прочитать на нашем сайте в поиске вбив туда что нибудь вроде «семейство».


  1. WorksIsGone
    18.05.2015 13:56

    mihail_hdd, у меня вопрос к вам как к специалисту.

    WDC WD15EADS-00P8B0
    начались типичные (как выяснилось) зависания.
    При этом ошибок нет, ос не ругается, в смарте ничего.
    На минуту — две занят, потом отдупляется, и дальше работает.

    Чем объясняется, можно ли вылечить?


    1. mihail_hdd Автор
      18.05.2015 15:55
      +1

      Попробуйте сменить шлейф.

      Также можно предположить, что у Вас образовался нестабильно читаемый сектор, пока не исключенный микропрограммой из трансляции, отсюда и нормальный SMART.


      1. WorksIsGone
        18.05.2015 16:04

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

        Ситуация с этим винтом уже длится достаточно долго, с полгода — год, сейчас он как «резервный накопитель» в медиацентре, там лаги некритичны, просто раздражают. Хотелось бы решить проблему, но мне кажется, выход — замена. )=

        Есть какая-то возможность сделать некий жесткий тест чтения, что бы, если причина в нечитаемом секторе, его оттдетектировать и занести в список бедов?


        1. mihail_hdd Автор
          18.05.2015 17:15

          Попробуйте для начала прогнать обычный тест в Victoria. Перед этим, отнимите у диска букву, в Disk Management.


    1. Alexeyslav
      19.05.2015 08:19
      -1

      del.


  1. vitektm
    18.05.2015 17:10

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


    1. tronix286
      18.05.2015 20:22

      Да скорее всего сделать прошивку нужно было не позднее, чем «уже позавчера», поэтому всякие красивости в виде дублирования информации при работе с ОЗУ и многочисленные проверки что если здесь не то что здесь, тогда берем отсюда оставили — «потом сделаем», сейчас и так работает. Сдали и забыли.


      1. mihail_hdd Автор
        18.05.2015 20:45
        +1

        Ну, так же можно и обвинять производителей флешек — почему на них возникают логические сбои, если записать полностью, а потом выдернуть, не дождавшись, пока ОС сбросит кэш.

        Здесь произошло практически тоже самое: диск начинает обновлять свою служебную информацию, в этот момент происходит выброс по питанию. По причине которого, «мозги» данного диска встают, пардон мой френч, раком. Куда и что он запишет после этого — не знает никто. И это, заметьте, простой классический HDD. В случаях с SSHD Seagate, к примеру, все гораздо веселее, и даже неожиданно отключать питание не надо.

        Я не понимаю, как и каким образом можно организовать защиту от такого на уровне firmware.

        Правильный пример — это, допустим, SSD OCZ Vector / Vertex450, имеющие свойство взводить бит защиты паролем на совершенно пустом месте, с FW 1.17 и старшими. Это чистейшей воды баг, про который, вероятно, в ближайшем будущем будет статья.

        Или та же WD, у которой проблема с переполнением RELO уже года три странствует от семейства к семейству. Это баг., подробно я про него писал тут: habrahabr.ru/company/hardmaster/blog/251895

        Приглашаю к дискуссии, если имеете желание.


        1. Daimos
          18.05.2015 22:38

          Я не понимаю, как и каким образом можно организовать защиту от такого на уровне firmware.

          Что мешает прочитать и проверить после записи таких критичных блоков?


          1. Alexeyslav
            19.05.2015 08:32

            Накладно. чтобы проверить надо дождаться следующего оборота диска. итого на запись одного сектора будет потрачено два оборота.


            1. Daimos
              19.05.2015 22:00

              Спасибо — я в курсе как диски работают, так вот это — смех просто, а не накладно. Я же не предлагаю запись всех данных так делать, а только данных в служебные области — а туда винт пишет редко.


        1. isden
          19.05.2015 11:02

          А вроде бы в SSD подобное предусмотрено — ставят большие кондеры/ионисторы на питание — их хватает, чтобы корректно сбросить кэши и фильтровать подобные выбросы.


          1. ploop
            19.05.2015 11:04

            То же самое и с HDD можно провернуть. Шпиндель крутить не надо, его инерции хватит, чтобы всё сбросить, только электронику продержать.


            1. isden
              19.05.2015 11:06

              В HDD, емнип, уже достаточно давно как раз таки инерцию и используют для корректной парковки / питания электроники при отключении.


              1. Alexeyslav
                19.05.2015 11:58
                +1

                Ага, я помню как нам байки рассказывали про винчестеры размером с тумбочку. Там для отведения головок используется шаговый двигатель довольно мощный, и пакет из 20-30 пластин по 2Мб. Когда обесточивается такая бандура, нужно срочно выводить головки чтобы они не оставили запил, для этого там половину объема шкафчика занимают электролиты и само собой со временем высыхают до той степени что приходится в аварийном режиме помогать выдвигать головки вручную. Эта функция была выработана до автоматизма — как только ухо улавливает снижение частоты вращения шпинделя, сразу бессознательно руки тянутся к блоку головок…


          1. Alexeyslav
            19.05.2015 11:54

            Ионисторы это фигово. Они довольно быстро деградируют под напряжением, и может оказаться что через пару лет неспешного использования SSD-шки они уже не будут держать заряд.


            1. isden
              19.05.2015 11:55

              Ну может просто конденсаторы. Врать не буду, я про эту штуку читал краем глаза где-то с полгода назад.


  1. alivanich
    18.05.2015 17:24

    $20*50=$1000
    Это тысяча долларов за полчаса работы или с учётом потерь клиента от простоя оборудования? Я не против принципа «1рубль ударить молотком, 99 куда», но если это ценник за работу, то всё равно выглядит не кисло.


    1. mihail_hdd Автор
      18.05.2015 17:50

      К примеру, упавшие на сами диски головы, из-за нештатной парковки, вызванной электрическим выбросом.

      Царапина (на сленге — запил).

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


      1. progchip666
        18.05.2015 18:58
        +1

        Судя по вашей статье в данном случае обошлось без доноров. Думаю если бы дело дошло до них, то клиент расстался бы уже с более значительной суммой.


        1. mihail_hdd Автор
          18.05.2015 20:10

          Я не утверждал, что в данном конкретном заказе клиент заплатил указанную сумму.
          Естественно, что нет.

          Но современные WD отличаются абсолютно наплевательским отношением к защите от проблем по питанию.
          Здесь человеку повезло, подправили SA и диск заработал.

          А так — почти правило: увидел сгоревшую м/с VCM на плате — 95% мертвый коммутатор в гермозоне, замена БМГ, с совершенно логично из этого вытекающей оплатой донора.


    1. ploop
      18.05.2015 20:39
      +2

      Я не против принципа «1рубль ударить молотком, 99 куда», но если это ценник за работу, то всё равно выглядит не кисло.

      Я так понимаю, есть случаи, когда данные восстановить нельзя. Но попытки делаются, возможно долгие. С клиента тут деньги не возьмёшь, но в среднем по компании это время тоже должно быть оплачено.


      1. ctapnep
        19.05.2015 19:29

        почему не возьмешь? Таки неоднократно сталкивался с ситуацией — мы диск можем взять на диагностику, которая обойдется в 500 баксов, после диагностики мы примерно оценим повреждения и скажем сколько будет стоить восстановление БЕЗ ГАРАНТИИ РЕЗУЛЬТАТА.


        1. ploop
          19.05.2015 21:04

          Ну это какой-то неправильный бизнес. Я бы таких послал.
          Максимум — недорогая диагностика (чтобы примерно цену выяснить) + попытка восстановления, удачная оплачивается, неудачная соответственно нет.


          1. ctapnep
            19.05.2015 22:01
            +1

            Зависит от того какой есть выбор и насколько нужны данные.
            Как по мне, так бизнес весьма даже правильный. Клиента не кидают, вся информация о ценах и условиях доступна и неоднократно у клиента переспрашивается понимает-ли он и принимает-ли риски. А дальше уже вопрос исключительно желания клиента.
            Ну и таки времени много прошло. Я уже лет 10 не обращался за подобными сервисами. Бакапы спасают :)


            1. ploop
              19.05.2015 22:07

              Я уже лет 10 не обращался за подобными сервисами.

              Желаю вам и впредь с ними не сталкиваться :)


  1. FeNUMe
    18.05.2015 17:45

    Спасибо за статью. Будет замечательно если продолжите публиковать описания разных «кейсов» по восстановлению и просто технические статьи о жестких дисках. Такой информации в открытом доступе очень мало, а вот интересующихся много. Сам несколько лет назад искал способ починить SAMSUNG HD501LJ(его перевернули во время работы, при включении компа несколько секунд стучит и смарт не пашет, при этом поверхность целая и винт работает до сих пор), в итоге хоть какую-то полезную информацию нашел только на rom.by, но руки так и не дошли до перепрошивки.


    1. mihail_hdd Автор
      18.05.2015 17:53

      несколько секунд стучит и смарт не пашет


      Скорее всего, не может прочитать из SA модуль с таблицами SMART, вот и «не пашет» он.


      1. FeNUMe
        18.05.2015 18:01

        Ну я так и подумал, потому и хотел перепрошить. Софт и прошивку нашел тогда, а вот подробной инфы о структуре прошивки, о возможности прошивки без спец оборудования — нет, потому не стал рисковать — поставил его в тестовую машину в качестве системного и он там трудиться 24/7 уже больше двух лет точно.


        1. mihail_hdd Автор
          18.05.2015 19:39

          Вряд ли Вам поможет перепрошивка. SMART не читается не из-за того, что надо что-то прошить, а из-за того, что

          при включении компа несколько секунд стучит


          1. FeNUMe
            18.05.2015 19:47

            Я предположил что причина не в механике раз винт исправно работает, а просто затерлась какая-то сервисная инфа(как в описанном вами случае) из-за чего при инициализации винт пытается прочесть ее в другом месте или калибруется. Потому и думал что прошивка рабочей заводской прошивки должна помочь. Стучит он только при включении питания, после перезагрузки(resetом) стука нет.


            1. mihail_hdd Автор
              18.05.2015 19:51

              Насколько мне известно, Samsung'и не могут инициализироваться композиционно.

              Все необходимые для старта модули должны быть прочитаны диском из той копии SA, с которой инициализация началась.


  1. progchip666
    18.05.2015 18:56
    +1

    Данные обычно восстанавливаются, но достаточно обидно осознавать, что когда-то сэкономленные $20 теперь привели к потере денежной суммы, объемом примерно в 50 раз выше.

    Нехилые расценки. Мне с ними как то тоже приходилось сталкиваться. Больше желания экономить на бэкапах нет. Пожалуй облака нынче стали понадёжней и безопасней.


    1. mihail_hdd Автор
      18.05.2015 19:49
      +8

      Нехилые расценки.


      Прошу понять правильно (с)

      Я не говорю о том, что все расценки в Data Recovery таковы.
      Всё определяется масштабом разрушений, требуемыми запчастями, в конце концов, срочностью выполнения.

      Нам тоже бывает обидно, когда приносят заказ, который можно было сделать за 1500 р. и полчаса.
      Но клиент решил пойти тропой извилистой. Отнес диск на Савеловский рынок, где на него натравили пиратскую бетаверсию WDMarvel и начали нажимать в ней все кнопки подряд.

      Или на диск с одной проблемной головкой натравили HDD Regenerator (в узких кругах — дегенератор) и получили запил, сначала по этой голове, а потом и по остальным.


  1. tronix286
    19.05.2015 08:02
    -4

    А, в целом, не понятно на кого рассчитана статья? У кого есть PC3000, есть к ней и хелпа — могут и почитать. У кого нет — что эта информация дает? Да по сути ничего, так сделать все равно ничего нельзя. Вот если бы все то же самое через команды терминалки — то это уже конечно полезно. У нонишних хардов то вообще есть терминалка?


    1. owniumo
      19.05.2015 08:33
      +8

      На меня рассчитана. Я слишком оптимистично оцениваю свои знания и способности, и вот такое приоткрытие завесы помогает мне понять, что в серъёзных случаях нельзя заниматься самолечением и нельзя к знахарям обращаться, а сразу к людям с инструментами, репутацией и открытой политикой.


      1. owniumo
        19.05.2015 08:40
        +1

        Да, муху CC я однажды вылечил. Самодельный мост TTL на MAX232 заработал не сразу, понадобился совет друга, который потом объяснил, что эта проблема самая безобидная из множества вероятных.


  1. Psychosynthesis
    20.05.2015 01:16

    Статья интересная. Но поподробней бы.

    Вот например:

    «На этом с теоретическими рассуждениями закончим и, поскольку у нас (по меньшей мере) присутствуют проблемы с паспортом диска, посмотрим, какое же содержимое id02 пациента:»

    Где посмотрим? Как?

    «Следующим шагом мы проверили наличие в памяти диска всех необходимых оверлеев, нужных для работы по АТА, и запустили специальную процедуру, которая сканирует SA, и по сигнатурам, находит в ней модули.»

    Чем проверили? Как? Какую такую специальную процедуру? Как запустили?

    Хочется же знать как всё это делать. Мы же тут вроде как учимся друг у друга, нет?


  1. mihail_hdd Автор
    20.05.2015 12:46

    Где посмотрим? Как?


    Я пользуюсь утилитой WD Marvel из PC3000 Express.
    Но есть и аналоги, к примеру, упомянутая выше WDMarvel от другого автора, являющаяся самостоятельной утилитой.


  1. dmitrmax
    25.05.2015 01:41

    А где вы берете все эти познания о внутренностях прошивок, режимах и т.д.? Это reverse engineering или NDA от самого производителя?


    1. mihail_hdd Автор
      26.05.2015 22:05

      Ну, было бы NDA, я бы наверное, здесь такое не писал :)

      Знания добываются как самостоятельно, так и путем общения на закрытых ресурсах, с коллегами по цеху.
      Но не считайте, что Вам вот так прямо все скажут и обьяснят.

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

      Может быть, после этого, получите совет от гуру.


      1. dmitrmax
        27.05.2015 01:27

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

        По факту получается глупость — те, кому надо, всё равно всё знают, только это знание добывается такими квестами, что любая народная сказка позавидует. Что сказывается на цене ваших услуг не в лучшую сторону.