Утилиты прошить контроллер жесткого диска. Проблемы с микрокодом на винчестерах Western Digital. Терминальный режим жесткого диска

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

WARNING

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

Электроника HDD

Конструкция винчестера в какой-то степени наверняка известна каждому. По сути, это несколько пластин, которые вращаются со скоростью 15 000 об/мин, устройство позиционирования и блок управляющей электроники. Добавим к этому систему самоконтроля S.M.A.R.T. и другие интеллектуальные атрибуты. Короче, без пол-литра не разберешься, тем более технология отдельных элементов составляет коммерческую тайну.

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

INFO

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

Пациент

Итак, перед нами плата типичного жесткого диска Western Digital WD5000AAKX объемом в 500 Гб (рис. 1). Что мы имеем:

  1. Микросхема DRAM. Интереса как такового не представляет, мануал легко можно найти в Сети. Память этих чипов колеблется от 8 до 64 Мб и соответствуют размеру кеша жесткого диска.
  2. Контроллер двигателя шпинделя. Отвечает за управление механикой, регулирует мощность и имеет некоторые аналоговые/цифровые каналы. На чип Smooth L7251 3.1 мануалы отсутствуют, но можно попробовать поискать похожие микросхемы.
  3. Флеш-память. На некоторых винчестерах микросхема отсутствует, но флеш-память бывает встроена в чип контроллера диска. Обычно имеет размер в пределах от 64 до 256 Кб. Используется для хранения программы, от которой загружается контроллер жесткого диска.
  4. И самая любопытная для нас вещь - контроллер жесткого диска. Их производят компании Marvell, ST, LSI и другие. Некоторые компании, производящие винчестеры, делают свои собственные контроллеры, как, например, Samsung и Western Digital.

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

Копнем глубже

Наш зарубежный коллега Джероен «Sprite_tm» Домбург нашел интересный выход из данной ситуации - для исследования контроллера он использовал интерфейс JTAG (от англ. Joint Test Action Group). Этот интерфейс предназначен для тестирования и отладки печатных плат. То есть с помощью JTAG мы можем спокойно подключиться к интересующему нас устройству, поддерживающему стандарт IEEE 1149. В микросхему интегрируется порт тестирования (TAP - Test Access Port), состоящий из четырех или пяти выводов: TDI, TDO, TMS, TCK и, возможно, TRST. Расположение этих выводов для контроллера Marvell нашел некий dex , любезно поделившийся результатами на форуме HDDGURU .

Джероен выяснил, что у контроллеров Western Digital есть ARM-ядро, доступное через JTAG-порт. А также последовательный порт, который обычно не используется, но может быть полезен для наших целей.

Для исследования контроллера жесткого диска использовалась плата FT2232H, которую можно заказать в интернете за 30 евро. Она поддерживает JTAG, связь через последовательный порт, а также SPI. Для работы с ней использовалась программа OpenOCD .

В результате оказалось, что у микросхемы есть целых три ядра. Два Feroceon, которые являются довольно сильными ARM9-подобными ядрами, и Cortex-M3, которое немного слабее. У всех ядер разное предназначение:

  • Feroceon 1 обрабатывает физические чтение/запись на жесткий диск;
  • Feroceon 2 -обрабатывает SATA-интерфейс, кеш и преобразует LBA в CHS;
  • Cortex-M3 - предназначение неизвестно. Можно просто остановить его, но жесткий диск будет продолжать работать.

Добро пожаловать, или Посторонним вход воспрещен

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

Для доступа к ядру можно использовать режим DMA (Direct Memory Access). Это такой режим, когда обмен данных происходит непосредственно с головки считывания в память, без активного участия процессора. То же самое относится и к SATA-порту: процессору нужно только указать, где данные, и логика DMA позаботится о чтении информации непосредственно из памяти.

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

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

Однако было бы сложно модернизировать код из-за неизвестного алгоритма сжатия, вместо этого можно просто изменить адрес выполнения и добавить специальный блок, который будет прочитан раньше остальных. Это делает положение дел немного проще.

В результате своего исследования Джероен создал инструмент fwtool, который может сбрасывать различные блоки во флеше и переводить код в текстовый файл. Затем можно изменить, удалить или добавить блок и вновь собрать все в одном файле прошивки, который потом спокойно загрузить во флеш.

Меняем прошивку

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

У компании Western Digital есть специальные программные утилиты для работы с жестким диском - это инструменты, работающие под DOS, которые могут загрузить новую прошивку контроллера, микросхемы флеш-памяти или сервисного раздела. Инструменты используют так называемые Vendor Specific Commands (VSC), впрочем, об этом чуть позже.

Также есть набор инструментов под названием idle3-tools , которые можно взять на вооружение для модификации прошивки жесткого диска. Он также использует VSC, применяя Linux SCSI PassThrough IOCTLs. Джероен взял этот код, изменил его и интегрировал в fwtool. После этой модификации fwtool научился читать и писать на микросхему флеш-памяти.

Теперь если хакер каким-то образом сможет воспользоваться fwtool на удаленной машине, то получит возможность сбросить флеш-память диска, изменить ее и «зашить» обратно. Правда, в конце концов владелец узнает о взломе и, вероятно, переустановит систему, но злоумышленник может внедрить что-нибудь, что проявит себя и после переустановки. Например, подождать, пока машина зачитывает из файла /etc/shadow/ , где хранятся все пароли в системах UNIX/Linux, и изменить содержимое. После чего можно будет просто войти под своим паролем.

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

INFO

Терминальный режим жесткого диска

При работе в терминальном режиме пользователь может взаимодействовать с жестким диском посредством диагностических команд. Этот метод применяется для диагностики и ремонта накопителей Seagate и Toshiba, в Western Digital такая возможность отсутствует из-за сложности подключения. Терминальный режим фактически предоставляет полный root - управление механикой и логикой устройства. С его помощью можно также обновить или перезагрузить прошивку винчестера. Список команд для большинства накопителей можно посмотреть в интернете. А на плате жесткого диска имеется специальный разъем для подключения через последовательный порт.


Для доступа в терминальный режим понадобится устройство-адаптер, необходимое для преобразования уровней сигналов RS-232 в уровни TTL (такие адаптеры имеются в продаже, но можно собрать и самому - все необходимые схемы находятся в свободном доступе, а в качестве основы можно взять некоторые модели Arduino). Мы же возьмем готовый чип FTDI, который преобразует USB в последовательный интерфейс для микроконтроллера Atmega. Нужно соединить GND и RESET, а для подключения использовать контакты RX и TX.


Для работы с COM-портом используем любую понравившуюся программу - например, PuTTY или Hiperterminal. Выбираем тип подключения, вводим номер COM-порта и другие настройки:

Speed: 9600 Data Bits: 8 Stop Bits: 1 Parity: None Flow Control: None

