I don't have SCSI (sdX) drives on my system, but my IDE drive sizes are easy to determine.
$ cat /proc/ide/ide0/hda/capacity
78165360
$ cat /proc/ide/ide0/hdb/capacity
40718160
$ cat /proc/ide/ide1/hdd/capacity
241254720
Trimmed output from `cfdisk`
Disk Drive: /dev/hda
Size: 40020664320 bytes, 40.0 GB
Disk Drive: /dev/hdb
Size: 20847697920 bytes, 20.8 GB
Disk Drive: /dev/hdd
Size: 123522416640 bytes, 123.5 GB
The /proc/ide/ideX/hdX/capacity size is in 512 byte blocks, and matches *exactly* (after multiplying by 512) with the size reported by `cfdisk`.
Hopefully, there are analogous /proc/scsi/*/capacity files.
Update: the `capacity` files I describe above exactly match the `/sys/block/*drivename*/size` files that Joost mentioned. The `size` files are easier to navigate to. I can confirm that the units are exact 512 byte blocks.
|