Назад | Перейти на главную страницу

Почему у 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.

Когда мы исправили начало раздела, все прошло нормально.

Не могу разобраться в несоответствии в пересчете единиц. Может кто-нибудь помочь мне понять?

fdisk - это старый инструмент, который по умолчанию использует схему цилиндра старого стиля. Это будет рассчитано на основе не настоящие данные цилиндра / дорожки / головки, предоставленные прошивкой жесткого диска. Большинство инструментов (с момента существования LBA-секционирования) не имеют к этому никакого отношения.

Вы можете переключиться в секторный режим с его помощью командой u .

Ваша таблица разделов, вероятно, была создана другим инструментом (вероятно, функцией перераспределения разделов установщика), который по умолчанию использовал это разбиение на разделы.

Gpart, parted и все же многие инструменты делают это лучше, хотя ни один из них не обладает чистой точностью старого fdisk.