что такое lba жесткого диска

Стандарт IDE включал 22-битный LBA в качестве опции, который был расширен до 28-битного с выпуском ATA-1 (1994) и до 48-битного с выпуском ATA-6 (2003), тогда как размер записи в структурах данных на диске и в памяти, содержащие адрес, обычно имеют размер 32 или 64 бита. Большинство жестких дисков, выпущенных после 1996 года, реализуют адресацию логических блоков.

СОДЕРЖАНИЕ

Обзор

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

LBA была впервые представлена ​​в SCSI как абстракция. Хотя контроллер диска по-прежнему обращается к блокам данных по их адресу CHS, эта информация обычно не используется драйвером устройства SCSI, ОС, кодом файловой системы или любыми приложениями (такими как базы данных), которые обращаются к «необработанному» диску. Системные вызовы, требующие ввода-вывода на уровне блоков, передают определения LBA драйверу устройства хранения; в простых случаях (когда один том отображается на один физический диск) этот LBA затем передается непосредственно контроллеру диска.

Усовершенствованный BIOS

Более ранний стандарт IDE от Western Digital представил 22-битный LBA; в 1994 году стандарт ATA-1 позволял использовать 28-битные адреса в режимах LBA и CHS. Схема CHS использовала 16 бит для цилиндра, 4 бита для головы и 8 бит для сектора, подсчет секторов от 1 до 255. Это означает, что сообщаемое количество головок никогда не превышает 16 (0–15), количество секторов может быть 255 ( 1–255; хотя чаще всего используется 63), а количество цилиндров может достигать 65 536 (0–65535), что ограничивает размер диска 128 ГиБ (≈137,4 ГБ), предполагая 512-байтовые сектора. К этим значениям можно получить доступ, выполнив команду ATA «Идентифицировать устройство» ( EC h) для привода.

LBA-перевод

Когда BIOS настроен на использование диска в режиме трансляции с помощью LBA, BIOS обращается к оборудованию в режиме LBA, но также представляет преобразованную геометрию CHS через интерфейс INT 13h. Количество цилиндров, головок и секторов в преобразованной геометрии зависит от общего размера диска, как показано в следующей таблице.

Размер диска Секторы / трек Головы Цилиндров
1 63 16 Х ÷ (63 × 16 × 512)
504 МБ 63 32 Х ÷ (63 × 32 × 512)
1008 МБ 63 64 Х ÷ (63 × 64 × 512)
2016 МиБ 63 128 X ÷ (63 × 128 × 512)
4032 МБ 63 255 X ÷ (63 × 255 × 512)

LBA48

Преобразование CHS

Эквивалентность LBA и CHS с 16 головками на цилиндр
Значение LBA Кортеж CHS
0 0, 0, 1
1 0, 0, 2
2 0, 0, 3
62 0, 0, 63
63 0, 1, 1
945 0, 15, 1
1007 0, 15, 63
1008 1, 0, 1
1070 1, 0, 63
1071 1, 1, 1
1133 1, 1, 63
1134 1, 2, 1
2015 г. 1, 15, 63
2016 г. 2, 0, 1
16 127 15, 15, 63
16 128 16, 0, 1
32 255 31, 15, 63
32 256 32, 0, 1
16 450 559 16319, 15, 63
16 514 063 16382, 15, 63

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

Кортежи CHS могут быть сопоставлены с адресом LBA по следующей формуле:

Согласно спецификациям ATA, «Если содержание слов (61:60) больше или равно 16 514 064, то содержание слова 1 [количество логических цилиндров] должно быть равно 16 383». Следовательно, для LBA 16450559 диск ATA может фактически ответить кортежем CHS (16319, 15, 63), и количество цилиндров в этой схеме должно быть намного больше 1024, разрешенного INT 13h.

Зависимости от операционной системы

Источник

Режимы LBA, LARGE и NORMAL

LBA и LARGE — это методы распознавания жестких дисков большой емкости (более 528 Мбайт).
Первоначально режим LBA предназначался для SCSI-устройств.

Читайте также:  что значит алкогольное зачатие

Цилиндры, головки и сектора распознаются не в трех измерениях, а только в одном.

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

Такое возможно, только если BIOS или жесткий диск поддерживают режим LBA.

Метод LARGE заключается в делении числа цилиндров на 2, если оно больше 1024 и меньше 2048, после чего число головок умножается на 2.
Этот метод может быть использован при работе с жесткими дисками, не поддерживающими LBA.

В режиме NORMAL распознаются только жесткие диски емкостью до 528 Мбайт.
Этот режим использовался в старых дисках.

