Почему fdisk имеет несоответствие в переводе единиц измерения между цилиндром и секторами?
Мы перераспределяли виртуальный диск, чтобы увеличить размер физического тома LVM.
Вот как мы изначально выполнили это:
$ fdisk /dev/sdb
# delete partition
fdisk> d
? 1
# create new partition
fdisk> n
? p
? 1
first cylinder? [ENTER]
last cylinder? [ENTER]
# set LVM type
fdisk> t
? 8e
fdisk> w
Это привело к тому, что LVM не распознается Linux. Я был озадачен и посмотрел на резервную копию. Таблицы разделов начинаются с 1, так что это не проблема. Однако, если я изменил единицы измерения (команда fdisk u
) от цилиндров до секторов, я заметил, что резервное копирование началось в секторе 13, но новый раздел начался в секторе 128.
Когда мы исправили начало раздела, все прошло нормально.
Не могу разобраться в расхождении в преобразовании единиц. Может кто-нибудь помочь мне понять?
1 ответ
fdisk - это старый инструмент, который по умолчанию использует схему цилиндров старого стиля. Это будет рассчитано на основе поддельных данных цилиндра / дорожки / головки, предоставленных встроенным программным обеспечением жесткого диска. Большинство инструментов (так как существует разделение LBA) не имеют к этому никакого отношения.
Вы можете переключиться в секторный режим с помощью команды u
,
Ваша таблица разделов, вероятно, была сгенерирована другим инструментом (возможно, функцией перераспределения в установщике), который по умолчанию использовал это разделение на сектора.
Gpart, parted и многие другие инструменты делают это лучше, хотя ни один из них не обладает чистой точностью старого fdisk.