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

From CGSecurity
Jump to navigation Jump to 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