Для Linux вы можете использовать следующую команду:
# cat /sys/block/sda/queue/hw_sector_size
512
Где / dev / sda - имя вашего жесткого диска.
Для Windows вы можете использовать IOCTL: IOCTL_DISK_GET_DRIVE_GEOMETRY https://docs.microsoft.com/en-us/windows/win32/api/winioctl/ni-winioctl-ioctl_disk_get_drive_geometry
Пример кода для Windows:
{
DISK_GEOMETRY diskGeometry;
GET_LENGTH_INFORMATION lengthInfo;
DWORD bytesReturned;
BOOL ret;
ret = DeviceIoControl(
hDevice, // file handle to the physical device
IOCTL_DISK_GET_DRIVE_GEOMETRY,
NULL,
0,
&diskGeometry,
sizeof(DISK_GEOMETRY),
&bytesReturned,
NULL);
if (TRUE != ret) {
// Log error and exit
}
bytesPerSector = diskGeometry.BytesPerSector;
}