Для проверки работоспособности схемы нужно замкнуть RX и TX между собой. В результате все набираемые символы отобразятся в двойном количестве. Это происходит из-за того, что введенные данные будут передаваться по линии TX, а затем они же вернутся по линии RX. Делается это так: отключив SATA-кабель, соединяем выход TX диска с входом RX адаптера, и наоборот - RX адаптера с TX диска. Подключаем питание. После нажатия клавиш , получаем приглашение Т> (или F> для неисправных HDD) и вводим команды. Для получения списка команд вводим /C , а затем Q.

Из-за большого количества команд инженеры Seagate разделили их структуру на уровни. Такие команды, как чтение, запись, поиск, лог ошибок, доступны сразу на нескольких различных уровнях. Чтобы переключить жесткий диск для работы на другом уровне, надо воспользоваться командой /x .

Уровень Т - сертификационные испытания. Уровень 1 - команды управления памятью. Уровень 2 - команды настройки механики привода. Уровень 3 - поисковые команды. Уровень 4 - команды слежения серводвигателя. Уровень 5 - используется только в заводских условиях. Уровень 6 - адаптивные команды управления. Уровень 8 - специальные команды настройки записи. Уровень 9 - команды режима системы контроля дефектов.

Кроме этих девяти уровней, есть еще два дополнительных набора команд: сетевые и общие. Основной целью сетевых команд является отображение изменения текущего состояния системы. Общие команды используются для доступа к регистрам, буферной памяти и данным.

Вообще, терминальный режим предоставляет много интересных возможностей. Например, команда низкоуровневого форматирования может не только снести данные подчистую без возможности восстановления, также, если во время форматирования кто-нибудь отключит питание, винчестер сможет сам «доформатироваться» при первом же его включении. В общем, это тема, достойная отдельной статьи. Мы же движемся дальше.

Запись информации в сервисные разделы HDD

В любом жестком диске присутствуют сервисные разделы. Они предназначены для хранения служебных программ винчестера, таких как S.M.A.R.T., модули раннего обнаружения ошибок, модули самодиагностики и так далее. К счастью, все эти данные не занимают выделенное место полностью, а значит, при правильном подходе мы можем использовать это бонусное пространство. Сервисные разделы не следует путать с DCO или HPA, которые могут быть легко обнаружены и доступны через стандартные ATA-команды.

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

Для доступа к информации из сервисных разделов не подойдут стандартные ATA-команды, вместо этого для записи и чтения используются специальные команды VSC (Vendor Specific Commands). Как правило, производители держат в секрете эти команды, но порой выпускают утилиты для работы с сервисными разделами - например, программа wdidle3.exe от компании Western Digital и ее опенсорсный аналог idle3-tools. Еще один пример для WD - программа HDDHackr, меняющая записи в системных разделах HD.

WARNING

Данные в сервисных разделах очень важны для правильной работы винчестера. Повреждение записанной информации ведет к потере работоспособности диска. Восстановить ее будет не так уж и просто - для перезаписи данных в сервисных разделах понадобятся специализированные программы (например, Ace Laboratory PC3000).

Объем сервисного раздела зависит от модели винчестера. Например, в диске WD2500KS-00MJB0 семейства Hawk объемом 250 Гб (прошивка 02AEC) в сервисный раздел записывается две копии файлов, около 6 Мб каждая. Размер зоны на каждой поверхности составляет около 23 Mб (64 трека по 720 секторов на каждом). Поскольку этот диск имеет шесть поверхностей (головки от 0 до 5), модули сервисных разделов располагаются на месте, сопоставленном с головками 0 и 1, а место, закрепленное за головками со 2 по 5, зарезервировано, но не используется. Таким образом, зарезервированный раздел занимает около 141 Мб, из которых 12 Мб находится в использовании.

Для сравнения: модель WD10EACS-00ZJB0, емкостью в терабайт и с восемью поверхностями, имеет зарезервированное пространство 450 Мб, из которых занято 52 Мб. Ариэль Беркман (Ariel Berkman) из компании Recover Information Technologies LTD написал статью о работе с сервисными отделами HDD, а также выложил PoC-код для записи 94 Мб информации в сервисный отдел диска Western Digital 250GB Hawk. Делается это следующим образом:

  • Узнаем свой SATA IO адрес, используя lspci -v .
  • Для компиляции используем команду gcc -Wall -O -g -o SA-cover-poc SA-cover-poc.c .
  • Создаем рандомный файл (94 Мб в размере) и вычисляем его MD5-хеш.
  • Записываем файл в сервисный раздел.
  • Очищаем винчестер с помощью команды dd-ing /dev/zero , которую следует распространить на весь жесткий диск (или на отдельную часть, предварительно заблокировав доступ к остальному). Достаточно один раз прогнать этот код, чтобы уничтожить данные безвозвратно.
  • Читаем содержимое сервисного раздела, вычисляем его хеш и убеждаемся в целостности данных. [email protected]:~/SA# dd if=/dev/urandom count=184320 > random-file ; md5sum random-file [email protected]:~/SA# ./SA-cover-poc -p 0x0170 -w ./random-file [email protected]:~# dd if=/dev/zero of=/dev/sdb bs=1M [email protected]:~/SA# ./SA-cover-poc -p 0x0170 -r after-dding-dev-zero [email protected]:~/SA# md5sum after-dding-dev-zero

Программы для восстановления HDD

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

  1. TestDisk - самая простая и эффективная программа для восстановления HDD. Предназначена для поиска и реконструкции потерянных разделов, загрузочного сектора, удаленных файлов; исправляет таблицу разделов. Работает с большим количеством файловых систем. Работает в консольном режиме, чем достигается высокая скорость.
  2. Acronis Disk Director - целый программный пакет, в который включено немалое количество инструментов для работы с HDD. Содержит в себе утилиту Acronis Recovery Expert, которая служит для реконструкции файлов и разделов. В отличие от предыдущей программы имеет графический интерфейс, но работает с меньшим количеством файловых систем.
  3. Paragon Partition Manager - бесплатная программа от отечественных разработчиков, умеет почти все то же самое, что и Acronis, но ужасно медленная.

Заключение

Однако настало время закругляться. В этой статье я попытался показать неизведанные уголки и возможности жесткого диска. Не углубляясь в код, мы рассмотрели способ слива информации с накопителя. Если даже слегка приподнять этот занавес, открывается огромное поле для полета фантазии. Можно, например, перепрошить контроллер, чтобы скрыть от посторонних глаз особо важный раздел. Или портить данные при попытке клонировать жесткий диск, обезопасив себя таким образом от криминалистических утилит. Одним словом, вариантов много, так что каким образом использовать жесткий диск - выбор за тобой.

Что называют жестким диском?

Большинство пользователей ПК, наверняка слышали понятие “жесткий диск” (он же винчестер, hard drive или disk drive). Иногда, совместно с данным понятием идет фраза “прошивка жесткого диска”. Давайте более детально разберемся, что же это такое.

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

