CommandsLinux

How To List Disks on Linux

Listing Disks in Linux

Linux offers various methods for listing and managing storage devices, a fundamental skill for system administrators and users alike. Whether troubleshooting hardware issues, planning partitions, or monitoring storage usage, knowing how to properly list disks enables efficient system management and maintenance. This detailed guide explores multiple approaches to identify storage devices in Linux, from straightforward command-line utilities to feature-rich graphical applications.

Understanding Linux Disk Naming Conventions

Before diving into specific commands, it’s essential to understand how Linux identifies and names storage devices. Unlike Windows with its drive letters (C:, D:), Linux uses a device-based naming system located in the /dev directory.

Traditional Disk Naming Patterns

  • SATA/SCSI/USB drives: Named as sda, sdb, sdc, etc., where letters increment for each additional device
  • Partitions: Numbered sequentially like sda1, sda2, etc.
  • NVMe drives: Modern SSDs using PCIe are named as nvme0n1, nvme1n1, with partitions as nvme0n1p1
  • Virtual disks: In virtualized environments, appear as vda, vdb, etc.
  • Memory cards: Often show as mmcblk0, with partitions as mmcblk0p1

The /dev directory serves as the interface between hardware and the operating system, containing files that represent physical and virtual devices. Understanding this naming structure helps interpret the output from various disk listing commands.

Storage Types and Classifications

Linux distinguishes between:

  • Physical disks: Actual hardware devices (like sda)
  • Partitions: Sections of physical disks (like sda1)
  • Logical volumes: Virtual partitions managed by LVM that can span multiple physical disks

This hierarchy is important when interpreting the output of disk management commands.

Command-Line Methods to List Disks

The Linux terminal provides several powerful utilities for listing storage devices, each offering different perspectives and levels of detail.

The lsblk Command

The lsblk (list block devices) command provides a clear, hierarchical view of all storage devices. It’s often the first tool administrators reach for due to its simplicity and readable output.

Basic usage:

lsblk

This displays a tree-like structure showing the relationship between disks and their partitions, including device names, sizes, and mount points.

For more detailed information including filesystem types:

lsblk -f

To customize the output columns:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

The lsblk command is particularly useful for quickly understanding disk hierarchy, especially in systems with multiple storage devices.

The fdisk Command

While primarily known as a partitioning tool, fdisk also excels at listing disk information:

sudo fdisk -l

This command requires root privileges and provides comprehensive details about:

  • Device identifiers (e.g., /dev/sda)
  • Disk size and geometry
  • Partition table type (MBR or GPT)
  • Detailed partition information including start/end sectors
  • Partition types and bootable flags

fdisk offers more technical details than lsblk, making it valuable for advanced troubleshooting and management tasks.

The df Command

The df (disk filesystem) command focuses on mounted filesystems rather than physical devices:

df -h

The -h option presents sizes in human-readable format (KB, MB, GB). The output includes:

  • Filesystem device
  • Total size
  • Used space
  • Available space
  • Usage percentage
  • Mount point

To display filesystem types as well:

df -hT

While df doesn’t show unmounted disks, it’s excellent for monitoring space usage on active filesystems.

The lshw Command

The lshw (list hardware) utility provides detailed hardware information about storage devices:

sudo lshw -class disk

This command displays comprehensive hardware details including:

  • Product name and manufacturer
  • Physical characteristics
  • Bus information
  • Serial numbers
  • Capabilities and configuration

To see both disks and storage controllers:

sudo lshw -class disk -class storage

The lshw command may need to be installed first on some distributions:

sudo apt install lshw   # For Debian/Ubuntu
sudo yum install lshw   # For RHEL/CentOS

The hwinfo Command

The hwinfo utility provides another perspective on hardware information, including detailed disk data:

sudo hwinfo --disk

For a more concise overview:

sudo hwinfo --disk --short

This command often reveals details that other commands miss, making it useful for comprehensive hardware analysis. Like lshw, it might need installation first:

sudo apt install hwinfo   # For Debian/Ubuntu
sudo yum install hwinfo   # For RHEL/CentOS

The parted Command

The parted command is another partitioning tool that provides excellent disk listing capabilities:

sudo parted -l

The output includes:

  • Disk model information
  • Total size
  • Partition table format (MBR/GPT)
  • Detailed partition information with filesystem types

