Howto Find Out or Learn Harddisk Size in Linux or UNIX

last updated in Categories ,

How do I find out my installed hard disk size in Linux or UNIX like operating systems?

Under Linux and UNIX operating systems you can use the df command. The df command displays the amount of disk space available on the file system containing each file name argument. If no file name is given, the space available on all currently mounted file systems is shown.


Task: Display Hard Disk Partition Size

Open a command-line terminal (select Applications > Accessories > Terminal), and then type:
$ df
Sample outputs:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdb1             19228276  14699744   3551784  81% /
tmpfs                   384300         4    384296   1% /dev/shm
/dev/hdb5             27917308  23883184   2615988  91% /data/network

Task: Display Hard Disk Partition Size in Mega bytes or GB or TB

Type the following command:
$ df -H
Sample outputs:

Filesystem             Size   Used  Avail Use% Mounted on
/dev/hdb1               20G    16G   3.7G  81% /
tmpfs                  394M   4.1k   394M   1% /dev/shm
/dev/hdb5               29G    25G   2.7G  91% /data/network

Task: Display TOTAL Hard Disk Size

The fdisk command is partition table manipulator for Linux. But it can be used to display total hard disk size. You must type the following command as the root user:
# fdisk -l | grep Disk
Sample outputs:

Disk /dev/hda: 20.0 GB, 20060651520 bytes
Disk /dev/hdb: 80.0 GB, 80060424192 bytes

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.


24 comment

  1. The following command is an improvement of the Fdisk -l command, which is actually exactly what most people are looking for:

    Bunny:~# fdisk -l 2> /dev/null | grep Disk | grep -v identifier
    Disk /dev/sda: 60.0 GB, 60011642880 bytes
    Disk /dev/sdb: 60.0 GB, 60011642880 bytes
    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
    Disk /dev/sdv: 1000.1 GB, 1000123400192 bytes
    Disk /dev/md5: 18002.2 GB, 18002220023808 bytes

  2. > fdisk -l | egrep ‘Disk.*bytes’ | awk ‘{ sub(/,/,””); sum +=$3; print $2″ “$3” “$4 } END { print “—————–“; print “total: ” sum ” GB”}’

    and you will get something simillar to it:
    /dev/sda: 80.0 GB
    /dev/sdb: 120.0 GB
    /dev/sdc: 2000.4 GB
    /dev/sdd: 250.1 GB
    /dev/sde: 250.1 GB
    total: 2700.6 GB

  3. Hi
    Thanks a lot
    It’s very usefull for me.

    I have one question…
    below mentioned command will work on AIX, FreeBSD, HPUX, IRIX,Mac OS X, NetBSD, OpenBSD,OpenVMS, POWER HMC, IBM Hardware Management Consoles ,Solaris, Tru64,UnixWare, SCO OpenServer and SCO UNIX VMware ESX VMware ESXi …………???

    fdisk -l | egrep ‘Disk.*bytes’ | awk ‘{ sub(/,/,””); sum +=$3; print $2″ “$3” “$4 } END { print “—————–”; print “total: ” sum ” GB”}’

    fdisk -l |grep Disk

  4. If using lvm, you can use pvdisplay

     # pvdisplay 
      --- Physical volume ---
      PV Name               /dev/md2
      VG Name               alternc
      PV Size               1,79 TiB / not usable 768,00 KiB
      Allocatable           yes 
      PE Size               4,00 MiB
      Total PE              468340
      Free PE               33652
      Allocated PE          434688
      PV UUID               DBE80K-p3VS-kdtX-e1eJ-Fqbt-diSD-FeNvPL
  5. Our vendor has finished installing redhat OS on our servers & has submitted an installation report. When I verify the file system using df -h , the sum of the size of the file systems as shown in the output is greater than the actual HDD size allocated to that virtual machine. But when I use fdisk -l|grep Disk, the size shown in output matches with the hdd size. Can you please help me out as to how do I verify the file system ??

    My aim is to match the HDD size allocated to particular Virtual machine with the total size all file systems on that VM.

  6. lsblk is the most flexible tool for getting infos on a blockdevice:
    Size, and only the size in bytes of drive sda (2TB hdd)
    lsblk --nodeps --bytes --noheadings --output SIZE /dev/sda:

  7. Hello,
    I would like to ask if there is a way to find out about how a linux system was partitioned at the time of installation, as you see I installed linux but when ran this command “df” it did not give me the exact parition sizes I specified at the time of installation. I would like to know this for already existing systems as to determine the sizes in case of a problem happens and I need to build and format a new hard drive.

Leave a Comment