Принцип работы жесткого диска схож с принципом работы проигрывателя виниловой пластики. Но, в отличие от проигрывателя, считывающая головка не касается диска с информацией, а получает данные, находясь на расстоянии нескольких нанометров от носителя. Да и внешне винчестер имеет сходство с обычным CD-диском или пластинкой, представляя собой круглые пластины, покрытые слоем ферромагнитного материала.

Жесткий диск - это устройство для накопления и хранения информации, используемое в компьютерах и ноутбуках. Внешне выглядит как несколько расположенных друг на друге CD-дисков, которые вращаются на одной оси.

Основные технические характеристики HDD

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

Можно выделить несколько базовых характеристик, которые помогут сформировать общее представление о параметрах винчестеров.

Первая характеристика - размер. Чаще всего это 2,5 и 3,5 дюйма в ширину. При этом, на жесткий диск 3,5 дюйма можно записать большее количество информации. Оборудуют таковыми преимущественно стационарные компьютеры, а винчестеры меньших размеров устанавливают на ноутбуки - они легче и потребляют меньшее количесство энергии.

Второе - толщина жесткого диска. Варьируется этот показатель от 7 до 12,5 мм.

Естественно, чем больше толщина винчестера, тем больше информации он может на себя вместить. При этом стандартная толщина жесткого диска в ноутбуке - 9,5 мм.

Третий фактор - скорость вращения. Здесь все просто: чем больше скорость вращения, тем выше производительность компьютера.

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

Более медленные модели дисков вращаются со скоростью 5200 - 5900 оборотов в минуту. Их преимуществом являться тишина при работе и низкая степень нагрева.

Количество памяти жесткого диска - это четвертая характеристика, на которую следует обратить особое внимание при выборе изделия. В стандартном ноутбуке винчестер размером 2,5 дюйма и толщиной в 9,5 мм обладает памятью в 1 терабайт. Для большинства задач этого вполне хватает. Что касается стационарных компьютеров, до диски шириной 3,5 дюйма и толщиной 12,5 мм могут хранить до 4 Тбайт информации.

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

Причины неисправной работы жестких дисков


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

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

Чтоб продлить срок службы винчестера, а следовательно сохранить все ваши данные, позаботьтесь о правильной эксплуатации устройства. Если имеются проблемы с напряжением - подключите бесперебойник, а при транспортировке используйте специальные сумки для ноутбуков, дабы защитить машину от ударов и повреждений.

Пошаговое руководство при прошивке жесткого диска

Если ваш компьютер стал подтормаживать, виснуть, появились посторонний шумы или компьютер стал сильно греться - не стоит впадать в панику. Если переустановка операционной системы не принесла положительных результатов, причина, скорее всего в жестком диске. Он нуждается в соответствующей перепрошивке. В сети существует много программ, которые могут с этим справиться. Для их поиска, в поисковом окне браузера следует указать фразу «прошивка жесткого диска» , и нажать кнопку «Искать» .

В самой установке программ нет абсолютно никакой сложности - они полностью автоматические. Поэтому справиться с ними сможет даже начинающий пользователь.

Однако следует учесть некоторые моменты.

Шаг 1. Найдите серийный номер вашего жесткого диска и воспользуйтесь программой проверки серийного номера, расположенной на главной странице оф.сайта. Для этого ведите номер в открывшемся диалоговом окне и запустите проверку.

Шаг 2. Дождитесь, пока завершится проверка. Фраза Drive is not affected означает, что ваш жесткий диск в порядке и в перепрошивке не нуждается; если этого нет, то выполняем шаг 3.

Шаг 3. Сохраните все ваши данные с устройства, с которым вы намерены работать на независимый носитель. Это может быть внешний жесткий диск.

Шаг 4. Создайте образ программы для перепрошивки на внешнем носителе типа «флешки» и сделайте загрузку через него. Программа предложит прошить жесткий диск в вариантах А/В/С. Выберите букву, что соответствует вашему устройству.

Шаг 5. Попав в главное меню программы, выбираем номер своего жесткого диска. Ждем. Процесс прошивки запущен.

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

Шаг 6. Пока происходит перепрошивка диска, компьютер нельзя перезагружать либо отключать от сети. Сигналом окончания работы будет самостоятельная перезагрузка компьютера, либо появится надпись “Нажмите любую клавишу”.

Шаг 7. Завершите работу с утилитой и наслаждайтесь работой обновленного винчестера.

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

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

Допустим, вы сделали прошивку HDD самостоятельно. Рассмотрим, какие проблемы могут возникнуть:

  • накопитель не загружается или не распознается;
  • в БИОСе отображается неверная модель носителя;
  • емкость винчестера отображается неправильно.

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


Подробно о том, как прошить HDD Seagate без помощи сервисного центра

Сегодняшняя тема в нашей виртуальной школе - это чисто технический вопрос. Разберемся, как прошить HDD Seagate. Для новичков в этих вопросах отметим, что речь идет о переустановке микропрограммы для жесткие диски фирмы Seagate, так называемой прошивки.

Что такое «прошивка»?

Во многим технических и сервисных центрах достаточно часто говорится и пишется о возможности новой прошивки или перепрошивки устройств. В большинстве случаев это касается персональных embedded-устройств с встроенной операционной системой, иными словами - о мобильных телефонах, смартфонах и планшетах. А вот, как прошить HDD Seagate бесплатно, технари не спешат сообщать.

Чтобы объяснить, что такое прошивка начинающим, обратимся к истории. Протоверсия архитектуры компьютеров появилась на 100 лет раньше, чем мы считаем. Это произошло в промежутке с 1820 по 1840 год в период, когда составлялись первые логарифмические и тригонометрические таблицы методом интерполяции или так называемых «конечных разностей». Несмотря на то, ранее первые автоматические вычисления делались примитивными машинами Лейбница, Паскаля, Шиккарда, полноценным механическим устройством для автоматического счета можно считать машину Чарльза Бэббиджа.

В 1930-х годах архитектура Бэббиджа заинтересовала американского ученого Говарда Эйкена, который вместе с IBM создал один из первых электромеханических компьютеров Гарвардский Марк 1. Эта машина стала прототипом современных вычислительных устройств, а также базой для так называемой высокопроизводительной Гарвардской архитектуры. В 1940х годах за счет высокой сложности и дороговизны в качестве мейнстрима была принята немного видоизмененная и более экономная архитектура фон Неймана.

