Таблица разделов Intel

From CGSecurity
Jump to: navigation, search

En.png English De.png Deutsch Es.png Español Fr.png Français Ru.png Русский


Как же записана таблица разделов?

Каждое из значений CHS (Cylinder - Цилиндр, Head - Головка, Sector - Сектор) ограничено набором бит, в 16 битной таблице разделов CHS может имет значения до: 1023,254,63. Таким образом LBA и CHS не могут быть равны для жестких дисков больше 8 Гб.

Существует два способа хранить значения CHS:

  • первый способ
 конвертирование LBA в CHS,
 store (cylinder & 0x3FF, head & 0xFF, sector & 0x3F)

Его использует Partition Magic (до версии 8.0).

  • второй способ
 конвертирование LBA в CHS
 if cylinder <= 1023,
   store (cylinder & 0x3FF, head & 0xFF, sector & 0x3F)
 else
   store (1023, max_head & 0xFF, max_sector & 0x3F)

Этим способом пользуются fdisk и TestDisk.


Когда TestDisk проверяет таблицу разделов, он принимает оба способа и считает их верными. Но второй способ лучше, т.к. начальное значение CHS всегда меньше или равно конечному значению.

Например: Геометрия логического раздела жесткого диска подразумевает 255 головок на цилиндр и 63 сектора на головку. Раздел начинается с LBA=46781280 или CHS=2912,0,1. Такой раздел закончится в 3072,254,63.

  • Первый способ:
 начало:  864,  0, 1
 конец:      0,254,63
  • Второй способ:
 начало: 1023,254,63
 конец:   1023,254,63


NB: 1023 = 0x3FF (1023*255+254)*63+63-1=16450559 (2912*255+ 0)*63+ 1-1=46781280

Partition Magic (версии до 8.0) признают второй способ неверным; даже еси он соответствует стандартам. TestDisk понимает оба способа записи таблицы разделов.

Назад к TestDisk