Storage
Partition disks, create filesystems, mount drives, and manage storage on Linux.
Contents
Check Disk Information
# List all disks and partitions
lsblk
# Detailed disk info
sudo fdisk -l
# Disk usage (human-readable)
df -h
# Directory size
du -sh /var/www/
du -sh /* 2>/dev/null | sort -rh | head -20
Partition a Disk
# Use fdisk (MBR/DOS)
sudo fdisk /dev/sdb
# Use gdisk (GPT — recommended for disks > 2TB)
sudo gdisk /dev/sdb
# Or use parted
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%
Create a Filesystem
# ext4 (most common for Linux data drives)
sudo mkfs.ext4 /dev/sdb1
# xfs (preferred for large files)
sudo mkfs.xfs /dev/sdb1
# Format for swap
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2
Mount and Unmount
# Mount a partition
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
# Unmount
sudo umount /mnt/data
# List mounted filesystems
mount | grep /dev/sd
Persistent Mounts with /etc/fstab
Use UUID instead of device names to prevent mount failures after a reboot.
# Get UUID of a partition
sudo blkid /dev/sdb1
# Add to /etc/fstab
UUID=a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults,noatime 0 2
# Test fstab entries without rebooting
sudo mount -a
LVM — Logical Volume Manager
# Create physical volume
sudo pvcreate /dev/sdb
# Create volume group
sudo vgcreate data_vg /dev/sdb
# Create logical volume (50GB)
sudo lvcreate -L 50G -n data_lv data_vg
# Format and mount
sudo mkfs.ext4 /dev/data_vg/data_lv
sudo mount /dev/data_vg/data_lv /mnt/data
# Extend a logical volume
sudo lvextend -L +20G /dev/data_vg/data_lv
sudo resize2fs /dev/data_vg/data_lv