В этот период компьютеры и периферийные устройства разных фирм были абсолютно не совместимы. Характеризовались несовместимостью и программы. Иными словами до 1960х годов все программы, комплектующие и устройства не были кроссплатформенными. Ситуация в корне изменилась с разработкой архитектуры IBM System/360 в 1964 году. Маркировка “360” обозначала полную совместимость нового компьютера, как программную, так и аппаратную. Это было решено с помощью введения понятия «интерфейса», который, в свою очередь, мог быть как программным, так и аппаратным. К аппаратным интерфейсам относятся всем известные шины PCI или более современные PCI Express. В качестве аппаратного интерфейса для жесткого диска использовались стандарты: ранний IDE или ATA, далее SATA, SATA I, SATA II и SATA III и так далее, вплоть до Firmware, USB и Thunderbolt. Для программной совместимости использовалось специальное микро приложение, которая может быть рассчитана на разные интерфейсы подключения жесткого диска и функциональные особенности. Именно эта микропрограмма и называется «прошивкой» и относится к программному обеспечению уровня Hardware. И если вы хотите, чтобы ваш диск работал максимально быстро и корректно, следует постоянно обновлять низкоуровневое программное обеспечение, предоставляемое производителем. Прошивка обычно доступна бесплатно. Об обновлениях и новых версиях микропрограммного обеспечения на диски Seagate можно узнать, используя приложение Download Finder.

Драйверы, «прошивка»: влияние на производительность Разберемся, в чем отличия микропрограммы от драйвера. Драйвер представляет собой модули ядра, то есть обеспечивает функциональность устройства. «Прошивка» - это более широкое понятие, включающее в себя ядро, модули ядра (драйвер), процесс-демон, с помощью которого программа работает на компьютере в фоновом режиме, а также скрипты инициализации.

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

Прошивка: соблюдайте инструкцию

Переходим непосредственно к вопросу, как прошить HDD Seagate. Для этого нужно перейти на сайт с обновлениями http://knowledge.seagate.com/ и по поиску найти свой диск. Чтобы узнать, какая микропрограмма подходит для вашего HDD. Для получения информации об установленном диске, можно воспользоваться ПО Drive Detect.

На странице обновлений будут указаны модели и версии микропрограмм. С правой стороны таблицы в столбце «Файлы микропрограммы для загрузки» находятся ссылки на файлы инсталляции и документацию по установке прошивки. В качестве примера приведем страницу обновлений для Barracuda (1TB/disk platform): http://knowledge.seagate.com/articles/ru/FAQ/223651ru.

Обратите внимание, что нужно дотошно соблюдать инструкции, ошибки могут привести к повреждению данных, а также выходу из строя жесткого диска. Гарантия Seagate не распространяется на ваши файлы, а только на продукт, согласно времени действия гарантии. За более точной информацией вам надо обратиться к гарантийной документации, полученной в момент покупки. Также перед обновлением микропрограммы рекомендуем сделать резервное копирование с помощью бесплатного программного обеспечения DiscWizard Seagate или просто сохранить файлы на отдельном жестком диске. Также отметим, что приобретенные HDD-диски Seagate имеют ограниченное право на обновление прошивки, подробную информацию об этом можно узнать по ссылке на странице инструкции.

Как обновить прошивку жесткого диска Seagate поэтапно:

  1. После запуска программы инициализации потребуется выбрать язык установки: в нашем случае русский.
  2. На экране приветствия будут выведены поддерживаемые продукты и номер устанавливаемой версии прошивки.
  3. На следующем этапе программа предупреждает о риске потери данных и предлагает варианты по резервному копированию.
  4. На четвертом шаге пользователь должен согласиться с лицензионным соглашением.
  5. На пятом шаге файл инициализации дает важные предупреждения, например: - программа не рассчитана для обновлений RAID-систем; - во время инсталляции нельзя выключать компьютер (следует исключить аварийное отключение).
  6. А также: - прервите программу, если вы не сохранили важные данные; - сохраните все открытые файлы; - закройте все приложения; - отсоедините все внешние хранилища. Программа также сообщает, что нельзя выключать компьютер и вмешиваться в процесс инсталляции прошивки. Для продолжения потребуется поставить галочку напротив «Начать процесс апдейта прошивки».
  7. Если вы нажмете «Продолжить», система Windows OS будет перегружена, после вы увидите на экране сообщение «Seagate Загрузка». Данную процедуру нельзя прерывать.
  8. В формате Dos в командной строке приложение будет выводить информацию отекущем выполняемом процессе. На восьмом шаге утилита SeaTools Express просканирует все диски и отобразит номер модели, её серийный номер, а также установленную версию микропрограммы для каждого HDD.
  9. На следующем шаге утилита обновления загрузит новую прошивку и автоматически установит ее. Процесс загрузки и установки занимает несколько минут. После окончания программа перезагрузит систему. Если же по какой-то причине этого не случилось, это нужно сделать в ручном режиме. Также обратите внимание. Если утилита определила, что обновление не может быть установлено ни для одного из имеющихся дисков, она завершит программу и произведет перезагрузку в Windows. При этом выдаст одно из перечисленных сообщений об ошибке, при установке на английском это может выглядеть так: - «Firmware already updated» - программа уже обновлена; - «Model matched, no firmware matched» - модель соответствует, но несовместима версия прошивки; - «No model matched» - модель не соответствует. Как видно, при нормальной загрузке программа должна корректно проверить информацию о диске и прошивке и вернуться в систему, не повредив данные. В некоторых случаях могут быть непредвиденные ситуации, при которых нельзя гарантировать исправность диска и/или сохранение личных файлов. Именно поэтому рекомендуется резервное копирование.

Заключение

http://knowledge.seagate.com/articles/ru/FAQ/223651ru; - Barracuda 7200.12: http://knowledge.seagate.com/articles/ru/FAQ/223651ru; - Barracuda LP: http://knowledge.seagate.com/articles/ru/FAQ/213915ru; - Barracuda Green: http://knowledge.seagate.com/articles/ru/FAQ/218171ru; - Barracuda 7200.11: http://knowledge.seagate.com/articles/ru/FAQ/207951ru; - Barracuda ES.2 (SATA): http://knowledge.seagate.com/articles/ru/FAQ/207963ru; - DiamondMax 22: http://knowledge.seagate.com/articles/ru/FAQ/207969ru.

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

ruinfocomp.ru

Как правильно прошить или HDD WD - простая инструкция

Как прошить HDD WD?

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

Так как прошить HDD WD?

С целью получить доступ к ядру, мы можем задействовать режим, когда обмен данными между устройством и основной памятью происходит без участия ЦПУ (Direct Memory Access) – это будет необходимо для того, чтобы перепрошить HDD WD. Местом, где хранятся служебные данные, в данном случае будет кэш жёсткого диска из-за возможности скоростного доступа – прочитанная с HDD информации будет там, поэтому к ней возможно будет получить незамедлительный доступ, а потом скопировать её.

Но метод непростой – не особо комфортно постоянно “коннектиться” с помощью JTAG и что-то искать в кэше. Для упрощения процесса без использования дополнительных устройств существует возможность изменить прошивку в микросхеме флэш-памяти путём пайки и подключения программатора. К счастью, есть более простой способ.

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

Меняем прошивку HDD WD?

Вышеописанные методы не являются простыми и требуют произвести множество телодвижений. По этой причине хочется найти более доступный способ перепрошивки жёсткого диска WD, без механического вмешательства. Для HDD от Western Digital имеются программные пакеты для решения подобных задач – они работают из командной строки и с помощью них можно перепрошить контроллер или редактировать ячейки во флэш-памяти. Ещё есть комплект утилит, который называется idle3-tools, с помощью которого модифицируется flash HDD, весь этот функционал доступен теперь и в fwtool, благодаря нему есть возможность переписывать данные на микросхеме флэш- памяти.

Воспользовавшись утилитой fwtool, можно редактировать флэш-память винчестера, а вовремя считав информацию оттуда – есть шанс получить данные учётных записей, если к примеру машина находится под управлением Linux/Unix. Описанный способ можно использовать и в целях защиты от подобного варианта взлома – для этого нужно будет создать не клонируемый раздел HDD c случайным шаблоном доступа секторов. В случае исключительно последовательной работы при попытке доступа данные будут повреждены. Для взаимодействия с накопителем с помощью команд диагностики, необходимо переключиться в режим терминала. Данный режим создан с целью предупреждения неисправностей и их исправления в винчестерах разных производителей, а вот в WD подобного режима нет.

Работа с сервисным разделом HDD

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

Сервисный раздел – самое надёжное место для хранения конфиденциальной информации, к ней едва ли смогут получить доступ сотрудники правоохранительных органов, так что здесь можно хранить текстовые документы с логинами и паролями от всего. Для получения доступа к этому потайному хранилищу в HDD Western Digital можно использовать утилиту wdidle3.exe или альтернативную свободно распространяемую idle3-tool.exe. Также есть программный пакет HDDHackr для редактирования записей в таких разделах. ПРЕДУПРЕЖДЕНИЕ! Информация, которая присутствует на сервисном разделе, необходима для нормального функционирования жёсткого диска. Уничтожив или повредив важные данные, вы рискуете вывести ваш накопитель из строя, а процесс восстановления получается не из простых – в нём задействуется утилита Ace Laboratory PC3000. Размер сервисного раздела у различных моделей HDD отличается, нужно иметь это в виду.

ruinfocomp.ru

Расширяем стандартные возможности жесткого диска - «Хакер»

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

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

Конструкция винчестера в какой-то степени наверняка известна каждому. По сути, это несколько пластин, которые вращаются со скоростью 15 000 об/мин, устройство позиционирования и блок управляющей электроники. Добавим к этому систему самоконтроля S.M.A.R.T. и другие интеллектуальные атрибуты. Короче, без пол-литра не разберешься, тем более технология отдельных элементов составляет коммерческую тайну.

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


Рис. 1. Плата жесткого диска

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

Итак, перед нами плата типичного жесткого диска Western Digital WD5000AAKX объемом в 500 Гб (рис. 1). Что мы имеем:

  1. Микросхема DRAM. Интереса как такового не представляет, мануал легко можно найти в Сети. Память этих чипов колеблется от 8 до 64 Мб и соответствуют размеру кеша жесткого диска.
  2. Контроллер двигателя шпинделя. Отвечает за управление механикой, регулирует мощность и имеет некоторые аналоговые/цифровые каналы. На чип Smooth L7251 3.1 мануалы отсутствуют, но можно попробовать поискать похожие микросхемы.
  3. Флеш-память. На некоторых винчестерах микросхема отсутствует, но флеш-память бывает встроена в чип контроллера диска. Обычно имеет размер в пределах от 64 до 256 Кб. Используется для хранения программы, от которой загружается контроллер жесткого диска.
  4. И самая любопытная для нас вещь - контроллер жесткого диска. Их производят компании Marvell, ST, LSI и другие. Некоторые компании, производящие винчестеры, делают свои собственные контроллеры, как, например, Samsung и Western Digital.

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

Наш зарубежный коллега Джероен «Sprite_tm» Домбург нашел интересный выход из данной ситуации - для исследования контроллера он использовал интерфейс JTAG (от англ. Joint Test Action Group). Этот интерфейс предназначен для тестирования и отладки печатных плат. То есть с помощью JTAG мы можем спокойно подключиться к интересующему нас устройству, поддерживающему стандарт IEEE 1149. В микросхему интегрируется порт тестирования (TAP - Test Access Port), состоящий из четырех или пяти выводов: TDI, TDO, TMS, TCK и, возможно, TRST. Расположение этих выводов для контроллера Marvell нашел некий dex, любезно поделившийся результатами на форуме HDDGURU.

Джероен выяснил, что у контроллеров Western Digital есть ARM-ядро, доступное через JTAG-порт. А также последовательный порт, который обычно не используется, но может быть полезен для наших целей.

Для исследования контроллера жесткого диска использовалась плата FT2232H, которую можно заказать в интернете за 30 евро. Она поддерживает JTAG, связь через последовательный порт, а также SPI. Для работы с ней использовалась программа OpenOCD.

В результате оказалось, что у микросхемы есть целых три ядра. Два Feroceon, которые являются довольно сильными ARM9-подобными ядрами, и Cortex-M3, которое немного слабее. У всех ядер разное предназначение:

  • Feroceon 1 обрабатывает физические чтение/запись на жесткий диск;
  • Feroceon 2 -обрабатывает SATA-интерфейс, кеш и преобразует LBA в CHS;
  • Cortex-M3 - предназначение неизвестно. Можно просто остановить его, но жесткий диск будет продолжать работать.

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

Для доступа к ядру можно использовать режим DMA (Direct Memory Access). Это такой режим, когда обмен данных происходит непосредственно с головки считывания в память, без активного участия процессора. То же самое относится и к SATA-порту: процессору нужно только указать, где данные, и логика DMA позаботится о чтении информации непосредственно из памяти.

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

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

Однако было бы сложно модернизировать код из-за неизвестного алгоритма сжатия, вместо этого можно просто изменить адрес выполнения и добавить специальный блок, который будет прочитан раньше остальных. Это делает положение дел немного проще.

В результате своего исследования Джероен создал инструмент fwtool, который может сбрасывать различные блоки во флеше и переводить код в текстовый файл. Затем можно изменить, удалить или добавить блок и вновь собрать все в одном файле прошивки, который потом спокойно загрузить во флеш.

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

У компании Western Digital есть специальные программные утилиты для работы с жестким диском - это инструменты, работающие под DOS, которые могут загрузить новую прошивку контроллера, микросхемы флеш-памяти или сервисного раздела. Инструменты используют так называемые Vendor Specific Commands (VSC), впрочем, об этом чуть позже.

Также есть набор инструментов под названием idle3-tools, которые можно взять на вооружение для модификации прошивки жесткого диска. Он также использует VSC, применяя Linux SCSI PassThrough IOCTLs. Джероен взял этот код, изменил его и интегрировал в fwtool. После этой модификации fwtool научился читать и писать на микросхему флеш-памяти.

