Por que o fdisk tem uma discrepância na tradução de unidades entre cilindros e setores?

Por que o fdisk tem uma discrepância na tradução de unidades entre cilindros e setores?

Estávamos reparticionando um disco virtual para aumentar o tamanho do volume físico de um LVM.

Foi assim que realizamos inicialmente:

$ 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

Isso fez com que o LVM não fosse reconhecido pelo Linux. Fiquei intrigado e olhei para um backup. As tabelas de partição começaram em 1, então isso não parecia ser o problema. Porém, se eu mudei as unidades (comando fdisk u) de cilindros para setores, percebi que o backup começou no setor 13, mas a nova partição começou no setor 128.

Quando corrigimos o início da partição, tudo correu bem.

Não consigo entender a discrepância na conversão de unidades. Alguém pode me ajudar a entender?

Responder1

fdisk é uma ferramenta antiga e usa o esquema de cilindro antigo como padrão. Este valor será calculado com base nofalsodados de cilindro/faixa/cabeça fornecidos pelo firmware do disco rígido. A maioria das ferramentas (desde a existência do particionamento LBA) não tem nada a ver com isso.

Você pode alternar para o modo baseado em setor com o comando u.

Sua tabela de partições provavelmente foi gerada por outra ferramenta (provavelmente por um recurso de reparticionamento de um instalador), que usava esse particionamento baseado em setor por padrão.

Gpart, parted e ainda muitas ferramentas fazem isso melhor, embora nenhuma delas tenha a precisão pura e limpa do antigo fdisk.

informação relacionada