Наверное, почти каждому владельцу компьютера знакомы эти словосочетания – «бэд-блоки» или «дефектные сектора». Все их боятся и, когда их находят, обычно начинается паника. В этой статье я расскажу про дефектные сектора, что это такое, нужно ли их бояться и как с ними бороться.
Дефекты – что это?
Поверхность жесткого диска имеет строгую организацию. Основная единица поверхности – сектор; это порция данных, имеющая определенную структуру. Как правило, эта структура включает в себя заголовок, тело (которое, собственно, и несет данные) и контрольную сумму. У некоторых накопителей сектор может также нести служебную информацию (маркер физического адреса, маркер принадлежности к поверхности и т.п.), но для нас это не важно – важны именно заголовок, тело и контрольная сумма. Сектора организованы в треки, или цилиндры, а последние, в свою очередь – в зоны.
Поверхность жесткого диска, хотя и изготавливается в идеальных условиях, ввиду громадного количества единиц хранения данных (секторов) не может быть изготовлена без дефектов. Эти дефекты поверхности могут быть различной природы – от банальных царапин до мест, где нанесение ферромагнитного состава было проведено с ошибками (тоньше или толще чем нужно). Попадающие в эти области сектора, очевидно, не будут нормально работать, и на этом основании исключаются из использования и помечаются как дефектные.
Таким образом, дефектные сектора – это любые проблемы поверхности жесткого диска, SSD или флеш-карты, приводящие к затруднению или невозможности операций чтения и записи.
Какие бывают дефекты?
Дефектные сектора принято разделять по происхождению и по времени возникновения. По происхождению дефекты бывают:
Аппаратные – дефектный сектор образовался в результате физического повреждения поверхности;
Программные – дефектный сектор образовался в результате сбоя программного обеспечения, причем не важно – пользовательская это программа или микропрограмма накопителя.
По времени возникновения дефекты делятся на: заводские и послезаводские.
Заводские дефекты – те, которые были обнаружены и скрыты на заводе-изготовителе.
Послезаводские дефекты – те, которые образовались уже после выпуска устройства с завода и были скрыты в процессе его эксплуатации.
Что такое дефект-менеджмент?
Скрытие дефектных секторов и оперирование скрытыми секторами называется дефект-менеджментом (управление дефектами). Суть его заключается в обеспечении бесперебойной работы диска с использованием только исправных, нормально читающихся и записывающихся областей поверхности. Упрощенно дефект-менеджмент построен по следующей схеме:
1) обработка заводского списка дефектов и построение системы трансляции накопителя с его использованием;
2) обработка растущего списка дефектов и подстройка имеющейся системы трансляции с его использованием;
3) постоянный мониторинг состояния поверхности;
4) добавление в случае необходимости дефектов в растущий список дефектов и перестроение системы трансляции в связи с этим.
Что такое система трансляции (транслятор)? На диске все сектора, и хорошие, и плохие, расположены один за другим; для того, чтобы использовать только хорошие сектора, требуется пропустить плохие. Этим и занимается транслятор: в самом упрощенном представлении это карта поверхности, на которой неисправные области (бэд-блоки) имеют соответствующее обозначение и при работе диска будут пропускаться, а исправные имеют сквозную нумерацию (с пропуском неисправных) и будут использоваться.
Система трансляции в современных дисках учитывает не только сектора, но и другие единицы организации дискового пространства: треки, диапазоны секторов, сервометки и даже зоны. Это особенно важно для дисков с исходно низким качеством поверхности: при большом количестве дефектов (несколько миллионов) «утрамбовывание» их всех в дефект-листы по одному сделает работу системы трансляции слишком громоздкой и может привести к ошибкам. Если же убрать из трансляции целый трек (а это, для некоторых дисков и зон, десятки тысяч секторов), то в дефект-лист попадает не несколько тысяч, а одна запись, и транслятор будет работать гораздо надежнее и оперативнее.
Отдельно следует сказать о том, какой может быть система трансляции. Наиболее широкое распространение получили три типа транслятора: статический, динамический и многоуровневый. Работа статического транслятора обеспечивается особым модулем служебной информации; грубо говоря, все таблицы трансляции поверхности у такого накопителя уже построены и каждый раз загружаются из готового модуля транслятора из служебной зоны. Динамический транслятор работает по другому принципу: таблицы трансляции накопителя строятся в его памяти при каждом его старте с использованием имеющихся таблиц дефектов; отдельно модуля транслятора в служебной зоне таких накопителей нет. Наконец, многоуровневый транслятор подразумевает работу в накопителе нескольких систем трансляции (первого уровня, второго уровня и т.п.), при этом транслятор первого уровня обычно отвечает за физическую систему трансляции, а второго – за логическую. Многоуровневый транслятор разработан для обеспечения высокой скорости уничтожения данных: в случае необходимости одна из таблиц трансляции просто обнуляется (упрощенно при любом запросе диск отдает один и тот же сектор, заполненный нулями).
P-List, G-List и прочая
Непосредственно с дефект-менеджментом связаны таблицы дефектов (дефект-листы). Наиболее известными являются P-List и G-List (заводская и растущая таблицы дефектов); кроме них, в зависимости от производителя, могут иметься и таблицы других дефектов: треков (T-List), серво-разметки (S-List) и пр. Таблицы дефектов хранят в приемлемом для накопителя виде записи о бэд-блоках. Как правило, эти записи включают в себя физический адрес первого дефектного сектора и длину дефектной области (если это один сектор – то, соответственно, длина будет 1).
Потеря некоторых из этих таблиц может привести к недоступности данных пользователя, это крайне важно понимать.
Как проявляют себя диски с дефектами поверхности?
Дефекты поверхности диска – это, прежде всего, невозможность считать какую-то его область. Следовательно, при попытке чтения этой области проблемы с чтением будут сразу же заметны. Файл, который вы пытаетесь прочитать, не будет читаться; данные, которые вы будете пытаться скопировать, не будут копироваться; и т.д. В системе это обычно сопровождается сообщением типа «A read/write error has been detected» или подобной; если для копирования данных вы пользуетесь файловым менеджером, то вы увидите сообщение типа «Невозможно скопировать файл. Невозможно произвести чтение с диска или устройства».
Если область с бэд-блоками попала на какие-то установленные программы, то они либо перестанут запускаться вообще, либо их запуск будет затруднен, либо работа самой программы начнет завершаться с ошибками.
Ну и, наконец, если дефектная область попала на критически важные файлы операционной системы, та перестанет запускаться (как примеры: бесконечный первый экран Windows или «синий экран смерти» с характерными для проблем с жестким диском кодами ошибок: 0x00000010, 0x00000019, 0x00000022, 0x00000026, 0x0000004C, 0x00000051, 0x00000052, 0x00000068, 0x00000073, 0х00000077, 0х0000007А, 0х0000007В, 0х0000009В, 0х000000ED, 0x000000F4, 0xC0000135, 0xC0000218).
В областях с проблемами чтения (сильное замедление доступа к данным в секторе) система может подвисать (фризы), иногда – довольно надолго. Как пример: у вас имеется Word-документ, с которым вам нужно работать. Вы кликаете на этот файл, начинается запуск MS Word, и он продолжается значительно дольше обычного (десятки секунд или даже минуты). Это говорит о том, что медленно читаются сектора либо части программного обеспечения MS Word, либо – в самом документе.
Замедления еще не являются дефектными секторами, но их наличие – четкий сигнал к тому, что вам совершенно необходимо резервное копирование данных и, возможно, замена жесткого диска.
SMART и его атрибуты: как определить, что состояние поверхности критическое?
Для контроля за состоянием диска разработана подсистема микропрограммы, имеющая название SMART (Self Montoring, Analysis and Reporting Technology; технология самомониторинга, анализа и предупреждения). Эта подсистема работает независимо от других частей микропрограммы (хотя в некоторых современных дисках это не так и приводит к проблемам, но это – тема для отдельной статьи), ее работу можно упрощенно описать следующей схемой:
1) В подсистеме выделяются несколько характеристик (которые названы «атрибуты SMART»);
2) По выделенным атрибутам производится сбор «сырых» данных;
3) Собранные «сырые» данные анализируются микропрограммой, в результате этого анализа генерируется число (текущее значение атрибута);
4) На основании комбинации значений атрибутов формируется ответ на вопрос о текущем состоянии диска (Good, OK, Must be replaced и т.п.).
Обычно атрибуты SMART читаются из дисков при старте компьютера, и если с диском начинаются проблемы, Вы узнаете об этом еще до запуска Windows по сообщению примерно такого содержания: Hard Drive SATA0: SMART status BAD. Это означает, что по сумме атрибутов или даже по единственному из них диск «просел» до критических значений и более не может считаться исправным. В таких случаях рекомендуется произвести резервное копирование данных и замену накопителя.
Атрибуты SMART может читать не только операционная система, но и специальные программы, наиболее известные из которых: Victoria for Windows, Hard Disk Sentinel и т.п. Мониторя изменение атрибутов SMART, вы можете примерно предсказать, сколько еще времени отпущено вашему устройству. Например, наблюдая за атрибутом “Relocated sectors count” (счетчик переназначенных секторов; упрощенно – количество записей растущего списка дефектов), вы будете видеть, сколько секторов в день у вашего диска из нормальных превращается в плохие. Наблюдать, однако, я рекомендую не за отдельными атрибутами, а за их комплексом, и причина проста: например, у вашего диска начнет расти атрибут «Spin errors» (или подобный) – это означает, что диск не смог раскрутить шпиндельный двигатель. Как результат – при попытке очередной раскрутки может произойти сбой и головки спровоцируют возникновение дефектного сектора или, еще хуже – застрянут на поверхности. Если же вы вовремя заметили начало роста этого атрибута, то и меры для исправления ситуации с ним тоже примете вовремя: поменяете шлейфы (это наиболее частая причина возникновения таких ошибок) или блок питания.
Для примера приведу анализ нового SSD (ADATA SU800 емкостью 512 Гбайт) и бывшего в употреблении около полугода HDD Seagate Mobile HDD 2 Тбайт. Как мы видим, у SSD прекрасный SMART и график чтения без единой ошибки. А вот с HDD все достаточно грустно: уже есть дефекты, около половины атрибутов SMART уже в желтой зоне, и один атрибут (как раз отвечающий за бэд блоки) – в красной зоне. Данные необходимо резервировать, а накопитель или ремонтировать, или менять.
Тестируем на бэд-блоки
Я рекомендую периодически (один раз в 2 – 3 недели) проводить проверку ваших носителей на дефектные сектора. Оптимально делать это следующим образом:
1) Скачать из интернета образ загрузочной флешки (часто называется Live CD), в состав которого входит программа для тестирования дисков (обычно это Victoria);
2) Записать скачанный образ на флешку (я использую для этого программу Rufus);
3) Загрузить ваш компьютер с записанной флешки (указав при загрузке компьютера в качестве загрузочного устройства вашу флешку – это достаточно просто, при запуске на одном из первых экранов вы увидите фразу типа «Boot options – F10” или подобную. Жмите на соответствующую кнопку, и у вас появится меню с возможностью выбора загрузочного устройства.
4) После загрузки – запускайте программу для проверки и проверяйте диск на дефекты. Внимание! Важно! При выборе теста никогда не отмечайте галку «запись» — это сотрет все ваши данные. Наилучшим режимом проверки является верификация (verify).
Возможно два варианта – либо вы не обнаружите на диске дефектов, либо – обнаружите. Если обнаружились дефекты, то вам нужно оценить следующие показатели:
1) Сколько нашлось дефектов?
2) К каким типам ошибок относятся дефекты?
3) Как расположены дефекты?
Если дефектов немного (до 100 штук) – то волноваться не стоит и, скорее всего, после описываемых ниже процедур ваш диск продолжит трудиться. Если дефектов много (свыше 100) – скорее всего, диск требует замены. Значение 100 в данном контексте не стоит воспринимать как приговор для диска – все сильно зависит от его объема и условий эксплуатации. Но в любом случае, если количество обнаруженных дефектов многократно превышает 100, диск подходит (если уже не подошел) к своей последней черте.
По типам ошибок наиболее распространены ABR (Abort, Command Aborted) – команда, которую получил диск при обращении к сектору, отвергнута; UNC (Uncorrectable ECC Error) – при чтении диска обнаружена нескорректированная ошибка данных (обычно контрольной суммы сектора); INF (Sector ID Not Found) – не удалось обнаружить идентификатор сектора. Все остальные ошибки встречаются реже и останавливаться на их обсуждении мы не будем. О чем же говорят нам эти ошибки? Если при чтении сектора отвергнута команда, то наиболее вероятная причина этого – ошибка микропрограммы (например, «зависшие» операции журналирования SMART). Скорее всего, при повторном тестировании такой ошибки или не появится вообще, или она выскочит в другом месте.
Ошибки типа INF говорят о тяжелых повреждениях поверхности, связанных с разрушением сервисной информации поверхности (или заголовок сектора, или (чаще) заголовок трека). При обнаружении ошибок такого типа я настоятельно рекомендую подумать о срочной замене накопителя и немедленном резервировании данных. Разрушение поверхности – абсолютно непредсказуемое явление, один диск может прожить с широкой царапиной несколько лет, а другой от почти невидимого следа удара полностью запилиться за пару секунд.
Наконец, ошибки типа UNC могут возникать и как результат аппаратных проблем (непосредственные проблемы с поверхностью), и как результат неправильной работы программ (например, при записи данных не финализирована контрольная сумма сектора). Такие ошибки чаще всего легко «лечатся» и диск продолжает нормально работать годами.
И последнее – это то, как дефекты расположены. Скопления по несколько десятков или сотен дефектов должны вас насторожить – возможно, это небольшая царапина, которая вполне может превратиться в запил. Если дефекты расположены поодиночке, поводов для беспокойства меньше.
Что делать, если обнаружены дефектные сектора?
Первый, и наиболее правильный совет – не паниковать.
Определитесь, имеются ли на вашем начавшем «сыпаться» диске нужные вам данные. Если они есть – немедленно приступите к их резервированию. Любые действия с диском, которые будут описаны ниже, можно проводить только после того, как у вас появится полная резервная копия ваших данных.
Итак, данные зарезервированы. Проверьте еще раз, что вы скопировали в резерв именно те файлы, которые нужны, а также то, что эти файлы работают. Если все нормально, то можно приступать к процедуре лечения диска от дефектных секторов.
Образование дефектов – это нормально. Жесткий или твердотельный диск устроен таким образом, что новообразующиеся дефектные сектора по мере их обнаружения будут скрыты средствами самого накопителя. Если вы обнаружили 1 – 2 бэд-блока, то, скорее всего, накопителю просто не хватило времени на их «ремонт» (скажем, диск обнаружил дефектный сектор и уже собирался приступить к его замещению, как вы выключили компьютер). Вот этот вот принцип (автоматического скрытия дефектного сектора при его обнаружении) мы и будем использовать для лечения диска.
Поменяйте шлейфы (и SATA, и питание) – часто ошибки образуются по причине плохого контакта (любой разъем имеет свойство расшатываться, контакт – ухудшаться). Это обезопасит вас от образования новых программных дефектов и продлит жизнь вашего диска.
Выше я уже описывал, как создать загрузочную флешку для запуска тестирования жесткого диска на выявление дефектов. Нам нужно будет снова использовать эту флешку.
Загружаемся с флешки и запускаем программу для тестирования носителей информации (обычно это Victoria). И теперь начинается самое интересное – лечение. Для того, чтобы излечить диск от дефектов, мы используем только механизмы, заложенные в сам накопитель: программные бэд-блоки (так называемые софт-бэды) уберутся, когда у сектора появится правильная контрольная сумма, а реальные дефекты мы попробуем заставить диск убрать автоматически. Обоих зайцев будем убивать записью.
Настоятельно рекомендую еще раз убедиться в том, что все нужные данные были зарезервированы – после того, как мы прогоним диску запись, данных на нем не будет. Если все хорошо и вы уверены, что все ваши данные надежно сохранены на другом носителе – приступаем к лечению. Для этого в Victoria, после выбора нужного диска, переходим на вкладку тестов и выбираем write (запись). Внимание! Данный тест полностью и безвозвратно стирает данные на физическом уровне!
Нажимаем Start и ждем окончания теста. После того, как он завершился, во вкладке тестов выбираем верификацию (verify) и снова нажимаем Start. После окончания верификации оцениваем график чтения. Он должен стать ровнее, дефекты должны исчезнуть. Если этого не произошло – можно попробовать пройтись записью еще один – два раза. Как правило, в случае с софт-бэдами и небольшим количеством новообразовавшихся дефектов достаточно одного прохода записью. Если их нужно больше – значит, диск работает уже на пределе своих возможностей и остро нуждается в замене. Подумайте, захотите ли вы доверять данные такому накопителю.
Почему я советую провести процедуру лечения записью прежде, чем ставить на диске крест? Если проблемы крылись в программных ошибках или в плохом контакте (расшатанные разъемы, плохое качество шлейфов и т.п.), то замена разъемов/шлейфов и запись их полностью излечит и поверхность диска станет как новая. По нашей статистике не меньше половины дисков с бэд-блоками – это диски, имеющие софт-бэды, с прекрасной (на самом деле) поверхностью. «Заваленный» SMART, провалы в графиках чтения и прочие прелести казалось бы умирающего диска – лишь следствие плохого контакта и программных ошибок, аппаратно диск может быть еще весьма и весьма далек от путешествия в свой битовый рай. Ну а если его можно спасти малой ценой (по два доллара за шлейфы хорошего качества и ночь работы компьютера в режиме записи и верификации) – то почему бы и нет?
Заключение
Как я уже писал выше, образование на диске дефектных секторов — нормальное явление при эксплуатации любого носителя информации, и их микропрограмма приспособлена для того, чтобы в автоматическом режиме решать эту проблему. Поэтому при обнаружении нескольких дефектов особых поводов для беспокойства нет — как только диск их обнаружит, он с ними самостоятельно справится. Если дефектов обнаружилось много, это может уже быть серьезно, и в этом случае я настоятельно рекомендую начать с резервного копирования данных, после которого пробовать описанный выше механизм лечения. Если же он не помог — не пытайтесь использовать диск, «обходя» дефектные области с помощью создания разделов разного размера и расположения. Диск нужно менять — риск того, что дефектная область будет увеличиваться, очень велик, при современных ценах на накопители есть ли смысл так рисковать?
Станислав Корб, ©2018