Теперь если хакер каким-то образом сможет воспользоваться fwtool на удаленной машине, то получит возможность сбросить флеш-память диска, изменить ее и «зашить» обратно. Правда, в конце концов владелец узнает о взломе и, вероятно, переустановит систему, но злоумышленник может внедрить что-нибудь, что проявит себя и после переустановки. Например, подождать, пока машина зачитывает из файла /etc/shadow/, где хранятся все пароли в системах UNIX/Linux, и изменить содержимое. После чего можно будет просто войти под своим паролем.

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

При работе в терминальном режиме пользователь может взаимодействовать с жестким диском посредством диагностических команд. Этот метод применяется для диагностики и ремонта накопителей Seagate и Toshiba, в Western Digital такая возможность отсутствует из-за сложности подключения. Терминальный режим фактически предоставляет полный root - управление механикой и логикой устройства. С его помощью можно также обновить или перезагрузить прошивку винчестера. Список команд для большинства накопителей можно посмотреть в интернете. А на плате жесткого диска имеется специальный разъем для подключения через последовательный порт.

Рис. 2. Разъем для подключения через последовательный порт. Одной тайной меньше

Для доступа в терминальный режим понадобится устройство-адаптер, необходимое для преобразования уровней сигналов RS-232 в уровни TTL (такие адаптеры имеются в продаже, но можно собрать и самому - все необходимые схемы находятся в свободном доступе, а в качестве основы можно взять некоторые модели Arduino). Мы же возьмем готовый чип FTDI, который преобразует USB в последовательный интерфейс для микроконтроллера Atmega. Нужно соединить GND и RESET, а для подключения использовать контакты RX и TX.


Рис. 3. Arduino Nano в качестве адаптера

Для работы с COM-портом используем любую понравившуюся программу - например, PuTTY или Hiperterminal. Выбираем тип подключения, вводим номер COM-порта и другие настройки:

Speed: 9600 Data Bits: 8 Stop Bits: 1 Parity: None Flow Control: None
Рис. 4. Окно настроек PuTTY

Для проверки работоспособности схемы нужно замкнуть RX и TX между собой. В результате все набираемые символы отобразятся в двойном количестве. Это происходит из-за того, что введенные данные будут передаваться по линии TX, а затем они же вернутся по линии RX. Делается это так: отключив SATA-кабель, соединяем выход TX диска с входом RX адаптера, и наоборот - RX адаптера с TX диска. Подключаем питание. После нажатия клавиш, получаем приглашение Т> (или F> для неисправных HDD) и вводим команды. Для получения списка команд вводим /C, а затем Q.

Из-за большого количества команд инженеры Seagate разделили их структуру на уровни. Такие команды, как чтение, запись, поиск, лог ошибок, доступны сразу на нескольких различных уровнях. Чтобы переключить жесткий диск для работы на другом уровне, надо воспользоваться командой /x.

Уровень Т - сертификационные испытания. Уровень 1 - команды управления памятью. Уровень 2 - команды настройки механики привода. Уровень 3 - поисковые команды. Уровень 4 - команды слежения серводвигателя. Уровень 5 - используется только в заводских условиях. Уровень 6 - адаптивные команды управления. Уровень 8 - специальные команды настройки записи. Уровень 9 - команды режима системы контроля дефектов.
Рис. 5. Обнуление S.M.A.R.T.

Кроме этих девяти уровней, есть еще два дополнительных набора команд: сетевые и общие. Основной целью сетевых команд является отображение изменения текущего состояния системы. Общие команды используются для доступа к регистрам, буферной памяти и данным.

Вообще, терминальный режим предоставляет много интересных возможностей. Например, команда низкоуровневого форматирования может не только снести данные подчистую без возможности восстановления, также, если во время форматирования кто-нибудь отключит питание, винчестер сможет сам «доформатироваться» при первом же его включении. В общем, это тема, достойная отдельной статьи. Мы же движемся дальше.

В любом жестком диске присутствуют сервисные разделы. Они предназначены для хранения служебных программ винчестера, таких как S.M.A.R.T., модули раннего обнаружения ошибок, модули самодиагностики и так далее. К счастью, все эти данные не занимают выделенное место полностью, а значит, при правильном подходе мы можем использовать это бонусное пространство. Сервисные разделы не следует путать с DCO или HPA, которые могут быть легко обнаружены и доступны через стандартные ATA-команды.

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

Для доступа к информации из сервисных разделов не подойдут стандартные ATA-команды, вместо этого для записи и чтения используются специальные команды VSC (Vendor Specific Commands). Как правило, производители держат в секрете эти команды, но порой выпускают утилиты для работы с сервисными разделами - например, программа wdidle3.exe от компании Western Digital и ее опенсорсный аналог idle3-tools. Еще один пример для WD - программа HDDHackr, меняющая записи в системных разделах HD.

Данные в сервисных разделах очень важны для правильной работы винчестера. Повреждение записанной информации ведет к потере работоспособности диска. Восстановить ее будет не так уж и просто - для перезаписи данных в сервисных разделах понадобятся специализированные программы (например, Ace Laboratory PC3000).

Объем сервисного раздела зависит от модели винчестера. Например, в диске WD2500KS-00MJB0 семейства Hawk объемом 250 Гб (прошивка 02AEC) в сервисный раздел записывается две копии файлов, около 6 Мб каждая. Размер зоны на каждой поверхности составляет около 23 Mб (64 трека по 720 секторов на каждом). Поскольку этот диск имеет шесть поверхностей (головки от 0 до 5), модули сервисных разделов располагаются на месте, сопоставленном с головками 0 и 1, а место, закрепленное за головками со 2 по 5, зарезервировано, но не используется. Таким образом, зарезервированный раздел занимает около 141 Мб, из которых 12 Мб находится в использовании.

Для сравнения: модель WD10EACS-00ZJB0, емкостью в терабайт и с восемью поверхностями, имеет зарезервированное пространство 450 Мб, из которых занято 52 Мб. Ариэль Беркман (Ariel Berkman) из компании Recover Information Technologies LTD написал статью о работе с сервисными отделами HDD, а также выложил PoC-код для записи 94 Мб информации в сервисный отдел диска Western Digital 250GB Hawk. Делается это следующим образом:

  • Узнаем свой SATA IO адрес, используя lspci -v.
  • Для компиляции используем команду gcc -Wall -O -g -o SA-cover-poc SA-cover-poc.c.
  • Создаем рандомный файл (94 Мб в размере) и вычисляем его MD5-хеш.
  • Записываем файл в сервисный раздел.
  • Очищаем винчестер с помощью команды dd-ing /dev/zero, которую следует распространить на весь жесткий диск (или на отдельную часть, предварительно заблокировав доступ к остальному). Достаточно один раз прогнать этот код, чтобы уничтожить данные безвозвратно.
  • Читаем содержимое сервисного раздела, вычисляем его хеш и убеждаемся в целостности данных. :~/SA# dd if=/dev/urandom count=184320 > random-file ; md5sum random-file :~/SA# ./SA-cover-poc -p 0x0170 -w ./random-file :~# dd if=/dev/zero of=/dev/sdb bs=1M :~/SA# ./SA-cover-poc -p 0x0170 -r after-dding-dev-zero :~/SA# md5sum after-dding-dev-zero

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

  1. TestDisk - самая простая и эффективная программа для восстановления HDD. Предназначена для поиска и реконструкции потерянных разделов, загрузочного сектора, удаленных файлов; исправляет таблицу разделов. Работает с большим количеством файловых систем. Работает в консольном режиме, чем достигается высокая скорость.
  2. Acronis Disk Director - целый программный пакет, в который включено немалое количество инструментов для работы с HDD. Содержит в себе утилиту Acronis Recovery Expert, которая служит для реконструкции файлов и разделов. В отличие от предыдущей программы имеет графический интерфейс, но работает с меньшим количеством файловых систем.
  3. Paragon Partition Manager - бесплатная программа от отечественных разработчиков, умеет почти все то же самое, что и Acronis, но ужасно медленная.

