바이너리를 호출하지 않고 항상 작동하는 방식으로 블록 장치 또는 해당 파티션 중 하나의 바이트 크기를 얻으려면 다음이 정확합니다.
/sys/block/sda/sda1/size
or /sys/block/sda/size
다음을 곱합니다:
/sys/block/sda/queue/physical_block_size
또는논리적 블록 크기또는하드웨어 섹터 크기?
더 좋은 방법이 있나요?
답변1
더 많은 연구 끝에 마침내 답을 찾았습니다.
Linux는 장치의 실제 블록 크기에 관계없이 항상 섹터를 512바이트 길이로 처리합니다.
나는 다음과 같은 의견에 이끌렸습니다. 블록 장치 크기 결정
어리석은 것처럼 보이지만 [size]에 512를 곱하면 됩니다.
나는 내 프로그램이 망가지는 것을 원하지 않기 때문에 이것이 지금으로부터 15년 후에도 여전히 올바른 가정이기를 바랍니다.물리적 블록 크기인터넷 검색을 통해 알아낸 것처럼 때로는 4096일 수 있으므로 잘못된 것 같지만 여전히 읽을 가치가 있을 수 있습니다.논리적 블록 크기또는하드웨어 섹터 크기항상 512인데도요? 이에 대한 의견이 있으십니까?