Серверная (www.it-simple.ru)

Ошибка fdisk: Partition does not start on physical sector boundary


Возникает при разметке диска утилитой fdisk, если при открытии диска не был указан ключ -u (при работе с таблицей разделов единицей размера является сектор, а не цилиндр).

fdisk /dev/sda

Причина ошибки: несовпадение логического и физического размера сектора.

На современных винчестерах физический размер сектора равен 4096 байт.
Логический размер, которым пользуется fdisk, равен 512 байт.

Без указания ключа -u fdisk считает размеры в цилиндрах, каждый из которых содержит 63 сектора по 512 байт и пытается начать раздел с первого цилиндра (63*512=32256 байта), который не попадает (!) на начало физического сектора. Что нехорошо, о чём fdisk и рапортует.

Решение: fdisk надо запускать с ключом -u (особенно при разметке диска!)

fdisk -u /dev/sda

Дополнение от 10.12.2012

Выше идёт речь о том, как избежать ошибки непосредственно при чистой разметке диска утилитой fdisk. То есть — способ вовремя заметить и исправить ошибку. Однако, чаще бывает совсем другая ситуация.

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

В этом случае:

  1. Логические блоки не совпадают с физическими.
    Начало раздела (например, 32256-й байт из примера выше) находится внутри физического блока устройства (между 28762-м и 32768-м байтом, 7-м и 8-м блоком)

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

    Особенно ситуация критична с SSD-дисками, которые в этом случае гораздо быстрее изнашиваются.

  3. При чтении разметки fdisk-ом, он укажет на эту ошибку.

  4. Для каждого кривого раздела диска требуется провести процедуру выравнивания.
    Если раздел какое-то время активно использовался, то есть на нём куча информации — примите мои соболезнования и ищите резервное хранилище. Необходимо будет:

По сути, выравнивание — это изменение границ раздела; приведение его логических границ к границам физических блоков.