Units for size in /proc/partitions don't make sense
parted
and lsblk
reports the logical/physical block (aka sector) size properly. You can double check this using smartctl -i /dev/sda
.
blockdev --getpbsz --getss /dev/sda
reports the right information too.
/proc/partitions
reports sizes in KiB but it's completely unrelated to the physical block size of the device, instead it's the buffer cache block size.
blockdev --getbsz /dev/sda
probably reports the actual IO size ( 4KiB matches kernel page size).