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

4

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

Foi assim que inicialmente fizemos isso:

$ 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 levou o LVM a não ser reconhecido pelo Linux. Fiquei intrigado e olhei para um backup. As tabelas de partições iniciaram em 1 para que não parecessem o problema. No entanto, se eu mudei unidades (comando fdisk u ) de cilindros para setores, notei 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?

    
por Belmin Fernandez 30.12.2013 / 23:19

1 resposta

1

O fdisk é uma ferramenta antiga e usa o esquema do cilindro oldstyle como padrão. Isso será calculado com base nos dados cilinder / track / head falso fornecidos pelo firmware do disco rígido. A maioria das ferramentas (desde a existência do particionamento LBA) não tem nada para fazer.

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 nenhum deles tenha a precisão pura e limpa do fdisk antigo.

    
por 30.01.2014 / 16:04