parted stands out for its ability to work with both MBR and GPT partition tables, making it valuable in modern systems.

Other Useful Commands

Several other commands provide supplementary disk information:

Using the /dev/disk directory:

ls -l /dev/disk/by-id
ls -l /dev/disk/by-uuid
ls -l /dev/disk/by-path
ls -l /dev/disk/by-label

These commands show disks organized by different identifiers, which can be invaluable when working with systems that may change device names after reboots.

The blkid command reveals filesystem UUID and type:

sudo blkid

Combining these commands creates a comprehensive picture of the storage subsystem. For example:

lsblk && sudo fdisk -l && df -h

This provides a quick overview of block devices, partition details, and filesystem usage in one command sequence.

Graphical Methods to List Disks

Not all Linux disk management happens in the terminal. Modern desktop environments provide intuitive graphical tools that can display disk information in a more visual format.

GNOME Disks Utility

The GNOME Disks utility (gnome-disk-utility) provides a user-friendly interface for viewing and managing storage devices. To launch it:

  • Search for “Disks” in the application menu, or
  • Run gnome-disks from the terminal

The main interface displays:

  • A list of all connected storage devices
  • Disk model and size information
  • Partition layout with visual representation
  • Mount status for each partition
  • Options to manage partitions and perform disk operations

Clicking on a specific disk reveals additional details, including:

  • Drive assessment and benchmarking tools
  • S.M.A.R.T. data for drive health monitoring
  • Options to format, partition, or create disk images
  • Power management settings

The GNOME Disks utility is particularly useful for less experienced users who might find command-line tools intimidating.

Other Desktop Environment Tools

Different Linux desktop environments offer their own disk management utilities:

KDE Partition Manager:

  • Provides detailed disk viewing and management capabilities
  • Includes advanced partition operations
  • Offers a clean, intuitive interface for KDE desktop users

GParted:

  • A powerful partition editor with extensive disk viewing capabilities
  • Works across desktop environments
  • Provides detailed information about partitions and filesystems
  • Often used from live environments for system maintenance

These graphical tools offer several advantages over command-line methods:

  • Visual representation of disk layout
  • Intuitive interfaces for common operations
  • Integrated help systems
  • Reduced risk of typing errors in critical commands

However, they also have limitations:

  • May not be available on server installations
  • Might lack some advanced features of command-line tools
  • Could require more system resources
  • May not work well over remote connections without X forwarding

Advanced Disk Information Retrieval

Beyond basic disk listing, Linux provides sophisticated methods to filter, sort, and analyze disk information for specific needs.

Filtering for Specific Disk Types

Different storage technologies may require specialized analysis. Here’s how to filter for specific disk types:

Identifying SSDs vs. HDDs:

lsblk -d -o name,rota

The “rota” (rotational) field shows “1” for HDDs and “0” for SSDs.

Finding NVMe devices specifically:

lsblk | grep nvme

Displaying disks of specific sizes:

lsblk -d -o name,size | grep "100G"

Creating custom formatted output:

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL,SERIAL

This provides a targeted view with only the most relevant information for your current task.

Retrieving Detailed Disk Information

For in-depth analysis of disk health and performance, several specialized tools are available:

Using smartctl for S.M.A.R.T. data:

sudo smartctl -a /dev/sda

This reveals comprehensive health information including:

  • Error logs
  • Self-test results
  • Temperature data
  • Wear indicators
  • Predicted failure information

Finding manufacturer information and serial numbers:

sudo hdparm -I /dev/sda

This displays detailed drive identity information including:

  • Model number
  • Serial number
  • Firmware version
  • Supported features
  • Maximum transfer modes

Checking disk health and performance metrics:

sudo iostat -dx 2

This provides real-time information about disk I/O rates, service times, and utilization percentages.

Remote Disk Management

Managing disks on remote systems requires special consideration:

Listing disks on remote systems via SSH:

ssh username@remote_server "lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT"

Creating scripts for inventory management:

for server in server1 server2 server3; do
    echo "=== $server ==="
    ssh $server "lsblk -o NAME,SIZE,TYPE,MOUNTPOINT"
done

Security considerations for remote disk operations:

  • Use key-based authentication instead of passwords
  • Restrict sudo privileges for disk commands
  • Consider using configuration management tools for consistency
  • Log all disk operations for audit purposes

