A minha principal questão é ver autoritariamente se o tamanho do bloco usado no setor conta:
/sys/block/<disk>/<partition>/size
é de fato 512 B, ou se isso pode variar.
Eu achei que seria bastante fácil encontrar uma resposta, mas por exemplo aqui:
link
a pergunta foi feita:
There are /sys/block/<device>/size and
/sys/block/<device>/<device><partition>/size.
But these values are reported in sectors, not in bytes. As discs with 4K
sectors are on the horizon now, I don't want to make wrong assumptions on the
sector size.
So what is the correct sector size for /sys/block/<device>/size?
E um patch foi oferecido na documentação para aparentemente responder de uma vez por todas esta pergunta na documentação:
link
As the meaning has not changed for over 13 years, I would like to
formalize these attributes such that users can rely on it[1][2]. The
sector definition was inspired by the block/stat.txt documentation.
Com o patch:
diff --git a/Documentation/ABI/testing/sysfs-block b/Documentation/ABI/testing/sysfs-block
+What: /sys/block/<disk>/<partition>/size
+Date: October 2002
+Contact: [email protected]
+Kernel Version: 2.5.43
+Description:
+ Size of the partition in standard UNIX 512-byte sectors
+ (not a device-specific block size).
Tudo parece simples, mas quando eu olho para o documento atual:
link
Não há presença deste patch. O que sugere que, na verdade, essa pergunta aparentemente simples pode não ser simples?
Alguém pode me indicar uma resposta autoritativa real para essa pergunta, de preferência usando documentação do kernel ou código com comentários?
Atualmente eu estou confiando na saída de uma ferramenta, mas se isso não é de fato sempre 512B essa saída pode estar errada, o que levaria o código em que estou trabalhando a estar errado também em alguns casos. / p>
Surpreende-me que tenha sido tão difícil encontrar uma resposta verdadeiramente autoritária,
link
Unidades para tamanho em / proc / partitions não faz sentido
Alguns deles apontam para o patch aqui, mas nenhum parece estar ciente de que o patch não parece ter sido aceito, embora pareça ter sido assinado, mas não está no código de documentação, tanto quanto eu pode ver.
Seria legal se pudéssemos de uma vez por todas determinar o que o código interno do kernel realmente está fazendo, e se esse comportamento é documentado, ou simplesmente assumido, o que significa que ele poderia mudar aleatoriamente a qualquer momento.