Различие между режимами LARGE и LBA заключается в том, что LBA на половину уменьшает число цилиндров и вдвое увеличивает число головок, в то время как режим LARGE устанавливается, как и режим NORMAL, но число цилиндров увеличивается, увеличивая тем самым емкость.

Большинство производимых сегодня жестких дисков поддерживают режим LBA, поэтому в BIOS Setup для жесткого диска следует установить либо режим Auto, либо LBA.

Источник

Методы адресации HDD (CHS и LBA).

Методы адресации HDD (CHS и LBA).

Существует два основных метода, используемых для адресации (или нумерации) секторов накопителей. Первый из них называется CHS (Cylinder Head Sector). Это название образовано по трем соответствующим координатам, которые используются для адресации каждого сектора дисковода. Во втором методе, который носит название LBA (Logical Block Address), для адресации секторов накопителя используется только одно значение. В основе метода CHS лежит физическая структура накопителей (а также способ организации его внутренней работы).

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

При последовательном считывании данных с накопителя в режиме CHS процесс чтения начинается с цилиндра 0, головки 0 и сектора 1 (который является первым сектором на данном диске), после чего считываются все остальные секторы первой дорожки. Затем выбирается следующая головка и читаются все секторы, находящиеся на этой дорожке. Это продолжается до тех пор, пока не будут считаны данные со всех головок первого цилиндра. Затем выбирается следующий цилиндр, и процесс чтения продолжается в такой же последовательности.

При последовательном считывании данных с накопителя в режиме LBA процесс чтения начинается с сектора 0, после чего читается сектор 1, сектор 2 и т.д. В режиме CHS первым сектором жесткого диска является 0,0,1. В режиме LBA этот же сектор будет сектором 0.

В качестве примера представьте себе накопитель, содержащий один жесткий диск, две головки (используются обе стороны жесткого диска), две дорожки на каждом жестком диске (цилиндры) и два сектора на каждой дорожке. В этом случае можно сказать, что накопитель содержит два цилиндра (две дорожки на каждой стороне), две головки (по одной на сторону), а также два сектора на каждой дорожке. В общей сложности емкость накопителя равна восьми (2×2×2) секторам. Обратите внимание: нумерация цилиндров и головок начинается с числа 0, а нумерация физических секторов, находящихся на дорожке, — с числа 1. При использовании адресации CHS расположение первого сектора накопителя определяется выражением “цилиндр 0, головка 0, сектор 1 (0,0,1)”; адресом второго сектора является 0,0,2; третьего — 0,1,1; четвертого — 0,1,2 и т.д., пока мы не дойдем до последнего сектора, адрес которого 1,1,2.

Как видно из приведенного примера, использование нумерации LBA заметно облегчает и упрощает процесс обработки данных. Несмотря на это, при создании первых ПК вся адресация BIOS и накопителей АТА была выполнена методом CHS.

Преобразования CHS/LBA и LBA/CHS

Адресация секторов может выполняться как в режиме CHS, так и в режиме LBA. Для данного накопителя существует определенное соответствие между адресациями CHS и LBA, которое, в частности, позволяет преобразовывать адреса CHS в адреса LBA и наоборот. Существует довольно простая формула, с помощью которой можно преобразовывать параметры CHS в LBA:

Читайте также:  что такое альтиметр в часах для чего он нужен

LBA = (((C × HPC) + H) × SPT) + S – 1.

Реверсирование этой формулы позволяет выполнить обратное преобразование, т.е. преобразовать параметры LBA в адрес CHS:

H = int ((LBA/SPT) mod HPC),

В этих формулах использованы следующие выражения:

— LBA — logical block address;

— C — цилиндр (cylinder);

— HPC — количество головок в каждом цилиндре (общее количество головок);

— SPT — количество секторов на каждой дорожке;

— int X — целочисленная часть X;

— X mod Y — модуль (остаток) от X/Y.

Программы BIOS ( когда объем HDD был очень скромным) использовали адресацию CHS, например:

AL=число читаемых секторов

АL=число переданных секторов

вся адресная информация передается через буфер в оперативной памяти, а не через регистры;

соглашения об использовании регистров изменены (для обеспечения передачи новых структур данных);

для определения дополнительных возможностей аппаратуры (параметров) используются флаги.

Пакет дискового адреса.

Правила передачи параметров дополнительным функциям. При вызове прерывания дополнительным функциям BIOS передаются через регистры процессора следующие данные:

— в АН — номер вызываемой функции;

— в DS: SI — адрес буфера, содержащего пакет дискового адреса.

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