Remote disk management is essential for modern infrastructure, where administrators often need to monitor and maintain storage across multiple systems simultaneously.

Troubleshooting Common Issues

Even experienced Linux administrators encounter disk-related challenges. Here are solutions to common problems.

When Disks Don’t Appear

If expected disks aren’t showing up in listings, several approaches can help:

Checking physical connections:

  • Verify power and data cables are securely connected
  • Try different ports or cables if available
  • Check for bent pins on SATA connectors

Using dmesg to identify hardware issues:

dmesg | grep -i 'sata\|ata\|disk'

This shows kernel messages related to disk detection, including errors.

Rescanning SCSI bus:

echo "- - -" > /sys/class/scsi_host/host0/scan

This forces the system to rescan for new devices without rebooting.

Common causes for missing disks:

  • Failed or failing hardware
  • BIOS/UEFI settings (like RAID mode vs. AHCI)
  • Power management issues
  • Unsupported controllers requiring drivers
  • USB power limitations

In virtual environments, missing disks might relate to hypervisor configuration rather than Linux issues.

Permission and Access Issues

Access restrictions can prevent proper disk listing:

Understanding when sudo is required:
Commands like fdisk, parted, and smartctl typically require elevated privileges to access raw disk information. Always use sudo with these commands if you’re not logged in as root.

Common error messages and their solutions:

  • “Permission denied”: Use sudo or adjust permissions
  • “Command not found”: Install the required package
  • “No such device”: Verify device name or check connections
  • “Resource busy”: Unmount filesystems before operations

Setting up proper permissions for disk management:

sudo usermod -aG disk username

Adding a user to the disk group allows some operations without full sudo access.

Complex Storage Configurations

Modern systems often use advanced storage architectures that require special handling:

Identifying and working with LVM volumes:

sudo pvs     # Physical volumes
sudo vgs     # Volume groups
sudo lvs     # Logical volumes

These commands reveal the layers of the Logical Volume Manager hierarchy.

RAID arrays and how they appear:

cat /proc/mdstat     # Software RAID status
sudo mdadm --detail /dev/md0     # Detailed RAID information

Software RAID appears as /dev/md* devices, while hardware RAID usually presents as standard disks.

Encrypted disks and how to identify them:

sudo cryptsetup status crypto_device
ls -l /dev/mapper/

LUKS-encrypted volumes appear in /dev/mapper/ after unlocking.

Understanding these complex configurations is increasingly important as systems grow more sophisticated, especially in enterprise environments.

Best Practices and Real-World Use Cases

Effective disk management extends beyond merely listing storage devices. These practices ensure reliable and efficient storage operations.

Creating Disk Inventory Scripts

Automated inventory helps maintain awareness of storage resources:

#!/bin/bash
# Simple disk inventory script
echo "Disk Inventory for $(hostname) on $(date)"
echo "-------------------------------------------"
echo "Block Devices:"
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT

echo -e "\nDisk Usage:"
df -h

echo -e "\nS.M.A.R.T. Status:"
for disk in $(lsblk -d -o NAME | tail -n +2); do
    echo "--- $disk ---"
    sudo smartctl -H /dev/$disk
done

Save this as disk_inventory.sh, make it executable with chmod +x disk_inventory.sh, and schedule it with cron for regular execution.

Regular Monitoring Strategies

Proactive monitoring prevents storage problems:

Key metrics to monitor:

  • Disk space usage (warn at 80-85%)
  • I/O wait times
  • S.M.A.R.T. attributes (especially reallocated sectors)
  • Read/write error rates
  • Temperature trends

Monitoring tools:

  • Nagios/Icinga for alerting
  • Prometheus and Grafana for visualization
  • collectd/statsd for metric collection
  • smartd for automated S.M.A.R.T. monitoring

Regular monitoring catches issues before they become critical failures.

Choosing the Right Command for Specific Scenarios

Different situations call for different tools:

Quick overview of all storage:

lsblk

Detailed partition information:

sudo fdisk -l

Filesystem usage and mount points:

df -h

Hardware specifications:

sudo lshw -class disk

Health monitoring:

sudo smartctl -a /dev/sda

Selecting the appropriate tool saves time and provides the most relevant information.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button