in reply to get the size of a special device (drive)

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.

Replies are listed 'Best First'.
Re^2: get the size of a special device (drive)
by exodist (Monk) on May 31, 2007 at 15:28 UTC
    Thank you, using /sys/block/DriveName/size is my plan now. Since it has been confirmed it uses b12byte block size both for me and for others here I am going to trust it until I find reasons I shouldn't.