Восстановление данных на 100% - Страница 9

Изменить размер шрифта:
Восстановление данных на 100% - i_017.png

Рис. 2.3. Цилиндры, головки и сектора

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

Адресация ECHS (Extended CHS), или Large, – дальнейшее развитие адресации CHS. Иначе ее называют «фиктивной адресацией» – число цилиндров, головок и секторов назначается изготовителем винчестера совершенно произвольно и записывается в CMOS контроллера.

Наряду с трехмерной адресацией CHS была придумана адресация логических блоков LBA – Logical Block Adress. С одной стороны, при этом типе адресации данные считываются логическими блоками, состоящими из нескольких секторов. Соответственно, число цилиндров делается меньше, а головок – больше, чем в действительности. С другой стороны, эта адресация линейная: каждому логическому блоку присваивается порядковый номер LBA. За нулевой принимается блок, который начинается с первого сектора нулевой головки нулевого цилиндра. Далее номера блоков определяются по формуле:

LBA = (CYL · HDS + HD) · SPT + SEC – 1,

где CYL, HD, SEC – номера цилиндра, головки и сектора в пространстве CHS; HDS – количество головок; SPT – количество секторов на дорожке.

Примечание

Блоки, цилиндры и дорожки нумеруются, начиная с нуля, а сектора – с первого номера. Такая нумерация сложилась исторически.

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

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

Если предложить контроллеру автоматически выбрать тип адресации, то он выберет CHS – универсальную адресацию. Если, как было сказано ранее, позволить BIOS выбирать настройки автоматически (auto), то адресация жестких дисков, как правило, происходит именно в CHS.

Организация дорожек и секторов

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

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

Полный объем каждого сектора составляет 571 байт. Из них 512 байтов предназначены для записи данных (data), а 95 байтов содержат служебные сведения о внутреннем номере сектора, контрольные суммы и т. д. Эта информация записывается при низкоуровневом форматировании диска еще на заводе, и доступ к ней через интерфейс предельно ограничен.

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

Процесс переназначения (remapping) сводится к тому, что, когда операционная система выдает запрос на информацию, находящуюся по адресу сбойного сектора, контроллер диска незаметно переадресовывает запрос к одному из запасных секторов. Контроллер постоянно обновляет карту дефектов, занося в нее каждый новый обнаруженный сбойный сектор. В современных винчестерах таблица переназначения может частично храниться во flash-памяти, а частично записываться на служебные дорожки самого диска. Фактически при обращении к диску контроллер пользуется таблицей, состоящей из двух частей. Первая – трансляция адресов, вторая – оперативные уточнения к ней, переназначение. Все это происходит на аппаратном уровне и никак не связано с форматированием, разделами или файловой системой. Дефектные сектора совершенно не заметны через интерфейс.

Практический вывод из всего сказанного касается случаев ремонта и замены электроники жесткого диска. По общему правилу заменять плату можно лишь на плату от винчестера той же модели и серии (Model, ID и Part No). Все сведения о формате хранятся в гермоблоке, и после замены платы они должны успешно читаться. После замены платы с установленным на ней ПЗУ может быть перестроена или дополнена таблица переназначения секторов.

Форматирование жестких дисков

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

Главная загрузочная запись и таблица разделов

В первом секторе на любом жестком диске находятся код простой программы (загрузчика) и последовательность информационных полей (таблица разделов). Вместе программа и поля называются главной загрузочной записью (Master Boot Record – MBR).

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com