Рис. 6. Восстанавливаем поврежденные разделы с помощью TestDisk

Однако настало время закругляться. В этой статье я попытался показать неизведанные уголки и возможности жесткого диска. Не углубляясь в код, мы рассмотрели способ слива информации с накопителя. Если даже слегка приподнять этот занавес, открывается огромное поле для полета фантазии. Можно, например, перепрошить контроллер, чтобы скрыть от посторонних глаз особо важный раздел. Или портить данные при попытке клонировать жесткий диск, обезопасив себя таким образом от криминалистических утилит. Одним словом, вариантов много, так что каким образом использовать жесткий диск - выбор за тобой.

xakep.ru

как перепрошить винчестер?

Страница 1 из 1

  • Вы не можете ответить в тему

Имею Seagate Barracuda 1,5 Тб, на котором уже второй раз слетает прошивка (диагноз ставили в мастерской). Подскажите, можно ли его перепрошить в домашних условиях? каким софтом и где почитать мануалы про это?

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

Оффтопик: благодаря вам я сегодня попал в будущее.

вобщем то на сайте Seagate и были раньше выложены прошивки для других моделей. Часто у них это что то.

Ноутбуки - зло.

Там может и с самой флешкой быть проблема...

Как её отдельно протестировать на запись-чтение?

Ростислав сказал:

Флеш память, на которую пишится сама прошивка (типа биоса у компа)?

Попытайтесь прошиться родной утилитой, если есть.

попытайтесь прошиться родной утилитой, если есть.

На сайте для моего номера выложен ЕХЕшник с прошивкой для винчестера. Комп сам пошел в ребут, на экране немного поплясали пингвины (привет линуксу?) , снова ребут и вуаля... Неотформатированный диск увидела винда. Форматнул, перенёс под 100 гектар фильмов и баиньки Утром включаюсь и неверю своим глазам - "неизвестный девайс на SАТА порте"

есть отличный шанс попрощаться с флешкой на жестком диске....

А кому не нравится-затянем потуже на шее!

Имею Seagate Barracuda 1,5 Тб, на котором уже второй раз слетает прошивка (диагноз ставили в мастерской).

В какой мастерской так сказали, если не секрет?

Подскажите, можно ли его перепрошить в домашних условиях? каким софтом и где почитать мануалы про это?

Firmware Updates for Seagate Products

Но не имея опыта Вы запросто можете его прибить совсем...

Ростислав сказал:

Флеш память, на которую пишится сама прошивка (типа биоса у компа)? Как её отдельно протестировать на запись-чтение?

Ну так, Вы его точно доломаете... Firmware Update обновляет не только флэшку на плате, но и оверлеи в служебной области винта...

Ростислав сказал:

на сайте для моего номера выложен ЕХЕшник с прошивкой для винчестера. Комп сам пошел в ребут, на экране немного поплясали пингвины (привет линуксу?) , снова ребут и вуаля... Неотформатированный диск увидела винда. Форматнул, перенёс под 100 гектар фильмов и баиньки Утром включаюсь и неверю своим глазам - "неизвестный девайс на SАТА порте" вот столько много букв и не о чем... в BIOS детектится? программой Victoria детектится?

Victoria 3.52 rus

Кстати картика какие производители винтов остались:

Алекс Блеквелл сказал:

Ответ на вопрос, что мы будем делать с Hitachi: мы не будем делать с ней ничего. Таково правило, которое для нас установило китайское министерство торговли. Мы должны сохранить две полностью независимые конкурирующие компании в течение, по меньшей мере, двух лет. Есть главная компания WD Corporation и есть две полностью независимые дочерние компании - WD и HGST. Нам в WD не позволено говорить с HGST ни о технологиях, ни о ценах, ни о чем вообще! Если бы вы работали в Hitachi, мне сейчас пришлось бы встать и уйти.

Восстановление информации. Профессиональный ремонт HDD, Симферополь

В BIOS детектится? программой Victoria детектится? BIOS - не видит. Victoria - не видит.

кажись ему совсем каюк

Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов Ничего не делается к лучшему © Борис Раушенбах Люди, люди - это самое главное. Люди дороже даже денег. © Ф.М. Достоевский Какой ты любопытный.

Да, этот метод был озвучен еще, кажется, в 2009м.

Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов Ничего не делается к лучшему © Борис Раушенбах Люди, люди - это самое главное. Люди дороже даже денег. © Ф.М. Достоевский Какой ты любопытный.

Теперь можно развлекаться. http://habrahabr.ru/post/140289/

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

(31 C)Too cold, do random seek (33 C)Too cold, do random seek (34 C)Too cold, do random seek (36 C)Too cold, do random seek (37 C)Too cold, do random seek (38 C)Too cold, do random seek (39 C)Too cold, do random seek (39 C)Too cold, do random seek (40 C)Too cold, do random seek (41 C)Too cold, do random seek (42 C)Too cold, do random seek (43 C)Too cold, do random seek Temp Diode 7B69 (43 C) Для прохождения очередного этапа теста необходимо было "разогреть" - минут 10 жужал, пока до 43С прогрелся. Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов Ничего не делается к лучшему © Борис Раушенбах Люди, люди - это самое главное. Люди дороже даже денег. © Ф.М. Достоевский Какой ты любопытный.

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

Еще лучшим решением является отказ от включения компьютера

Восстановление информации. Профессиональный ремонт HDD, Симферополь

Страница 1 из 1

  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

simferopol.in

«Воскрешаем» HDD

Конвертер

Конвертер можно купить (в продаже есть USB-TTL и COM-TTL) или сделать самому (привожу несколько схем ниже).

Для тех, у кого есть Arduino: соединяем GND и RESET, используем контакты RX и TX.


Для проверки схемы можно замкнуть RX и TX, - в результате все, что мы введем, должно вернуться.

Подключение

Подключаем RX и TX, как на рисунке ниже, отключаем SATA-кабель, подключаем питание.

