Таблица разделов Intel
Как же записана таблица разделов?
Каждое из значений 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