Skip to Content

How to Find Disk Information in Linux: A Complete Guide

In Linux, managing disk space, monitoring disk health, and understanding storage configurations are essential tasks for system administrators and users alike. Linux provides a variety of tools and commands that allow you to gather detailed information about your system’s disks, partitions, file systems, and overall storage health. This guide will show you how to find disk information in Linux using built-in utilities.

Why Is Disk Information Important?

Understanding disk usage and performance is crucial for maintaining the efficiency and reliability of your system. Whether you’re administering a server, optimizing a workstation, or troubleshooting disk-related issues, knowing how to check disk details allows you to:

  • Monitor disk usage: Avoid running out of space by knowing how much space is available.
  • Check disk health: Identify potential issues with disk integrity before they lead to failures.
  • Manage partitions and file systems: Effectively handle partitions and understand their layout on your disk.
  • Optimize performance: Identify slow or overused disks and address potential bottlenecks.

Methods to Find Disk Information in Linux

Linux offers several commands and utilities to get detailed disk information. Below are the most commonly used commands to find disk-related data.

1. Using the lsblk Command

The lsblk (list block devices) command is one of the most powerful and versatile tools for listing information about all available block devices (disks and partitions). It provides a tree-like view of the devices and partitions attached to your system, including their sizes, types, and mount points.

To use lsblk:

lsblk

This will display a list of all block devices on your system, along with their names, sizes, types, and mount points.

Example output:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   100G  0 disk
├─sda1   8:1    0    50G  0 part /mnt/data
└─sda2   8:2    0    50G  0 part /home
sdb      8:16   0    500G 0 disk
└─sdb1   8:17   0    500G 0 part /media/storage

To display more detailed information about each disk, including the file system, use the -f option:

lsblk -f

This will show the file system type (e.g., ext4, xfs, ntfs) and labels for each partition.

2. Using the fdisk Command

The fdisk command is a partitioning tool that can be used to display information about disk partitions. Although it’s primarily used for creating, modifying, and deleting partitions, it can also be used to display partition details.

To list partition information for a specific disk (e.g., /dev/sda), run:

sudo fdisk -l /dev/sda

This command displays a detailed partition table for the disk, including partition types, sizes, and file system types.

Example output:

Disk /dev/sda: 100 GB, 100000000000 bytes
255 heads, 63 sectors/track, 12157 cylinders, total 195312500 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   104857599   52427676   83  Linux
/dev/sda2       104857600   195312499   45357200   83  Linux

The fdisk -l command provides detailed information about the partition table, including the starting and ending sectors, partition size, and partition type (ID).

3. Using the df Command

The df command is used to display the amount of disk space used and available on the file system. It’s helpful to determine how much free space is left on your mounted partitions.

To get a summary of disk usage for all mounted file systems, run:

df -h

The -h option prints the sizes in human-readable format (KB, MB, GB).

Example output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   20G   30G  40% /mnt/data
/dev/sdb1       500G  150G  350G  30% /media/storage

This output shows the file system, size, used space, available space, usage percentage, and mount point for each partition.

4. Using the du Command

The du (disk usage) command is useful for checking the disk usage of individual files or directories. It can help identify which files are consuming the most space.

To check the disk usage of a specific directory, use:

du -sh /path/to/directory

The -s option provides the total size of the directory, and the -h option makes the output human-readable.

Example output:

du -sh /home/user
10G    /home/user

This shows that the /home/user directory is using 10GB of disk space.

5. Using the smartctl Command (For Disk Health)

The smartctl command is used to check the health of hard drives and SSDs using the SMART (Self-Monitoring, Analysis, and Reporting Technology) system. You can use smartctl to retrieve detailed diagnostic information about your disk, including temperature, error rates, and reallocated sectors.

To check the health status of a disk (e.g., /dev/sda), run:

sudo smartctl -a /dev/sda

This command will output detailed information about the disk’s health and diagnostic data.

Example output:

SMART Status: OK
Temperature: 34 C (93 F)
Reallocated_Sector_Ct: 0 (No issues)
Current_Pending_Sector: 0 (No issues)

If your disk supports SMART, this command provides useful information for diagnosing potential issues.

6. Using the lsblk with blkid Command

The blkid command is used to display block device attributes, including file system type, UUID (Universal Unique Identifier), and label.

To display detailed information about all block devices:

sudo blkid

Example output:

/dev/sda1: UUID="abcd-1234" TYPE="ext4" LABEL="data" 
/dev/sdb1: UUID="efgh-5678" TYPE="ntfs" LABEL="backup"

This output provides the UUID, file system type, and label for each partition.

7. Using the parted Command

parted is another partitioning tool that can be used to display detailed information about your disk partitions. It’s a powerful alternative to fdisk.

To display disk information, use:

sudo parted /dev/sda print

Example output:

Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

parted displays information about the partition table, disk size, and other details.

8. Using lshw for Detailed Hardware Information

The lshw command provides detailed information about your system’s hardware, including storage devices.

To list all hardware information, including disks, run:

sudo lshw -class disk

This will show detailed information about your system’s disks, such as the model, size, and other specifications.

Example output:

*-disk
   description: ATA Disk
   product: Samsung SSD 860
   vendor: Samsung
   physical id: 0.0.0
   bus info: scsi@0:0.0.0
   size: 500GB
   capabilities: partitioned partitioned:dos

Conclusion

Finding and understanding disk information in Linux is an essential skill for system administrators, developers, and power users. The tools and commands discussed in this guide provide a wide range of functionality to help you manage disk space, check health, and troubleshoot storage-related issues.

Whether you’re managing local disks or remote servers, mastering these commands will help you monitor your system’s storage health, identify performance bottlenecks, and ensure your Linux system runs smoothly.

Happy exploring!