Дополнительные функции BIOS предназначены только для жестких дисков и дисководов сменных дисков большой емкости, причем функции рассчитаны на использование не более четырех устройств. Передаваемый функции номер диска, таким образом, должен находиться в диапазоне 80h-83h.

После выполнения функции в регистре АН выдается код состояния (статус возврата). Кроме принятого для классических функций BIOS стандартного набора кодов возврата, для дополнительных функций введено еще несколько кодов.

Пример использования прерывание Int 13h, функция 42h: расширенное чтение.

Функция осуществляет передачу секторов с заданной области диска в буфер памяти. Перед вызовом прерывания требуется записать в регистры следующие значения:

— в АН — значение 42h;

— в DL — номер дисковода;

— в DS: SI — адрес пакета дискового адреса.

После завершения операции функция возвращает в регистре АН состояние дисковой системы. В случае аварийного завершения выполнения функции поле счетчика блоков в пакете дискового адреса содержит число блоков, которые были успешно прочитаны (прочитаны до того, как произошла ошибка).

Источник

Адресация LBA

Аббревиатура этого вида дисковой адресации отражает сущность используемых в ней дисковых адресов: Logical Block Address, то есть «адрес логического блока» или «логический адрес блока».

В отличие от адресации CHS, адресация LBA никак не связана с физическими характеристиками диска (числом цилиндров, головок и секторов): весь диск в этой системе считается непрерывным массивом блоков (секторов) одинакового размера, причём их нумерация ведётся с нуля. Благодаря этому использовать LBA в программах намного удобнее, чем адреса в формате CHS: даже в том случае, когда CHS-адреса не соответствуют реальной «геометрии» диска, они всё равно остаются разрывными, поскольку нумерация секторов в этом формате ведётся с единицы. Кроме того, из-за ограничений BIOS разрядность CHS-адреса составляет 24 бита, что при стандартном размере сектора 512 байт не позволяет применять диски с ёмкостью, превосходящей 7,875 «двоичных» Гбайта (8,4 «десятичных гигабайт»).

Для работы с дисками с помощью LBA используются расширенные функции дискового сервиса прерывания INT 13h, имеющие номера 41h—49h и 4Eh. Этот набор функций получил название Enhanced Disk Drive Service (EDD; расширенный сервис дисковых приводов). Он присутствует во всех современных версиях BIOS, однако на более старых компьютерах может отсутствовать.

Первые BIOS, поддерживающие адресацию LBA, использовали 28-разрядный логический адрес (номер) блока, хотя пакет дискового адреса, передаваемый функциям расширенного дискового сервиса BIOS, отводит под него 64 бита. Это связано с тем, что первые дисководы, поддерживающие адресацию LBA, технически должны были соответствовать имеющемуся на тот момент стандарту IDE, предусматривавшему только 28 бит под дисковый адрес и трактовавшему его в терминах номеров цилиндра, головки и сектора (CHS): фактически «железо», поддерживающее LBA, появилось раньше официального стандарта, закрепившего этот вид дисковой адресации. Позднее физическая разрядность адреса LBA была повышена до 48 бит (стандарт ATA/ATAPI 6); при необходимости без переделок в правильно спроектированном программном обеспечении она может быть увеличена до 64 бит.

Читайте также:  что значит без коммерции

Адресация LBA используется не только с жёсткими дисками, но и для оптических накопителей (CD, DVD, BluRay), флэш-дисков и других устройств с посекторной организацией хранения информации, за исключением гибких дисков, для которых по-прежнему приходится использовать систему CHS.

Источник

Зависимость трансляции LBA от физических параметров диска

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

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

Итак, когда мы «открываем» содержимое жесткого диска в шестнадцатеричном редакторе, например в WinHEX, как физическое устройство, мы имеем возможность работать с накопителем на самом низком с точки зрения операционной и файловой систем уровне. На данном шаге нам доступен полный объем диска, с 0-го сектора, по последний, например HDD Samsung 2Tb HD204UI, не обрезанный по HPA, имеет максимально доступный, последний сектор LBA за номером 3 907 029 168.

Логический вид доступной поверхности диска

Построение трансляции на 2-х головом жестком диске

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

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

На этом примере несложно самостоятельно уже представить, как выглядит картина у дисков с большим количеством голов. Например 4,6 или 8.

Построение трансляции на 4-х головом жестком диске с невычитанными данными по 3-й головке

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

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

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

Восстановление видео данных с видеорекордера

Восстановление видео на примере выполнения заказа по видеорекордеру Polyvision

Источник

Строительный портал