🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Linux Disk & Storage Management: Complete Guide (2026)

Linux Disk & Storage Management: Complete Guide (2026)
Linux Disk and Storage Management

Storage management is one of the most critical responsibilities of a Linux system administrator. From partitioning new disks and creating filesystems to managing LVM volumes and configuring RAID arrays, this guide covers every aspect of Linux storage management with practical, production-ready examples.

📥 Free Cheat Sheet

Download our Linux Disk & Storage Cheat Sheet PDF — all disk commands, LVM operations, and RAID management on one page.

Viewing Disk Information

# List all block devices
lsblk
lsblk -f  # Show filesystem info

# Show disk space usage
df -h
df -hT   # Include filesystem type

# Show directory sizes
du -sh /var/log/
du -sh /* 2>/dev/null | sort -rh | head -10

# Detailed disk info
sudo fdisk -l
sudo parted -l

# Show disk hardware info
sudo hdparm -I /dev/sda
lshw -class disk

Disk Partitioning

fdisk — MBR Partitioning

# Interactive partitioning
sudo fdisk /dev/sdb

# fdisk commands:
# n = new partition
# d = delete partition
# p = print partition table
# t = change partition type
# w = write changes and exit
# q = quit without saving

gdisk — GPT Partitioning

# For disks > 2TB or UEFI systems
sudo gdisk /dev/sdb

# Non-interactive partitioning with sgdisk
sudo sgdisk -n 1:0:+500M -t 1:ef00 /dev/sdb  # EFI partition
sudo sgdisk -n 2:0:0 -t 2:8300 /dev/sdb       # Linux partition

parted — Modern Partitioning

# Create GPT label and partitions
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%

# Resize partition
sudo parted /dev/sdb resizepart 1 50GB

Filesystem Creation and Management

# Create ext4 filesystem
sudo mkfs.ext4 /dev/sdb1

# Create XFS filesystem
sudo mkfs.xfs /dev/sdb1

# Create Btrfs filesystem
sudo mkfs.btrfs /dev/sdb1

# Check and repair filesystem
sudo fsck /dev/sdb1        # Generic
sudo e2fsck -f /dev/sdb1   # ext4
sudo xfs_repair /dev/sdb1  # XFS

# View filesystem info
sudo tune2fs -l /dev/sdb1  # ext4
sudo xfs_info /dev/sdb1    # XFS

# Resize filesystem
sudo resize2fs /dev/sdb1         # ext4 (grow)
sudo xfs_growfs /mount/point     # XFS (grow only)

Mounting and fstab

# Mount a partition
sudo mount /dev/sdb1 /mnt/data

# Mount with specific options
sudo mount -o noatime,nodiratime /dev/sdb1 /mnt/data

# Mount read-only
sudo mount -o ro /dev/sdb1 /mnt/data

# Mount by UUID (preferred)
sudo mount UUID=abc-123 /mnt/data

# Unmount
sudo umount /mnt/data

# Force unmount if busy
sudo umount -l /mnt/data   # Lazy unmount
sudo fuser -km /mnt/data   # Kill processes using mount point

# Find UUID of a partition
blkid /dev/sdb1

Persistent Mounting with /etc/fstab

# /etc/fstab format:
#           

# Example entries:
UUID=abc-123-def  /mnt/data      ext4  defaults,noatime  0  2
UUID=xyz-789-uvw  /mnt/backup    xfs   defaults          0  2
/dev/sdb1         /mnt/storage   ext4  rw,nosuid,nodev   0  2

# Test fstab without rebooting
sudo mount -a

# If fstab has errors and system won't boot:
# Boot to recovery, then:
mount -o remount,rw /
# Fix /etc/fstab, then reboot

Logical Volume Management (LVM)

LVM provides flexible disk management with the ability to resize volumes, create snapshots, and span multiple physical disks:

LVM Architecture

  • Physical Volumes (PV) — raw disks or partitions
  • Volume Groups (VG) — pool of physical volumes
  • Logical Volumes (LV) — virtual partitions carved from VGs
# Step 1: Create Physical Volumes
sudo pvcreate /dev/sdb /dev/sdc
sudo pvs   # List PVs

# Step 2: Create Volume Group
sudo vgcreate data-vg /dev/sdb /dev/sdc
sudo vgs   # List VGs

# Step 3: Create Logical Volumes
sudo lvcreate -L 50G -n app-data data-vg
sudo lvcreate -L 20G -n db-data data-vg
sudo lvcreate -l 100%FREE -n logs data-vg
sudo lvs   # List LVs

# Step 4: Create filesystem and mount
sudo mkfs.ext4 /dev/data-vg/app-data
sudo mount /dev/data-vg/app-data /mnt/app

Resizing LVM Volumes

# Extend logical volume + filesystem
sudo lvextend -L +10G /dev/data-vg/app-data
sudo resize2fs /dev/data-vg/app-data    # ext4
# Or combine both:
sudo lvextend -L +10G -r /dev/data-vg/app-data

# Add new disk to volume group
sudo pvcreate /dev/sdd
sudo vgextend data-vg /dev/sdd

# Reduce (ext4 only — BACKUP FIRST!)
sudo umount /mnt/app
sudo e2fsck -f /dev/data-vg/app-data
sudo resize2fs /dev/data-vg/app-data 30G
sudo lvreduce -L 30G /dev/data-vg/app-data

LVM Snapshots

# Create snapshot
sudo lvcreate -L 5G -s -n app-data-snap /dev/data-vg/app-data

# Mount snapshot (read-only)
sudo mount -o ro /dev/data-vg/app-data-snap /mnt/snapshot

# Restore from snapshot
sudo lvconvert --merge /dev/data-vg/app-data-snap

RAID Configuration with mdadm

# Create RAID 1 (mirror)
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# Create RAID 5 (striping with parity)
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

# Check RAID status
cat /proc/mdstat
sudo mdadm --detail /dev/md0

# Save RAID configuration
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf

# Replace failed disk
sudo mdadm --manage /dev/md0 --remove /dev/sdc
sudo mdadm --manage /dev/md0 --add /dev/sde

Disk Monitoring

# Monitor disk I/O
iostat -xz 1
iotop

# Check disk health with SMART
sudo smartctl -a /dev/sda
sudo smartctl -H /dev/sda   # Quick health check
sudo smartctl -t short /dev/sda  # Run test

# Monitor in real-time
watch -n 1 'df -h'
dstat -cdngy

Disk Quotas

# Enable quotas (add usrquota,grpquota to fstab options)
sudo mount -o remount,usrquota,grpquota /mnt/data

# Initialize quota database
sudo quotacheck -ugm /mnt/data
sudo quotaon /mnt/data

# Set user quota (soft 5GB, hard 6GB)
sudo edquota -u alice
# Or non-interactive:
sudo setquota -u alice 5G 6G 0 0 /mnt/data

# View quota usage
sudo repquota -a
quota -u alice

📚 Master Linux Storage

Deep dive into storage management:

Share this article:
Dorian Thorne
About the Author

Dorian Thorne

Cloud Infrastructure, Cloud Architecture, Infrastructure Automation, Technical Documentation

Dorian Thorne is a cloud infrastructure specialist and technical author focused on the design, deployment, and operation of scalable cloud-based systems.

He has extensive experience working with cloud platforms and modern infrastructure practices, including virtualized environments, cloud networking, identity and acces...

Cloud Computing Cloud Networking Identity and Access Management Infrastructure as Code System Reliability

Stay Updated

Subscribe to our newsletter for the latest tutorials, tips, and exclusive offers.