Собрался написАть очередную главу в фак, дык... не дайте умереть в неведении, почитайте, пож., внимательно, а то стремно сразу в фак засовывать. Спасибо.
Низкоуровневый формат, формат логического тома и обнуление. Под понятием "низкоуровневый формат", многие подразумевают обычное обнуление диска. На самом деле низкоуровневое форматирование поверхности диска делается на заводе, потому, что подразумевает запись на поверхности диска серворазметки. Делается при помощи серворайтера, что, сами понимаете, в домашних условиях просто не реально. Помимо нанесения серворазметки, низкоуровневый формат подразумевает создание рабочей зоны диска, основываясь на его таблице зонного распределения.
Таблица зонного распределения это часть микрокода, содержащая информацию о размере и расположении зон на дисковой поверхности, находится в служебной зоне.
Служебная зона это часть дискового пространства HDD, скрытая в недрах накопителя и недоступная средствами ОС и BIOS. Применяется для нужд самого накопителя: в ней хранятся рабочие программы контроллера, адаптивы, паспорт диска, таблицы дефектов, транслятор, значения атрибутов SMART и т.д. Все вместе они образуют специализированную операционную систему, управляющую винтом.
Транслятор это часть микрокода винта, отвечающая за преобразование логического адреса в физический. Запрос по интерфейсу идет в логической адресации (CHS или LBA), а головки едут туда, куда транслятор решит.
Логический формат (высокого уровня) - процесс создания разделов и файловой системы на магнитном носителе. Имеет средства для логического скрытия дефектов.
Заполнение нолями это очистка носителя от файловой системы с полным уничтожением всей информации на нем. Производится через интерфейс, путем записи нулей во все его секторы. Если запись осуществлять в обход функций ОС и BIOS (через порты), то происходит перерасчет контрольных сумм секторов и ликвидация логических BAD-ов. Обнуление производится внутренней программой DiskPart, либо сторонней, взять тот же Acronis DiskEditor или WinHex. Большинство USER'ов заблуждаются (я, и сам так предполагал ранее), думая, что при посекторном редактировании (считывании) диска, работая в той же DiskEditor, они работают с диском на физическом уровне. Это не так, это тоже логика, но только уровнем ниже файловой системы, так называемый прямой доступ к диску на логическом уровне, т.е. в обход файловой системы, не более. На низком уровне работает только сам винчестер (контроллер), т.е. на уровне своих технологических команд.
Технологический режим это особое состояние накопителя, когда его ПЗУ и служебная зона открыты для доступа через интерфейс.
Аппаратные и логические бэды, ошибки файловой системы BAD-блок это область дискового пространства, обычно размером с сектор (512 байт), утратившая способность хранения информации в результате повреждений.
Как известно сектор состоит из 2х частей, поле данных и поле с контрольной суммой этих данных. Когда контрольная сумма данных не совпадает, с записанной в соответствующем поле, диск выдает ошибку чтения (Unable to Correct by ECC).
ECC (Error Correction Code) код коррекции ошибок, применяемый в HDD. Способ кодирования информации, когда к исходным данным добавляется их избыточность с контрольными суммами. Позволяет восстанавливать целостность данных, даже если они были прочитаны с ошибкой, а также сообщать об ошибках, если их было несколько.
Если это дефект поверхности, то это будет аппаратный бэд. Если же данные просто не совпадают с контрольной суммой (по разным причинам) и дефекта поверхности нет, то это уже логический бэд.
Помимо этого бывают еще логические ошибки файловой системы, возникают, как правило, при проблемах с питанием и чаще исправляются CHKDSK.
Переназначение секторов ("remapping")
Запись на диск происходит по принципу работы обычного магнитофона, идет запись и тут же, мы можем прослушивать эту запись. Современная головка винчестера - это комбинация МГ (индукционного типа) и головка считывания (MR - типа). Достаточно первым по ходу расположить зазор головки записи, а следом головки чтения и получаем результат: возможен контроль достоверности записанной информации на одном заходе. Если результат сравнения отрицательный, выходим на повторную процедуру записи при следующем обороте.
Есть у современных винтов такая вещь, как SMART Auto Off-Line Test. Его смысл, в определенный момент времени (обычно через некоторое время отсутствия команд от host-контроллера), производить обновление статистических данных (собственно SMART), а также производить тестирование секторов, ссылки на которые есть в логах ошибок винта. И если, во время этого теста, контроллер признает сектор дефектным - будет сделан "remap", при условии, что Auto Reallocate также включен (по умолчанию включен).
Понятно, что "ремапятся" только аппаратные бэды. Практически у всех современных винчестеров "remaping" прозрачен для пользователя. Диск производит "ремап" по одному ему известному алгоритму (определенная последовательность циклов чтения, записи, верификации сектора), этим занимается контроллер и сначала сбойный сектор заносится во временный G-List.
G-list это часть таблицы дефектов HDD, пополняемая в процессе эксплуатации харда. Добавление дефектов осуществляет не пользователь, а сам накопитель в процессе ремапа. Число убранных дефектов можно легко узнать по значению SMART-атрибута Reallocated Sector Count. ОС с этим сектором (т.е. со всем кластером) работать не станет, потому что кластер будет помечен в MFT как "В". Теперь немного подробнее. Когда на диске появляются ошибки файловой системы и при чтении головками сектора, в котором есть данные с ошибками, контроллер сообщает системе, что этим данным доверять нельзя. ОС выкидывает сообщение о невозможности прочтения, а в MFT ($Volume) выставляется флаг запуска программы CHKDSK (при следующей перезагрузке компьютера), причем без ведома пользователя. При перезагрузке системы, происходит 10 секундный отсчет, и пользователь решает, разрешить запуск CHKDSK или нет. CHKDSK это программа, т.е. определенный набор команд, посылаемый, в конечном счете, диску. Если были ошибки файловой системы (принцип работы
CHKDSK), они диском и исправляются, флаг запуска CHKDSK в MFT снимается. Если же ошибки исправить не удалось, CHKDSK мельком выкидывает сообщение о произошедших изменениях на диске (его можно потом просмотреть в "Event Viewer") и, загрузившись в систему, мы видим печально известные папки FOUND.00X или, вообще, не находим какие то файлы. Если имеет место быть бэд, сбойный сектор заносится во временный G-List и далее с ним имеет дело только сам диск и не факт, что он будет "заремаплен" сразу, контроллер будет еще работать с этим сектором, и возможно туда, впоследствии, будет произведена запись. Если мы имеем дело с логическим бэдом, можно загрузиться в DiskEditor, найти (логически) сбойный сектор и попытаться его обнулить. Надо полагать поэтому, при обнулении винчестера, исправляются некоторые ошибки, которые не смогла исправить CHKDSK. Если этот сектор перезаписать не удалось, возможно мы имеем дело уже с аппаратным бэдом и им будет заниматься сам контроллер.
Вообще, контроллер, очень трудно "убедить" в том, что сектор сбойный, это целая наука и все тонкости "ремапа" знает лишь специалист по ремонту конкретной модели дисков. Пользователю же можно воспользоваться известными программами (PC3000, MHDD), которые умеют выполнять ряд технологических команд, для того, чтобы "заставить" контроллер (не факт, что каждый) "сремапить" сектор "навсегда".