Для работы с COM-портом я использовал PuTTY, с задачей также отлично справится ваша любимая программа. Итак, открываем PuTTY, выбираем тип подключения Serial, вводим порт и остальные настройки:

Speed 38400
Data Bits 8
Stop Bits 1
Parity None
Flow Control None
Открываем окно терминала, нажимаем Ctrl+Z и видим приглашение: F3 T> Чтобы увидеть список команд и описание к ним для вашего жесткого диска, необходимо ввести /C, а затем Q.

Восстановление

Пришло время приступить к восстановлению.

Важно: соблюдайте регистр при вводе команд!

  1. Перейдем на уровень 1, введя /1
  2. Очистим S.M.A.R.T. командой N1
  3. Выключаем питанием и ждем, когда остановится двигатель (~10 сек)
  4. Включаем питание и снова нажимаем Ctrl+Z
  5. Очищаем список bad-блоков: вводим i4,1,22
  6. Повторяем пункты 3-4
  7. Вводим в консоли: m0,2,2,0,0,0,0,22 (для жестких дисков «Made in China» - m0,2,2,22)
  8. Переходим на уровень 2: /2
  9. Останавливаем двигатель: вводим Z
  10. Выключаем питание
После всех манипуляций жесткий диск стал определяться в BIOS. Чтобы не столкнуться с проблемой снова, обновите ПО у винчестера. Эта процедура совсем проста: с сайта производителя скачивается загрузочный образ, который записывается на болванку. Далее - загрузка и обновление прошивки в пошаговом режиме, просто следуйте инструкциям на экране. Сейчас я описал ситуацию, когда все работает, как надо, но так получается редко. В процессе восстановления возникло несколько трудностей, с которыми, я уверен, вам тоже предстоит столкнуться. Поэтому, все у кого что-то не получилось, ищите решение в последнем разделе этой статьи.

О том, что осталось за кадром

Поскольку эта статья - результат собственных экспериментов, основаных на различных материалах по восстановлению HDD, далее я опишу те проблемы, с которыми столкнулся сам.
Проблема Решение
Шум в консоли Подключите контакт GND к «земле» на блоке питания. Я использовал провод от клавиши включения. Также вытяните джампер SATA I из жесткого диска.
На экране после нажатия Ctrl+Z ничего не появляется Скорее всего, неправильно подключены RX и TX.
При первом включении появляется ошибка LED:000000CC FAddr:0025BF67 или LED:000000CC FAddr:0024A7E5 Сначала попробуем отключить головки. Для этого откручиваем плату (заодно можно и почистить контакты ластиком: у меня там было очень много грязи), подкладываем изолятор (бумага, изолента и т.д.) на контакты, ведущие к головкам, и обратно прикручиваем плату (не всеми винтами, а так, чтобы было питание на мотор). Включаем питание, нажимаем Ctrl+Z, вводим /2, потом Z. Ждем сообщение об успешной остановке. Spin Down Complete Elapsed Time 0.138 msecs Не отключая питания, откручиваем плату, достаем наш изолятор и прикручиваем обратно плату, вводим команду запуска двигателя: U.

Если не помог метод отключения головок, нужно замкнуть контакты на плате острым пинцетом или тонким проводком. На фото (доступны по ссылкам ниже) показаны точки замыкания на разных жестких дисках.

  • rev. A
  • rev. A (прямоугольная)
  • rev. С
Замыкайте контакты после включения питания жесткого диска. Будут слышны стуки головок, а потом и остановка двигателя. После этих манипуляций подайте команду на остановку двигателя, разомкните контакты и запустите двигатель снова.
Двигатель не запускается с ошибкой Error 1009 DETSEC 00006008 Spin Error Elapsed Time 53.959 secs R/W Status 2 R/W Error 84150180 Вероятно, вы забыли снять изолятор или плохо привинтили плату. Также причиной может служить механическое повреждение.
Остановка двигателя не происходит. Сопровождается ошибкой LED:000000CE FAddr:00280569 На минуту выключите питание. Если ошибка не уходит, сперва попробуйте запустить двигатель, введя U.
Спасибо за внимание, пусть ваши жесткие диски служат долго.

Метки:

  • восстановление жесткого диска
  • seagate barracuda 7200.11
  • arduino

Artem Makarov aka Robin

09.11.2013

Еще одна непростая проблема с сигейтами, которую удалось решить с помощью так называемой прошивки HDD Seagate (загрузки микрокода по интерфейсу).

На сей раз - ноутбучный HDD ST9500325AS при подаче питания на слух рекалибруется, висит в BUSY, в диагностический порт выдает только:

Rst 0x08M

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

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

Rst 0x08M RW cmd 002F req = 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 00 00 A0 E1 opts = 00000000 RW Err = 84150180 ASCII Diag mode F3 T>

Т.е. ошибка позиционирования по сервометкам, остановка шпиндельного двигателя и готовность в регистрах с готовностью отвечать на терминальные запросы. В такой позиции можно командой раскрутить двигатель, поднять с поверхности diag ovl и прочитать по АТА все описанные по id модули, а так же все модули, описанные в system volume. Все модули считались без ошибок, и на первый взгляд не содержали в себе ничего крамольного, что могло бы приводить к зависанию накопителя при штатном старте.

Сразу возникло подозрение на сбой в таблицах трансляции, но попытка пересчёта привела к такому результату:

Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 DiagError 0000500D User Partition Format Failed - Elapsed Time 0 mins 00 secs R/W Sense 00000002, R/W Error 843200A2, File Error 00000000 Blk Addr AD6F0001, Blk Addr Type D0, Cyl FFFF0000, Hd EC

Т.е. закончилась с ошибкой. После некоторых раздумий было принято решение кардинальное. Учитывая, что все необходимые части служебной информации были успешно зарезервированы ранее, я решил полностью отформатировать служебную область. Получив по окончании процесса:

System Partition Format Successful - Elapsed Time 2 mins 00 secs

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

Unable to load Diag Cmd Processor Overlay

Для того, чтобы получить полный функционал в такой ситуации, требуется записать оверлеи на поверхность, чтобы диск их считал. А для того, чтобы получить возможность произвести запись на поверхность диск должен их прочитать ранее. Замкнутый круг. Как найти выход из такой ситуации?

Вариант, учитывая что в ситуации с отформатированной служебкой диск выходит в готовность по интерфейсу штатно, один - используя команду id92h загрузить в HDD лоадер, т.е. пакет микрокода, содержащий в том числе и требуемые оверлеи, и тем самым, как говорят, перепрошить жесткий диск Seagate.

После этой операции пересчет транслятора завершился успешно

Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 2DF8 User Partition Format Successful - Elapsed Time 0 mins 00 secs

И, финальный штрих - запись ранее сохраненного транслятора (id2Bh). После переподачи питания диск выдал привычное:

Rst 0x08M (P) SATA Reset

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

Читайте также: