Meu disco é sda. Existe o tamanho do arquivo /sys/dev/block/8:0/size
. Sua unidade são os setores. Quando corro, strace lsblk
posso vê-lo lendo este arquivo.
Mas como o lsblk obtém o tamanho do setor para depois mostrar o tamanho total do disco em bytes? Porque não consigo ver lsblk lendo o arquivo hw_sector_size
nem physical_block_size
.
Não porque não precisa, o tamanho do setor usado
/sys/block/<device>/size
é sempre 512, independentemente do tamanho real do setor físico do dispositivo. Não consegui encontrar uma documentação para isso, então vou me referir a esta resposta , que também possui alguns links para o código do kernel nos comentários, onde afirma-se queE um teste rápido com dispositivos de loop também mostra que isso é verdade:
e ambos são dispositivos de 100 MiB
(Observe que, se você pedir
lsblk
para incluir também o tamanho do setor físico nos resultados usando o-o+PHY-SEC
, poderá ver que ele lê oqueue/physical_block_size
arquivo quando realmente precisa do tamanho físico.)