sysfs contagem de tamanho de bloco

3

O arquivo está localizado em:

/sys/block/<xxx>/size

Referenciando constantemente a contagem de blocos de 512 bytes, ou há algum caso especial em que a contagem de blocos muda?

Estou curioso porque:

thinkpad :: /sys/block/sdf % cat queue/physical_block_size                                                                                                                         
4096
thinkpad :: /sys/block/sdf % cat queue/logical_block_size                                                                                                                          
4096
thinkpad :: /sys/block/sdf % cat size                                                                                                                                              
15408640

15408640 * 512 bytes / 1000000000 = ~8GB - > o tamanho do meu dispositivo, está correto, mas o dispositivo é um dispositivo de bloco de 4K.

    
por Gala 04.08.2016 / 00:24

1 resposta

3

A size entry retorna o nr_sects campo da estrutura do dispositivo de bloco. Tradicionalmente, em contextos de tamanho de disco do Unix, “setor” ou “bloco” significa 512 bytes, independentemente do que o fabricante do hardware subjacente possa chamar de “setor” ou “bloco”. Não consigo encontrar documentação autoritativa, mas olhando para o código-fonte do Linux (por exemplo, 1 ) 2 ) parece que o nr_sects campo é de fato expresso em unidades de 512 bytes.

Você pode abordá-lo de outra maneira: como não há arquivo relatando a unidade, ela precisa ser uma unidade constante, caso contrário, os aplicativos não saberiam o que o valor significa. (O subdiretório queue não está necessariamente presente, depende do dispositivo de bloco.)

    
por 05.08.2016 / 02:47

Tags