Que números o fdisk mostra?

1

Eu corri sudo fdisk -l e recebi as seguintes informações:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Este utilitário mostra o tamanho total do disco rígido ( 120034123776 bytes ) e seu número de cabeçotes ( 255 heads ), setores por faixa ( 63 sectors/track ) e número de cilindros ( 14593 cylinders ).

Multiplicando cabeçotes X setores por trilha X número de cilindros devemos ter número de setores no disco.

255 X 63 X 14593 = 234436545

Tendo em conta que cada setor é de tamanho 512 bytes, temos

234436545 X 512 = 120031511040

Na verdade, 120031511040 != 120034123776 , portanto, a pergunta é: o fdisk mostra informações incorretas ou há algo que eu perdi em meus cálculos?

    
por Tim 12.02.2011 / 16:44

2 respostas

3

Eu diria que o uso de cylinder agora está obsoleto e é usado principalmente por razões históricas.

Ao olhar para o código-fonte fdisk , parece-me que o número total de bytes de um dispositivo é recuperado por meio de uma chamada ioctl

    if (ioctl(fd, BLKGETSIZE64, bytes) >= 0)
        return 0;

e as outras figuras são derivadas disso.

Por exemplo, o número de cilindros é calculado usando

llcyls = total_number_of_sectors / (heads * sectors * sector_factor);

O "problema" aqui é que o resultado dessa divisão é truncado (arredondado para baixo), então é impreciso.

Usando sua saída fdisk como exemplo

120034123776 bytes / 512 bytes_per_sector / 255 / 63 = 14593.3176471 cylinders

mas a saída fdisk arredondará isso para 14593 .

    
por arrange 12.02.2011 / 20:00
0

Hmmm, até onde eu vejo a diferença é marginal, então pode ser causada pelo significado diferente de "kilo", "mega" e "giga" (prefixos) no mundo da TI e o SI: na vida normal por exemplo, "quilo" significa 1000, enquanto que em TI o hábito comum era 1024. Agora a confusão é ainda maior, já que há proposição (mesmo no Ubuntu) de usar 1000 como quilo e usar "kibi" (ou o que for .... ) para 1024, se necessário. Então, usando esses prefixos, alguém significa 1000, outros 1024, e para ser ainda mais complicado, no caso de HDDs, as coisas são mesmo misturadas, que alguns dos prefixos são de potência de 2, alguns deles são de potência de 10.

link

É uma situação complicada / confusa em outros SOs também ...

    
por LGB 12.02.2011 / 17:41