Чем ремапить жесткий диск
Давно собирался написать мини-инструкцию выполнения процедуры REMAP для восстановления работоспособности жесткого диска. Дошли руки, т.к. вопрос, на мой взгляд, актуальный и его довольно часто задают новички. Данное пособие рассчитано на пользователей, чей уровень знаний в области компьютеров находится хотя бы чуть более, чем на базовом уровне, поэтому детально каждый шаг разжеван не будет (например, как записать образ на диск).
Вкратце, что такое Remap? Это процедура замены нечитаемого сектора одним из резервных. Проводится как специальной командой сервисного ПО, так и автоматически - при записи в нечитаемый сектор. Более подробно можно ознакомиться с этим (и не только) понятием, например, здесь.
Итак, если Ваш жесткий диск по Smart показания имеет число секторов, являющихся кандидатами на замену, отличное от 0 (параметр 197 (C5) Current Pending Sector), или, например, Эксперт по HDD советует прогнать линейное чтение + Remap (а Вы не знаете, как это сделать) то, Вам необходимо выполнить следующие шаги (решение лишь одно из многих, то, чем я пользуюсь лично).
2. Распаковать архив с программой.
3. Записать содержимое архива на компакт-диск (понадобится чистый CD-R). Сделать это можно с помощи, например, программы Ultra Iso (правой кнопкой мыши на образе - Ultra Iso - Burn To Disk), либо другой программой записи компакт-дисков.
4. Загрузиться с записанного только что диска. В Bios Setup Вашего компьютера должна быть выбрана загрузка с CD/DVD (параметр First Boot Device или ему аналогичный). Появится вот такое окно:
5. Выбрать Victoria 3.52 Russian Desktop (если у вас пк) или Victoria 3.52 Russian Notebook (если у вас ноутбук). В дальнейшем выбор менюшек осуществляется с помощью стрелочек "вверх", "вниз", "влево", "вправо" и нажатия клавиши Enter. Далее окно:
6. Нажать клавишу P для выбора IDE канала на котором у вас "сидит" диск. Далее:
7. Выбрать EXT. Pci ATA/SATA. Далее выбрать цифру напротив которой отображается Ваш диск
(в моем случае на скриншоте не отображаются диски, т.к. скриншоты снимал с виртуальной машины, если у Вас также не видны диски, то следует проверить режим работы контроллера, возможно, он работает в режиме AHCI, тогда Вам следует перевести его в режим IDE - как это сделать, более подробно написано в мануале к Вашей материнской плате).
8. Нажимаем F2 для чтения паспорта жесткого диска. Появится примерно такое окошко:
9. Нажимаем клавишу вверх, появится вот такое окно:
с помощью клавиши стрелки вниз доходим до пункта Ignore Bad Block и изменяем его на Advanced Remap (в некоторых случаях может помочь комбинация Advanced Remap и Classic Remap, например, на дисках WD),
нажимаем Enter.
Жесткий диск, он же винчестер, не такое уж и простое устройство, каким может показаться на первый взгляд. За всю историю своего существования, начиная с 1956 года, накопители претерпели огромное количество изменений. Теперь это не просто пластина и считывающие головки, а целая система со своей логикой и программным обеспечением, а следовательно, со своими фичами и секретами. В этой статье мы попробуем разобраться, что собой представляет современный жесткий диск, а также попытаемся расширить его стандартные возможности для своих хакерских целей.
Заключение
Однако настало время закругляться. В этой статье я попытался показать неизведанные уголки и возможности жесткого диска. Не углубляясь в код, мы рассмотрели способ слива информации с накопителя. Если даже слегка приподнять этот занавес, открывается огромное поле для полета фантазии. Можно, например, перепрошить контроллер, чтобы скрыть от посторонних глаз особо важный раздел. Или портить данные при попытке клонировать жесткий диск, обезопасив себя таким образом от криминалистических утилит. Одним словом, вариантов много, так что каким образом использовать жесткий диск — выбор за тобой.
Восстановить удаленные файлы — не проблема, для этого есть десятки утилит. Но что, если накопитель поврежден, имеет ошибочное описание геометрии или доступ к нему закрыт паролем на уровне контроллера? Тогда на помощь приходит утилита Victoria. Она написана на ассемблере, занимает считаные килобайты и работает с контроллером напрямую.
Пароли
Одна из наиболее востребованных низкоуровневых команд в режиме PIO — это работа с паролями. Согласно спецификациям, доступ к диску можно ограничить при помощи пароля. Он задается пользователем из BIOS или с помощью внешних утилит. Также существует предустановленный производителем мастер-пароль. Заблокировать диск можно только с помощью пользовательского пароля. Если его забыли, то блокировку можно снять мастер-паролем.
В зависимости от заданного уровня безопасности результат ввода мастер-пароля будет разным. При высоком уровне (high) мастер-пароль действует наравне с пользовательским. Он просто разблокирует диск, и все. Если же задан максимальный уровень безопасности (max), то ввод мастер-пароля вместо пользовательского приведет к разблокировке диска только после полного стирания на нем всех данных (secure erase).
Работа с ATA-паролями осложняется еще и тем, что по стандарту они всегда состоят из 32 байт (какой бы длины ты его ни задавал). Лишние символы игнорируются, а недостающие дописываются автоматически. Проблема в том, что разные программы дописывают их по-разному. Особенно грешат этим штатные защитные утилиты на некоторых ноутбуках. Вместо традиционных нолей (или хотя бы пробелов) они используют непечатаемые символы. Код 00h вообще нельзя набрать с клавиатуры (даже через +код). Выход здесь один: не вводить пароль в окне программы, а считать его из файла. Любые символы можно записать в файл с помощью hex-редактора.
Нередко пользователь не может разблокировать диск, даже когда вводит верный пароль. При смене ноутбука или утрате штатной утилиты любая другая (например, HDDL) допишет пароль до 32 байт своими символами.
Встречается и предварительная модификация пароля. Во многих ноутбуках он фактически шифруется перед отправкой контроллеру. Обычно это простейшие логические операции, но легче от этого не становится. Пользователь думает, что тут известный ему пароль, в то время как реально контроллер принимает совершенно другой. Если ты перепробовал все варианты предполагаемых пользовательских и стандартных мастер-паролей, но не добился результата, то выход один — нести накопитель в лабораторию, где с ним будут работать в технологическом режиме.
Как вернуть утерянный терабайт
Иногда очень выручает возможность работать Victoria в режиме PIO с HPA (Host Protected Area) — служебной областью памяти, в которой записана геометрия диска. Она определяет объем накопителя, задавая его как число блоков LBA.
В моей практике был занятный случай. Получил стандартную жалобу: «компьютер не включается» (читай, ОС не загружается). Владелец посетовал, что мучается уже около месяца. Сначала он объездил все сервисные центры, затем приглашал разных эникейщиков — безрезультатно. Я приехал, посмотрел и тоже крепко задумался. Все комплектующие исправны. Диск определяется в BIOS, но загрузка с него не идет. Запустил Linux с флешки. Винчестер виден, но утилиты логической разметки показывают странную картину: 64 Мбайт общего объема и один раздел с неизвестной файловой системой.
И тут я сообразил, что на винчестере просто слетела HPA. В результате терабайтный диск стал определяться как 64-мегабайтный огрызок. Переключил в CMOS setup режим SATA-портов с AHCI на совместимый, взял флешку с WinPE и запустил Victoria в режиме PIO. Далее отправил команду NHPA (восстановить заводской объем).
Обычно в таких случаях удается мгновенно восстановить паспортное значение блоков LBA, но в этот раз чудо не произошло. Поэтому я нашел сервисную утилиту для винчестеров этой серии и отправил аналогичную команду восстановления HPA из нее. Терабайт данных вернулся из небытия при следующей перезагрузке.
Почему подвела Victoria? Предполагаю, потому, что у этого диска были какие-то специфические особенности, неизвестные мне или универсальной программе.
Готовимся
Первоначально диск должен инициализироваться программой, что вполне логично. После этого производится сканирование поверхности, которое дает понимание текущего положения дел: MHDD покажет состояние поверхности харда. Затем нужно будет отформатировать диск и провести проверку еще раз. Обычно на этом этапе софт-бэды пропадают, и остаются только хардварные. Далее можно будет выполнить процедуру REMAP, чтобы бэд-блоки переназначить в служебную область.
Главная проблема в том, что служебная область не резиновая, и даже после всех операций за диском нужно смотреть. Если бэд-блоки продолжают появляться, то диск, как ни старайся, уже не жилец. Но в более удачных случаях этот способ должен помочь. Как показывает практика, после ремапа диск может проработать еще очень много времени и даже пережить соседей по корзине. В другие разы он умирает сразу же после перезагрузки — тут уж как повезет, и предсказать эффект практически невозможно.
От MS-DOS до Windows 10
Victoria задумывалась как средство расширенной диагностики накопителей (тогда — жестких дисков, а сегодня еще и SSD) и управления настройками их работы через низкоуровневые команды. Белорусский программист Сергей Казанский лет десять разрабатывал ее и выпускал авторский набор утилит для восстановления данных. За это время вышло множество коммерческих релизов Victoria, несколько бесплатных версий и одна неофициальная, которой мы уделим особое внимание.
Первоначально Victoria была дисковой утилитой для MS-DOS, написанной на ассемблере. Древняя операционка подходила лучше, чем Windows, из-за того, что в однозадачной среде проще обеспечить эксклюзивный доступ к диску. С появлением поддержки драйвера porttalk.sys Victoria версий 4.xx научилась работать и в многозадачной среде WinPE, а также в Windows от XP до 10 любой разрядности. Запускать ее стало проще, действия в графическом интерфейсе стали нагляднее, да и сам режим работы изменился. Но вот беда: без понимания новых особенностей программы некоторые пользователи начали терять данные и целые диски вместо того, чтобы восстанавливать их. Поэтому последняя официальная версия 4.46b имеет развитую «защиту от дурака».
По умолчанию в ней доступны только недеструктивные операции с накопителями. Это не просто режим «только чтение», как в других утилитах, которые обращаются к HDD/SSD средствами драйвера Windows. У Victoria при первом старте также блокируется возможность изменить HPA (и напортачить с геометрией диска), случайно запустить низкоуровневое форматирование и «выстрелить себе в ногу» более изощренными способами.
Универсальный солдат
Victoria — максимально универсальная утилита. Она обращается к накопителю любого типа (HDD, SSD, USB Flash) и с любым ATA-совместимым интерфейсом. Ее дело — передавать ATA-команды любому устройству, которое их поддерживает. Поэтому все сказанное про работу Victoria с дисковыми накопителями справедливо и для твердотельных, за исключением того, что относится к их конструктивным особенностям. Понятно, что для SSD бессмысленно смотреть время раскрутки шпинделя и пытаться управлять скоростью позиционирования головок, — у него нет ни того ни другого. Тем не менее протестировать и даже восстановить SSD с помощью Victoria вполне возможно.
WARNING
Вся информация приведена для ознакомления. Victoria использует низкоуровневые операции, смысл которых описан в руководстве. Редакция и автор не несут ответственности за любой возможный вред.
Внешние накопители
Внешние диски — это обычные ноутбучные (2,5″) или десктопные (3,5″) модели в контейнерах с интерфейсами USB и FireWire. Они снабжаются различными контроллерами с общим названием «SATA-мост». Многие из этих мостов не транслируют низкоуровневые команды. Поэтому с одними внешними накопителями Victoria может сразу работать в режиме PIO так же, как с внутренними дисками, а с другими сначала придется помучиться. В простейшем случае будет достаточно извлечь сам диск из корпуса (гермоблок не вскрывать!) и подключить к порту напрямую.
Редкий зверь: SATA-винчестер без SATA-порта
У Western Digital и, возможно, других производителей некоторые внешние винчестеры выпускались уже с распаянным мостом SATA — USB. Поэтому обычного разъема SATA на них нет. Тем не менее их все равно можно подключить напрямую к порту, подпаяв SATA-кабель к выводам на плате диска. Чтобы понять, относится ли твой диск к такой серии, придется гуглить по номеру модели и искать даташиты.
Заключение
Disk boot failure, insert system disk and press enter. Надпись, от которой по спине начинается шествие легионов мурашек, каждая сама размером с жесткий диск. По закону подлости происходит это, когда ничто не предвещает беды. Но не спеши судорожно перезапускать систему — это игра в русскую рулетку. Лучше загрузиться с другого носителя и взяться за тщательную проверку. Поможет в этом испытанный инструмент — MHDD.
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 , которую следует распространить на весь жесткий диск (или на отдельную часть, предварительно заблокировав доступ к остальному). Достаточно один раз прогнать этот код, чтобы уничтожить данные безвозвратно.
- Читаем содержимое сервисного раздела, вычисляем его хеш и убеждаемся в целостности данных.
Автор предупреждает, что его код может привести к потере данных и выходу из строя жесткого диска, так что использовать этот метод можно только на свой страх и риск.
Дополнительные возможности Victoria
Victoria детально анализирует состояние накопителя и может устранить практически любой сбой в его работе. Собственно, этим Victoria и отличается от массы других утилит. Если большинство программ просто показывает атрибуты SMART, то она умеет запускать принудительно целые наборы тестов самодиагностики.
Victoria обнаруживает скрытые дефекты при анализе SMART
У Victoria четыре метода и три типа тестирования поверхности (всего двенадцать режимов). В каждом она автоматически подсчитывает общее число дефектных блоков и записывает их адреса в лог. Подобно дисковому редактору, Victoria умеет показывать содержимое секторов и позволяет его менять. В режиме PIO Victoria отображает информацию о логических разделах на носителе даже в том случае, если он вообще не определяется в BIOS. Ни одна утилита с доступом через API на это не способна. Дополнительно Victoria умеет управлять уровнем акустического шума диска (AAM), регулируя скорость перемещения его головок при поиске, запускать низкоуровневое форматирование, изменять объем HDD и выполнять бенчмарки. Ее можно использовать даже для проверки физического интерфейса (состояния кабелей и портов). В домашних условиях она спасет HDD или SSD во многих сложных ситуациях, кроме тяжелых механических повреждений, требующих вскрытия гермоблока. В лаборатории справятся и с ними, используя Victoria как одну из проверенных утилит.
Паспорт диска, принудительный запуск теста SMART и управление AAM в программе Victoria 4.46b
Victoria 4.47
Эту версию сделал в 2013 году программист из Москвы Олег Щербаков. Он пропатчил последнюю официальную сборку Victoria 4.46b. Скачивать лучше здесь. На этом сайте Щербаков опубликовал ее вместе с исходниками патчей. Остальные ресурсы могут распространять под видом новой «Виктории» что угодно.
Хоть Victoria и далеко не новая программа, в ней нашлись и критические ошибки, требовавшие исправления. Одна из них приводила к тому, что запустить Victoria в 64-разрядных версиях Windows было невозможно. Из-за другой могли появиться проблемы при работе с большими дисками. Если объем был выше терабайта, то Victoria 4.46b просто тратила всю виртуальную память на отрисовку и цветовую маркировку проверяемых блоков LBA. В версии 4.47 Щербаков все это исправил.
Запуск Victoria 4.47 в Windows 7 SP1 x64, режим API
Другие статьи в выпуске:
Пациент
Итак, перед нами плата типичного жесткого диска Western Digital WD5000AAKX объемом в 500 Гб (рис. 1). Что мы имеем:
- Микросхема DRAM. Интереса как такового не представляет, мануал легко можно найти в Сети. Память этих чипов колеблется от 8 до 64 Мб и соответствуют размеру кеша жесткого диска.
- Контроллер двигателя шпинделя. Отвечает за управление механикой, регулирует мощность и имеет некоторые аналоговые/цифровые каналы. На чип Smooth L7251 3.1 мануалы отсутствуют, но можно попробовать поискать похожие микросхемы.
- Флеш-память. На некоторых винчестерах микросхема отсутствует, но флеш-память бывает встроена в чип контроллера диска. Обычно имеет размер в пределах от 64 до 256 Кб. Используется для хранения программы, от которой загружается контроллер жесткого диска.
- И самая любопытная для нас вещь — контроллер жесткого диска. Их производят компании Marvell, ST, LSI и другие. Некоторые компании, производящие винчестеры, делают свои собственные контроллеры, как, например, Samsung и Western Digital.
Контроллер жесткого диска предназначен для управления операциями преобразования и обмена данными от головок чтения/записи к интерфейсу накопителя. К сожалению, компания Marvell не хочет выкладывать документацию на свою продукцию в открытый доступ. Ну что ж, попробуем разобраться сами.
Терминальный режим жесткого диска
При работе в терминальном режиме пользователь может взаимодействовать с жестким диском посредством диагностических команд. Этот метод применяется для диагностики и ремонта накопителей Seagate и Toshiba, в Western Digital такая возможность отсутствует из-за сложности подключения. Терминальный режим фактически предоставляет полный root — управление механикой и логикой устройства. С его помощью можно также обновить или перезагрузить прошивку винчестера. Список команд для большинства накопителей можно посмотреть в интернете. А на плате жесткого диска имеется специальный разъем для подключения через последовательный порт.
Рис. 2. Разъем для подключения через последовательный порт. Одной тайной меньше
Для доступа в терминальный режим понадобится устройство-адаптер, необходимое для преобразования уровней сигналов RS-232 в уровни TTL (такие адаптеры имеются в продаже, но можно собрать и самому — все необходимые схемы находятся в свободном доступе, а в качестве основы можно взять некоторые модели Arduino). Мы же возьмем готовый чип FTDI, который преобразует USB в последовательный интерфейс для микроконтроллера Atmega. Нужно соединить GND и RESET, а для подключения использовать контакты RX и TX.
Рис. 3. Arduino Nano в качестве адаптера
Для работы с COM-портом используем любую понравившуюся программу — например, PuTTY или Hiperterminal. Выбираем тип подключения, вводим номер COM-порта и другие настройки:
Рис. 4. Окно настроек PuTTY
Для проверки работоспособности схемы нужно замкнуть RX и TX между собой. В результате все набираемые символы отобразятся в двойном количестве. Это происходит из-за того, что введенные данные будут передаваться по линии TX, а затем они же вернутся по линии RX. Делается это так: отключив SATA-кабель, соединяем выход TX диска с входом RX адаптера, и наоборот — RX адаптера с TX диска. Подключаем питание. После нажатия клавиш , получаем приглашение Т> (или F> для неисправных HDD) и вводим команды. Для получения списка команд вводим /C , а затем Q.
Из-за большого количества команд инженеры Seagate разделили их структуру на уровни. Такие команды, как чтение, запись, поиск, лог ошибок, доступны сразу на нескольких различных уровнях. Чтобы переключить жесткий диск для работы на другом уровне, надо воспользоваться командой /x .
Рис. 5. Обнуление S.M.A.R.T.
Кроме этих девяти уровней, есть еще два дополнительных набора команд: сетевые и общие. Основной целью сетевых команд является отображение изменения текущего состояния системы. Общие команды используются для доступа к регистрам, буферной памяти и данным.
Вообще, терминальный режим предоставляет много интересных возможностей. Например, команда низкоуровневого форматирования может не только снести данные подчистую без возможности восстановления, также, если во время форматирования кто-нибудь отключит питание, винчестер сможет сам «доформатироваться» при первом же его включении. В общем, это тема, достойная отдельной статьи. Мы же движемся дальше.
Введение
Если SMART показывает проблемы, чаще всего это означает одно: диск вот-вот начнет сыпаться, и повлиять может даже лишняя загрузка ОС. Следующее, что нужно понять, — это софтверные на нем «бэды» или хардварные. Если хардварных не так много, то диск еще можно попытаться вернуть к жизни.
Думаю, ты слышал о таких продуктах, как MHDD и Victoria. Они незаменимы для низкоуровневой работы с жестким диском и помогут тебе совершить великие подвиги в восстановлении и диагностике. О Victoria «Хакер» уже писал пару выпусков назад, теперь настало время разобраться со второй — архаичной, но по-прежнему мегаполезной утилитой.
MHDD — это небольшая, но мощная бесплатная программа, которая предназначена для работы с накопителями на самом низком уровне (насколько это возможно). Первая версия была выпущена Дмитрием Постриганем в 2000 году. Она могла сканировать поверхность накопителя с интерфейсом IDE в режиме CHS. Сейчас MHDD — это значительно больше, чем диагностика. С MHDD ты можешь делать все что угодно: диагностировать накопители, выполнять чтение и запись произвольных секторов, управлять системой SMART, парольной системой, системой управления шумовыми характеристиками, а также изменять размер накопителя.
Несмотря на то что работа с MHDD возможна и через установленную Windows, я крайне рекомендую записать образ на флешку или внешний (или второй загрузочный) диск и загрузить оттуда голый DOS. Поверь, в хардварном вопросе лучше максимально исключить все звенья цепи, которые могут привести к глюкам или зависанию компьютера во время работы.
Восстанавливаем
Если сканирование выявило ошибки, первое, что необходимо сделать, — скопировать все данные с накопителя (если они, конечно, тебе нужны). В моем случае это было неактуально. Затем нужно полностью очистить поверхность при помощи команды ERASE , которая стирает каждый сектор на накопителе.
Выполнение команды ERASE
Накопитель пересчитает поля ECC для каждого сектора. Это помогает избавиться от так называемых soft-bad-блоков. Если стирание не помогло, запускаем сканирование с включенной опцией REMAP.
Процесс ремапа
Если видишь, что каждый блок содержит ошибку, не пытайся стирать накопитель или сканировать с включенной опцией REMAP. Скорее всего, у накопителя повреждена служебная область, и это не может быть исправлено стандартными командами MHDD.
Внимательный читатель, посмотрев на картинки сканирования диска, вероятно, присвистнул и сокрушенно покачал головой. Да, мой диск, пока я писал статью, умер окончательно. Количество хардварных бэдов превысило все допустимые пределы, и к набиванию последних строк статьи он уже хрустел, как трактор «Беларусь». Это к слову о том, что если диск начинает сыпаться, то доверять ему нельзя, особенно если появляются хардварные бэды. Ремап сможет помочь тогда, когда диск еще не начал активно сыпаться, но на поверхности возникли дефекты. В любом случае, даже если починить удалось, используй такой диск только для некритичных данных и ни в коем случае не как основной.
Ох уж эти интерфейсы
Не каждый интерфейс может корректно распознаваться программой.
Интерфейс SATA. Есть вероятность, что диск не определится в MHDD. Причина может заключаться в режиме работы SATA-контроллера (IDE и AHCI) в BIOS. MHDD, увы, не поддерживает режим AHCI. Необходимо менять настройки BIOS. Хуже всего то, что нынче не все матплаты поддерживают этот режим. Выходом может стать только использование машины с подходящей материнкой или отказ от MHDD.
Интерфейс SCSI. Может не определиться драйвер SCSI-контроллера.
Интерфейс USB. Подключить диск через USB теоретически возможно с помощью дополнительного драйвера и настройки программы. Драйвер эмулирует режим работы через SCSI. Также необходимо отключить все лишние USB-накопители. Целевой диск должен быть подключен до загрузки MHDD. В config.sys потребуется прописать: device=X:\USBASPI.SYS /w /v , где X:\ — путь к диску.
Итак, я беру с полки один из сломанных дисков (я обычно клею на них этикетку broken) и сейчас попробую воскресить его, чтобы показать тебе, как это работает на практике. У меня на руках оказался винт WDC WD7500BPVX-60JC3T0 с винегретом вместо системы и всех файлов на нем.
SMART подопытного диска
Другие статьи в выпуске:
Раз уж ситуация настолько печальна, я могу с чистой совестью форматировать диск вдоль и поперек, что заметно упрощает мою задачу. Но для начала давай разберемся с небольшой теорией и планом восстановления.
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Не убий
Угробить диск значительно проще, чем восстановить его. К примеру, каждому известно (или должно быть известно), что к печальным последствиям ведет отсоединение шлейфа во время работы. Также крайне не рекомендуем бездумно переключать флаги и выполнять команды в MHDD. Внимательно читай документацию и не начинай что-то делать, если до конца не понимаешь, к чему это может привести.
Что ж, можно приступать к делу! Для начала создаем загрузочную флешку. Для этого я рекомендую USB Tools — полная инструкция и сам DOS есть вот здесь. Когда носитель готов, остается только бросить в его корень MHDD, чтобы лишний раз не лазить по директориям из командной строки.
Чтобы диск, подключенный на первый канал, точно отображался, нужно подредактировать конфиг mhdd.cfg, который лежит в папке CFG.
Как я уже говорил, сканирование любого устройства возможно, только если оно определяется командами ID или EID (или нажатием F2).
Определяем наш жесткий диск
Копнем глубже
Наш зарубежный коллега Джероен «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, и изменить содержимое. После чего можно будет просто войти под своим паролем.
Кстати говоря, описанная методика может служить не только для подпольных экспериментов, но и для целей защиты. Например, можно создать неклонируемый жесткий диск, который будет работать нормально, если шаблон доступа секторов, как обычно, окажется случайным. Если же винчестер будет доступен только последовательно, то данные будут испорчены, что сделает клон отличным от оригинала.
Кстати говоря, Джероен решил поделиться результатами своих исследований и выложил почти весь исходный код на своем сайте.
Программы для восстановления HDD
При низкоуровневых экспериментах возможно столкнуться с такой неприятностью, как поломка винчестера. Не стоит сразу прибегать к драконовским мерам и форматировать диск, можно попробовать восстановить его работоспособность с помощью некоторых программ.
- TestDisk — самая простая и эффективная программа для восстановления HDD. Предназначена для поиска и реконструкции потерянных разделов, загрузочного сектора, удаленных файлов; исправляет таблицу разделов. Работает с большим количеством файловых систем. Работает в консольном режиме, чем достигается высокая скорость.
- Acronis Disk Director — целый программный пакет, в который включено немалое количество инструментов для работы с HDD. Содержит в себе утилиту Acronis Recovery Expert, которая служит для реконструкции файлов и разделов. В отличие от предыдущей программы имеет графический интерфейс, но работает с меньшим количеством файловых систем.
- Paragon Partition Manager — бесплатная программа от отечественных разработчиков, умеет почти все то же самое, что и Acronis, но ужасно медленная.
Рис. 6. Восстанавливаем поврежденные разделы с помощью TestDisk
Сбойные секторы
Чаще всего Victoria используется для поиска и устранения сбойных секторов. Если с HPA у диска все в порядке и парольная защита не стоит, но никакими утилитами прочитать с него файлы за разумное время не удается, то пора проверять поверхности. Victoria умеет это делать в любом режиме (PIO/API) с помощью посекторного чтения (read), записи (write) и записи с проверкой (verify).
Обнаружение сбойных секторов
При восстановлении данных можно использовать только чтение, но его варианты тоже бывают разными. Простейший из них — последовательный: с первого блока до последнего. Начальное и конечное значение LBA можно указать вручную, что удобно сразу по многим причинам. Во-первых, так появляется возможность проверять диски любого объема, просто выполняя тест фрагментами до одного терабайта. Во-вторых, можно заново проверить подозрительную область и исключить внешние факторы. Victoria анализирует время обращения к сектору. Обычно у новых дисков оно не превышает 5 мс у 80% секторов. Нормальными также считаются секторы со временем опроса менее 50 мс. Те, у которых оно измеряется сотнями миллисекунд, — кандидаты в сбойные секторы.
Кандидаты в бэды
Если сектор считался спустя несколько секунд, то это однозначный bad block. Такие дисковый контроллер должен выявлять самостоятельно во время простоя и заменять их в адресной таблице исправными секторами из резервной области. Однако на практике это происходит не всегда. Victoria может попросить винчестер сделать такую операцию (Remap) для тех секторов, которые слишком долго не отвечали на запросы. Формально при этой процедуре теряется часть информации, но реально она уже была потеряна в тот момент, когда сектор стал сбойным.
В платной версии Victoria была доступна функция Restore — попытка считать данные из сбойного сектора любой ценой и последующая их перезапись на исправный сектор. Однако программа официально не поддерживается с 2008 года, поэтому приобрести ее полную версию вряд ли получится. Бесплатная Victoria не раз выручала тем, что восстанавливала HPA, сбрасывала пароли и устраняла сбойные секторы, из-за которых зависали другие программы восстановления данных.
График чтения при тесте поверхности HDD
Как бесплатная Victoria спасла секретную работу
Поделюсь с тобой еще одной историей. Лаборатория в НИИ, наше время. Аналитическим прибором управляют с компьютера, который был с ним в комплекте. На компе предустановлен очень специфический софт, который разработчики больше не поддерживают. Дистрибутива нет ни на диске, ни на сайте. Есть только установленная программа, и она перестала работать. Лаборатория выполняла исследование по многолетнему госконтракту. Без чудо-прибора сотрудники оказались связаны по рукам и ногам. Помучались и выяснили, что проблема с диском. От древности он покрылся бэдами, и нормальная работа стала невозможной. Попытка сделать клон диска с пропуском сбойных секторов не увенчалась успехом — программа клонирования зависала намертво. Прогнали диск тестом Victoria с функцией Remap. Предварительно подобрали необходимые настройки. К вечеру того же дня успешно сняли дисковый образ, а затем восстановили с него все на новый винчестер. Прибор ожил, контракт был выполнен в срок.
Электроника HDD
Конструкция винчестера в какой-то степени наверняка известна каждому. По сути, это несколько пластин, которые вращаются со скоростью 15 000 об/мин, устройство позиционирования и блок управляющей электроники. Добавим к этому систему самоконтроля S.M.A.R.T. и другие интеллектуальные атрибуты. Короче, без пол-литра не разберешься, тем более технология отдельных элементов составляет коммерческую тайну.
Высокой точности позиционирования, плотности записи и прочим тонкостям современных HDD можно посвятить не один десяток статей, но мы, не углубляясь в механику диска и физику процессов, рассмотрим наиболее интересную для нас часть — электронику.
Рис. 1. Плата жесткого диска
Другие статьи в выпуске:
В старых моделях жестких дисков часть функций управляющей электроники брал на себя MFM- или RLL-контроллер компьютера. Но со временем из-за высокой скорости передачи данных потребовалось сократить тракт передачи данных, и разработчики отказались от этой идеи.
О чем сигнализируют индикаторы
- BUSY — накопитель занят и на команды не реагирует;
- WRFT — ошибка записи;
- DREQ — накопитель жаждет обменяться данными с внешним миром;
- ERR — возникла ошибка в результате какой-либо операции.
Когда загорается ERR, смотри в правую верхнюю часть экрана: там будет отображен тип последней ошибки:
- AMNF — Address Mark Not Found — обращение к какому-то конкретному сектору не удалось. Скорее всего, означает, что сектор поврежден. Однако сразу после включения накопителя как раз наоборот — свидетельствует об отсутствии проблем и сообщает об успешном выполнении внутренней диагностики;
- T0NF — Track 0 Not Found — не найден нулевой трек;
- ABRT — Abort, команда отвергнута;
- IDNF — Sector ID Not found;
- UNCR — Uncorrectable Error, ошибка, не скорректированная кодом ECC. Скорее всего, в этом месте логический бэд-блок.
Вверху могут появляться еще два индикатора: PWD сигнализирует об установленном аппаратном пароле, HPА появляется в том случае, если размер накопителя был изменен с помощью команды HPA (обычно используется для скрытия бэд-блоков в конце диска).
В посте собран перечень 20 лучших бесплатных инструментов разбивки, диагностики, шифрования, восстановления, клонирования, форматирования дисков. Вообщем практически все что нужно для базовой работы с ними.
1. TestDisk
TestDisk позволяет восстанавливать загрузочные разделы, удаленные разделы, фиксировать поврежденные таблицы разделов и восстанавливать данные, а также создавать копии файлов с удаленных/недоступных разделов.
Примечание: PhotoRec ето связанное с TestDisk приложением. С его помощью возможно восстановить данные в памяти цифровой камеры на жестких дисках и компакт-дисках. Кроме того можно восстановить основные форматы изображений, аудиофайлы, текстовые документы, HTML-файлы и различные архивы.
При запуске TestDisk предоставляется список разделов жесткого диска, с которыми можно работать. Выбор доступных действий, осуществляемых в разделах, включает: анализ для корректировки структуры (и последующее восстановление, в случае обнаружения проблемы); изменение дисковой геометрии; удаление всех данных в таблице разделов; восстановление загрузочного раздела; перечисление и копирование файлов; восстановление удаленных файлов; создание снапшота раздела.
2. EaseUS Partition Master
EaseUS Partition Master — инструмент для работы с разделами жесткого диска. Он позволяет создавать, перемещать, объединять, разделять, форматировать, изменяя их размер и расположение без потери данных. Также помогает восстанавливать удаленные или потерянные данные, проверять разделы, перемещать ОС на другой HDD/SSD и т.д.
Слева представлен перечень операций, которые можно выполнить с выбранным разделом.
3. WinDirStat
Бесплатная программа WinDirStat проводит анализ использованного места на диске. Демонстрирует, как данные распределяются и какие из них занимают больше места.
Клик по полю в диаграмме выведет на экран рассматриваемый файл в структурном виде.
После загрузки WinDirStat и выбора дисков для анализа, программа сканирует дерево каталога и предоставляет статистику в таких вариантах: список каталогов; карта каталогов; список расширений.
4. Clonezilla
Clonezilla создает образ диска с инструментом клонирования, который также упакован с Parted Magic и первоначально доступен, как автономный инструмент. Представлен в двух версиях: Clonezilla Live и Clonezilla SE (Server Edition).
Clonezilla Live является загрузочным дистрибутивом Linux, позволяющим клонировать отдельные устройства.
Clonezilla SE — это пакет, который устанавливается на дистрибутиве Linux. Он используется для одновременного клонирования множества компьютеров по сети.
5. OSFMount
Использование данной утилиты дает возможность монтировать ранее сделанные образы дисков и представлять их в виде виртуальных приводов, непосредственно просмотривая сами данные. OSFMount поддерживает файлы образов, такие как: DD, ISO, BIN, IMG, DD, 00n, NRG, SDI, AFF, AFM, AFD и VMDK.
Дополнительная функция OSFMount — создание RAM-дисков, находящихся в оперативной памяти компьютера, что существенно ускоряет работу с ними. Для запуска процесса нужно перейти в File > Mount new virtual disk.
6. Defraggler
Defraggler — бесплатная программа для дефрагментации жесткого диска, которая способствует увеличению его скорости и срока службы. Особенностью программы является возможность дефрагментации также и отдельных файлов.
Поддерживает файловые системы NTFS, FAT32 и exFAT.
7. SSDLife
SSDLife — проводит диагностику твердотельного диска, выводит на экран информацию о его состоянии и оценивает предполагаемый срок службы. Поддерживает удаленный мониторинг, управляет уровнем производительности на некоторых моделях жестких дисков.
Благодаря контролю износа SSD можно повысить уровень безопасности данных, вовремя выявлять проблемы. На основе анализа программа делает вывод насколько часто используется твердотельный диск.
8. Darik’s Boot And Nuke (DBAN)
Довольно популярная бесплатная утилита DBAN, применяется для очистки жестких дисков.
В DBAN два основных режима: интерактивный (interactive mode) и автоматический (аutomatic mode). Интерактивный режим позволяет подготовить диск к удалнию данных и выбирать необходимые опции стирания. Автоматический режим очищает все обнаруженные диски.
9. HD Tune
Утилита HD Tune предназначена для работы с жестким диском и SSD. Измеряет уровень чтения-записи HDD/SSD, сканирует ошибки, проверяет состояние диска и выводит на экран информацию о нем.
При запуске приложения, нужно выбрать диск из выпадающего списка и перейти к надлежащей вкладке, чтобы просмотреть информацию.
10. VeraCrypt
VeraCrypt — бесплатное приложение для шифрования с открытым исходным кодом. Используется шифрование на лету.
Проект VeraCrypt создался на основе TrueCrypt с целью усиления методов защиты ключей шифрования.
11. CrystalDiskInfo
CrystalDiskInfo отображает состояние жестких дисков, поддерживающих технологию S.M.A.R.T. Утилита проводит мониторинг, оценивает общее состояние и отображает детальную информацию о жестких дисках (версия прошивки, серийный номер, стандарт, интерфейс, общее время работы и т. д.). У CrystalDiskInfo есть поддержка внешних жестких дисков.
В верхней панели на экране отображаются все активные жесткие диски. Щелчок по каждому из них показывает информацию. Иконки Health Status и Temperature меняют цвет в зависимости от значения.
12. Recuva
Утилита Recuva служит для восстановления случайно удаленных или потерянных файлов. Она сканирует нужный носитель информации, после чего выводит на экран список удаленных файлов. Каждый файл имеет свои параметры (имя, тип, путь, вероятность восстановления, состояние).
Необходимые файлы определяются с помощью функции предпросмотра и отмечаются флажками. Результат поиска можно отсортировать по типу (графика, музыка, документы, видео, архивы) и сразу просмотреть содержимое.
13. TreeSize
Программа TreeSize показывает дерево находящихся на жестком диске директорий с предоставлением информации об их размерах, а также проводит анализ использования дискового пространства.
Размеры папок выводятся на экран от самых больших до самых маленьких. Таким образом становится понятно, какие папки занимают большую часть места.
Примечание: При наличии Defraggler, Recuva и TreeSize, можно инициировать функции Defraggler и Recuva для определенной папки непосредственно из TreeSize — все три приложения эффективно интегрируются.
14. HDDScan
HDDScan — утилита диагностики жесткого диска, используется для тестирования накопителей информации (HDD, RAID, Flash) с целью выявления ошибок. Просматривает S.M.A.R.T. атрибуты, выводит показания датчиков температуры жестких дисков в панель задач и выполняет сравнительный тест чтения-записи.
HDDScan предназначена для тестирования накопителей SATA, IDE, SCSI, USB, FifeWire (IEEE 1394).
15. Disk2vhd
Бесплатная утилита Disk2vhd преобразует действующую физический диск в виртуальный Virtual Hard Disk (VHD) для платформы Microsoft Hyper-V. Причем, VHD-образ можно создавать прямо с запущенной операционной системы.
Disk2vhd создает один VHD-файл для каждого диска с избранными томами, сохраняя информацию о разделах диска и копируя только те данные, которые относятся к выбранному тому.
16. NTFSWalker
Портативная утилита NTFSWalker позволяет проводить анализ всех записей (включая и удаленные данные) в главной файловой таблице MFT диска NTFS.
Наличие собственных драйверов NTFS дает возможность просматривать файловую структуру без помощи Windows на любых носителях чтения компьютера. К просмотру доступны удаленные файлы, обычные файлы, а также подробные атрибуты для каждого файла.
17. GParted
GParted — редактор дисковых разделов с открытым исходным кодом. Осуществляет эффективное и безопасное управление разделами (создание, удаление, изменение размера, перемещение, копирование, проверка) без потери данных.
GParted позволяет создавать таблицы разделов (MS-DOS или GPT), включать, отключать и изменять атрибуты, выравнивать разделы, восстанавливать данные с поврежденных разделов и многое другое.
18. SpeedFan
Компьютерная программа SpeedFan следит за показателями датчиков материнской платы, видеокарты и жёстких дисков, с возможностью регулирования скорости вращения установленных вентиляторов. Есть возможность проводить автоматическую и ручную регулировку.
SpeedFan работает с жесткими дисками с интерфейсом SATA, EIDE и SCSI.
19. MyDefrag
MyDefrag — бесплатный дисковой дефрагментатор, который используется для упорядочивания данных, размещенных на жестких дисках, дискетах, дисках USB и картах памяти.
У программы есть удобная функция работы в режиме скринсейвера, в результате чего дефрагментация будет производится во время, назначенное для запуска хранителя экрана. MyDefrag также позволяет создавать или настраивать собственные сценарии.
20. DiskCryptor
С помощью шифровальной программы DiskCryptor с открытым исходным кодом, можно полностью зашифровать диск (все дисковые разделы, включая системный).
У DiskCryptor довольно высокая производительность — это один из самых быстрых драйверов шифрования дисковых томов. Программа поддерживает FAT12, FAT16, FAT32, NTFS и exFAT файловые системы, позволяя шифровать внутренние или внешние диски.
Запись информации в сервисные разделы HDD
В любом жестком диске присутствуют сервисные разделы. Они предназначены для хранения служебных программ винчестера, таких как S.M.A.R.T., модули раннего обнаружения ошибок, модули самодиагностики и так далее. К счастью, все эти данные не занимают выделенное место полностью, а значит, при правильном подходе мы можем использовать это бонусное пространство. Сервисные разделы не следует путать с DCO или HPA, которые могут быть легко обнаружены и доступны через стандартные ATA-команды.
В отличие от остальных методов скрытия информации запись в сервисный раздел не оставляет за собой никаких следов и незаметна для специальных программ поиска, которыми пользуются правоохранительные органы. Одним словом, это место идеально подойдет для хранения текстовых файлов с адресами, паролями, явками и прочего.
Для доступа к информации из сервисных разделов не подойдут стандартные ATA-команды, вместо этого для записи и чтения используются специальные команды VSC (Vendor Specific Commands). Как правило, производители держат в секрете эти команды, но порой выпускают утилиты для работы с сервисными разделами — например, программа wdidle3.exe от компании Western Digital и ее опенсорсный аналог idle3-tools. Еще один пример для WD — программа HDDHackr, меняющая записи в системных разделах HD.
Porttalk
Последние версии Victoria умеют автоматически устанавливать драйвер porttalk, однако он совершенно бесполезен в 64-разрядных системах. Дело в том, что в них ради большей безопасности убрали пару функций, которые нужны для работы porttalk и Victoria. Поэтому драйвер porttalk (и, соответственно, режим PIO) работает только в 32-битных версиях Windows, где есть функции Ke386SetIoAccessMap и Ke386IoSetAccessProcess .
PIO vs API
У Victoria есть два режима работы: PIO (port input/output) и API (application programming interface). В режиме PIO контроллер накопителя опрашивается программой через драйвер porttalk.sys. Если выбрать API, то будут использоваться средства операционной системы. Скорость работы с диском в режиме PIO падает, поскольку не поддерживаются DMA и высокоуровневые оптимизации чтения и записи. Однако режим PIO позволяет использовать все возможности Victoria и отправлять любые команды ATA непосредственно дисковому контроллеру, минуя ОС и стандартные драйверы. Именно через PIO чаще всего работают с дисками в лабораториях восстановления данных. Victoria поддерживает как накопители с современным интерфейсом SATA, так и старые — PATA (он же IDE). Victoria умеет работать и с внешними дисками (особенности будут описаны ниже).
Выбрав режим PIO, в начале работы надо просканировать шину и определить дисковые контроллеры кнопкой PCI-Scan. Справа от нее отображается окно выбора порта диска. Внутренние обычно детектируются без проблем, а вот для внешних дисков придется сначала выяснить их порт. Это можно сделать в свойствах оборудования или в любой диагностической программе (например, AIDA64). После этого необходимо вручную задать порт в «Виктории». Еще при сканировании можно отметить флажок All dev (все устройства) и методом исключения отыскать нужный диск в списке найденных.
Victoria 4.47 в режиме PIO
Режим PIO целесообразно использовать именно для низкоуровневых команд. Простой поиск сбойных секторов и их переназначение в резервную область диска гораздо быстрее (но менее надежно) протекает в режиме API.
Ограничения режима API следующие: нельзя устанавливать и снимать пароли ATA, отключена также работа с Host Protected Area и просмотр регистров. Если какая-то из этих функций нужна, то можно переключиться в режим PIO. Бывает, что режим PIO недоступен. Это случается при использовании старых версий Victoria в 64-разрядных ОС. Еще причиной могут быть ошибки в работе с драйвером porttalk.sys или выбор режима SATA AHCI. Гарантированно выйти из положения можно следующим образом.
- Записываем загрузочную флешку
с WinPE x86 и помещаем на нее программу Victoria простым копированием. - Подключаем нужный накопитель к порту SATA/PATA, если еще не сделали этого.
- Отключаем все другие HDD или SSD (опционально).
- Заходим в CMOS setup, переключаем режим SATA-контроллера с AHCI на совместимый (compatible, native или IDE).
- Загружаем WinPE. При необходимости доустанавливаем драйверы, включая porttalk.
- Запускаем Victoria в режиме PIO, инициализируем нужный HDD или SSD и выполняем необходимую команду.
Настройки можно задать через GUI или в файле vcr40.ini. Этот же файл поможет снять блокировку работы с первичным портом. По умолчанию она включена для того, чтобы защитить системный диск от случайной модификации. Чтобы можно было выбрать Primary в списке портов, нужно сделать две вещи:
- Отключить опцию «только недеструктивные функции» и закрыть программу.
- В секции [ATA Port] файла vcr40.ini дописать строку Enable PM=1 , сохранить изменения и перезапустить программу.
Сканируем
Чтобы выполнить сканирование, набираем SCAN и жмем ENTER или используем F4. Появится меню, из которого можно изменить часть настроек. По умолчанию начальный сектор равен нулю (стартовый сектор). Конечный сектор равен максимально возможному (конец диска). Все деструктивные по отношению к пользовательским данным функции (Remap, Erase Delays) по умолчанию выключены.
Начинаем сканирование
Давай пройдемся по параметрам сканирования.
- Start LBA — начальный сектор для сканирования, по дефолту 0, то есть начало диска.
- End LBA — сектор завершения сканирования, по дефолту конец диска. Иногда удобнее сканировать не всю поверхность (особенно когда объем диска переваливает за несколько терабайт), а только рабочую область, где лежит ОС. К примеру, диск С равен 50 Гбайт, тогда конечная область будет равна 2 * 50 * 1024 * 1024 = 104 857 600-й сектор . Можно посчитать проще: (объем * 2) * 1 000 000 , итого 100 000 000.
- Remap помечает сектор как сбойный в специальной служебной области, после чего диск к нему не обращается.
- Timeout — время задержки на чтение сектора, после которого проверка переходит к следующему сектору.
- Spindown after scan — остановить жесткий диск после сканирования.
- Loop test/repair — проводить сканирование или проверку циклично.
- Erase Delays — стирать сектора, в которых обнаружены задержки чтения.
Снова нажимаем F4 для запуска сканирования. MHDD сканирует накопители блоками. Для накопителей IDE/SATA один блок равен 255 секторам (130 560 байт).
Процесс сканирования
Вот как работает сканирование:
- MHDD посылает команду VERIFY SECTORS с номером LBA (номер сектора) и номером секторов в качестве параметров.
- Накопитель поднимает флаг BUSY.
- MHDD запускает таймер.
- После того как накопитель выполнил команду, он опускает флаг BUSY.
- MHDD вычисляет затраченное накопителем время и выводит соответствующий блок на экран. Если встретилась ошибка (bad block), программа выводит букву, которая описывает ошибку.
MHDD повторяет шаги 1–5 до конечного сектора. Если нужен протокол сканирования, его всегда можно найти в файле log/mhdd.log. Во время сканирования ты можешь увидеть много прямоугольников разного цвета. Чтобы ты не сильно пугался, привожу выдержку из справки:
Наличие красных (>500 ms) блоков на полностью здоровом накопителе недопустимо. Если они есть, необходимо произвести стирание (erase) всей поверхности диска и, если это не помогло, избавиться от задержек, можно делать выводы, что данный накопитель перестал быть достаточно надежным. Буквенно-символьные блоки, например x , S и т.п., недопустимы: они говорят о наличии bad-блоков на поверхности.
Первое, что должно быть сделано, — это полная очистка поверхности командой erase. Если это не помогло, то scan с включенной опцией EraseWaits. Если bad-блоки так и не исчезли, следует запустить scan с включенной опцией Remap.
Читайте также: