Linux Disk Management Tools - Complete Disk Operations Guide

Mastering disk management tools is essential for Linux system administration. This comprehensive guide covers everything from basic disk discovery with lsblk and blkid to advanced partitioning with fdisk and parted, plus LVM and RAID management. Learn to efficiently manage storage devices, create partitions, and configure complex storage systems.

Disk Management Tools Comparison

Tool Category Primary Tools Purpose Skill Level
Disk Discovery lsblk, blkid, fdisk -l Identify disks and partitions Beginner
MBR Partitioning fdisk, cfdisk Traditional partition management Intermediate
GPT Partitioning parted, gdisk, sgdisk Modern partition management Intermediate
LVM Management pvcreate, vgcreate, lvcreate Logical Volume Management Advanced
RAID Management mdadm Software RAID configuration Advanced
Filesystem Tools mkfs, fsck, tune2fs Filesystem operations Intermediate
Quick Reference:
• List disks: lsblk or fdisk -l
• Show UUIDs: blkid
• Create partition: fdisk /dev/sdX
• GPT partitioning: parted /dev/sdX
• Create filesystem: mkfs.ext4 /dev/sdX1
• LVM setup: pvcreate → vgcreate → lvcreate
• RAID setup: mdadm --create
• Always backup data before partitioning
• Test commands in non-production environments first
• Document disk layouts for future reference

Disk Management Workflow

Disk Setup Process

Disk Discovery
Partitioning
Filesystem Creation
Mounting
fstab Configuration

Partition Layout Example

/boot
5%
/
40%
/home
30%
swap
5%
/data
20%

Essential Disk Management Tools

Tool Command Examples Purpose Key Output
lsblk lsblk
lsblk -f
List block devices Disk hierarchy, filesystems
fdisk fdisk -l
fdisk /dev/sda
MBR partition management Partition table, create partitions
blkid blkid
blkid /dev/sda1
Block device attributes UUID, filesystem type
parted parted -l
parted /dev/sda
GPT partition management Partition table, resize operations
mkfs mkfs.ext4
mkfs.xfs
Filesystem creation Formatted partitions
mount mount /dev/sda1 /mnt Filesystem mounting Accessible filesystems

Basic Disk Discovery Tools

lsblk - List Block Devices

Display information about block devices and their hierarchy in a tree-like format.

lsblk [options]

Common Operations:

# List all block devices
lsblk

# Show filesystem information
lsblk -f

# Show detailed information
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE,UUID

# Brief output format
lsblk -b
lsblk -J  # JSON output

# Show only disks (exclude partitions)
lsblk -d

# Show SCSI devices
lsscsi

# Show device model and serial
lsblk -d -o NAME,SIZE,MODEL,SERIAL

# Show specific device
lsblk /dev/sda

# Continuous monitoring
watch -n 1 lsblk

# Show permissions and ownership
lsblk -m
blkid - Block Device ID

Display UUID, filesystem type, and other attributes of block devices.

blkid [options] [device]

Device Identification:

# Show all block device attributes
blkid

# Show specific device
blkid /dev/sda1

# Show only UUIDs
blkid -s UUID

# Show only filesystem type
blkid -s TYPE

# Show output in specific format
blkid -o list
blkid -o full
blkid -o value -s UUID

# Show by filesystem type
blkid -t TYPE=ext4

# Show by UUID
blkid -U 1234-5678

# Show by label
blkid -L "ROOT"

# Export for scripting
blkid -o export

# Probe specific device
blkid -p /dev/sdb1
fdisk - MBR Partitioning

Create and manage MBR partition tables on disk devices.

fdisk [options] device

Partition Operations:

# List partition tables
sudo fdisk -l

# List specific disk
sudo fdisk -l /dev/sda

# Interactive partition editing
sudo fdisk /dev/sdb

# Common fdisk commands:
# n - Create new partition
# d - Delete partition
# p - Print partition table
# t - Change partition type
# w - Write changes and exit
# q - Quit without saving

# Create partition sequence:
sudo fdisk /dev/sdb
# n → p → 1 → [Enter] → +10G → w

# Change partition type to Linux LVM
# t → 8e

# Change to Linux swap
# t → 82

# Show partition types
sudo fdisk -l /dev/sda | grep -E "^/dev/"

# Backup partition table
sudo sfdisk -d /dev/sda > sda_backup.txt

Advanced Partitioning Tools

parted - GPT Partitioning

Advanced partitioning tool with GPT support and resize capabilities.

parted [options] device

GPT Operations:

# List partitions
sudo parted -l

# Interactive parted session
sudo parted /dev/sdb

# Common parted commands:
# print - Show partition table
# mklabel gpt - Create GPT partition table
# mkpart primary ext4 1MiB 10GiB - Create partition
# rm 1 - Delete partition 1
# resizepart 1 15GiB - Resize partition
# quit - Exit

# Create GPT partition table
sudo parted /dev/sdb mklabel gpt

# Create partition with optimal alignment
sudo parted -a optimal /dev/sdb mkpart primary ext4 1MiB 10GiB

# Create multiple partitions
sudo parted /dev/sdb mkpart primary ext4 1MiB 5GiB
sudo parted /dev/sdb mkpart primary ext4 5GiB 10GiB

# Set partition flags
sudo parted /dev/sdb set 1 boot on

# Show free space
sudo parted /dev/sdb unit MB print free

# Resize partition
sudo parted /dev/sdb resizepart 1 12GiB

# Create swap partition
sudo parted /dev/sdb mkpart primary linux-swap 10GiB 12GiB
gdisk - GPT fdisk

GPT-specific partitioning tool with fdisk-like interface.

gdisk device

GPT Operations:

# Interactive GPT editing
sudo gdisk /dev/sdb

# Common gdisk commands:
# p - Print partition table
# n - Create new partition
# d - Delete partition
# t - Change partition type
# w - Write table to disk
# q - Quit without saving

# Create GPT partition
sudo gdisk /dev/sdb
# n → [Enter] → [Enter] → +10G → 8300 (Linux filesystem)

# Change partition type to LVM
# t → 1 → 8e00

# Show detailed information
sudo gdisk -l /dev/sdb

# Backup GPT partition table
sudo sgdisk -b /dev/sdb sdb_gpt_backup.bin

# Restore GPT partition table
sudo sgdisk -l sdb_gpt_backup.bin /dev/sdb

# Verify partition table
sudo gdisk -v /dev/sdb

# Create hybrid MBR (for compatibility)
sudo gdisk /dev/sdb
# r → h → 1 → y → n →  → w
cfdisk - Curses fdisk

Interactive curses-based partition table editor.

cfdisk [options] device

Interactive Partitioning:

# Interactive partition editor
sudo cfdisk /dev/sdb

# With specific partition table type
sudo cfdisk -z /dev/sdb  # Start with empty table

# Common cfdisk operations:
# ↑↓ - Navigate partitions
# ←→ - Select actions
# Enter - Execute action
# t - Change partition type
# n - Create new partition
# d - Delete partition
# q - Quit

# Keyboard shortcuts:
# F1 - Help
# F2 - Write changes
# F3 - Create partition
# F4 - Delete partition
# F5 - Resize partition
# F6 - Change type

# Start with specific table type
sudo cfdisk -z /dev/sdb  # No partition table
sudo cfdisk /dev/sdb     # Existing table

# Show help within cfdisk
# Press F1 for full help menu

# Write changes and exit
# Use F2 to write, then F10 to exit

Tool Feature Comparison

fdisk
MBR Support
Interactive
Basic Operations
parted
GPT Support
Resize Operations
Scriptable
gdisk
GPT Support
fdisk-like Interface
Advanced Features
cfdisk
Curses Interface
User-friendly
Limited to MBR

Filesystem Operations

Filesystem Creation

Create various filesystem types on partitions.

mkfs, mkswap

Filesystem Operations:

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

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

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

# Create filesystem with label
sudo mkfs.ext4 -L "data_disk" /dev/sdb1

# Create swap partition
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2

# Create FAT32 filesystem
sudo mkfs.fat -F32 /dev/sdb1

# Create NTFS filesystem
sudo mkfs.ntfs /dev/sdb1

# Create with specific block size
sudo mkfs.ext4 -b 4096 /dev/sdb1

# Create with reserved blocks percentage
sudo mkfs.ext4 -m 1 /dev/sdb1  # 1% reserved

# Check filesystem
sudo fsck /dev/sdb1
sudo fsck.ext4 /dev/sdb1
Filesystem Information

Get detailed information about filesystems.

tune2fs, xfs_info, btrfs

Filesystem Analysis:

# Show ext4 filesystem information
sudo tune2fs -l /dev/sdb1

# Show XFS filesystem information
sudo xfs_info /dev/sdb1

# Show Btrfs filesystem information
sudo btrfs filesystem show /dev/sdb1

# Check filesystem usage
sudo df -h /dev/sdb1
sudo df -i /dev/sdb1  # Inode usage

# Show mount options
findmnt /dev/sdb1

# Check filesystem health
sudo fsck -n /dev/sdb1

# Show superblock information
sudo dumpe2fs /dev/sdb1 | head -50

# Change filesystem label
sudo tune2fs -L "new_label" /dev/sdb1

# Set filesystem features
sudo tune2fs -O has_journal /dev/sdb1

# Check filesystem type
sudo file -s /dev/sdb1
sudo blkid /dev/sdb1
Device Management

Manage device nodes and udev rules.

udevadm, lsblk, /dev/

Device Operations:

# List all device nodes
ls -la /dev/sd*

# Show device information
udevadm info /dev/sda

# Show device attributes
udevadm info -a /dev/sda

# Monitor device events
udevadm monitor

# Trigger device events
udevadm trigger

# Reload udev rules
sudo udevadm control --reload-rules

# Create custom device symlink
# Add to /etc/udev/rules.d/99-custom.rules:
# SUBSYSTEM=="block", ATTR{size}=="123456789", SYMLINK+="mydisk"

# Show device tree
lsblk -f

# Show device major/minor numbers
ls -la /dev/sda | awk '{print $5, $6}'

# Rescan SCSI bus
echo 1 > /sys/class/scsi_device/*/device/rescan

# Show device mapper information
dmsetup ls
dmsetup info

Advanced Disk Management Tools

Tool Category Tools Primary Use Installation
Basic Discovery lsblk, blkid, fdisk -l Disk and partition discovery Built-in
Partitioning fdisk, parted, gdisk Partition table management Built-in
Filesystem Tools mkfs, fsck, tune2fs Filesystem operations Built-in
LVM Management pvcreate, vgcreate, lvcreate Logical Volume Management sudo apt install lvm2
RAID Management mdadm Software RAID configuration sudo apt install mdadm

LVM Management Tools

LVM Basics

Physical Volumes, Volume Groups, and Logical Volumes.

pvcreate, vgcreate, lvcreate

LVM Setup:

# Install LVM tools
sudo apt install lvm2

# Create Physical Volume
sudo pvcreate /dev/sdb1
sudo pvcreate /dev/sdc1

# Create Volume Group
sudo vgcreate myvg /dev/sdb1 /dev/sdc1

# Create Logical Volume
sudo lvcreate -L 20G -n mylv myvg

# Create filesystem on LV
sudo mkfs.ext4 /dev/myvg/mylv

# Mount the logical volume
sudo mount /dev/myvg/mylv /mnt/lvm

# Show LVM information
sudo pvs        # Physical volumes
sudo vgs        # Volume groups
sudo lvs        # Logical volumes

# Show detailed information
sudo pvdisplay
sudo vgdisplay
sudo lvdisplay

# Extend Volume Group
sudo vgextend myvg /dev/sdd1

# Extend Logical Volume
sudo lvextend -L +10G /dev/myvg/mylv
sudo resize2fs /dev/myvg/mylv
LVM Advanced Operations

Advanced LVM features and maintenance.

lvconvert, lvchange, vgchange

Advanced LVM:

# Create striped logical volume
sudo lvcreate -L 20G -i 2 -I 64 -n striped_lv myvg

# Create mirrored logical volume
sudo lvcreate -L 10G -m 1 -n mirrored_lv myvg

# Convert to thin pool
sudo lvconvert --type thin-pool myvg/mylv

# Create thin volume
sudo lvcreate -V 10G -T myvg/mythinpool -n thin_vol

# Create snapshot
sudo lvcreate -L 5G -s -n mysnap /dev/myvg/mylv

# Remove snapshot
sudo lvremove /dev/myvg/mysnap

# Move Physical Volume
sudo pvmove /dev/sdb1 /dev/sdc1

# Remove Physical Volume
sudo vgreduce myvg /dev/sdb1
sudo pvremove /dev/sdb1

# Activate/Deactivate volumes
sudo lvchange -an /dev/myvg/mylv  # Deactivate
sudo lvchange -ay /dev/myvg/mylv  # Activate

# Backup LVM metadata
sudo vgcfgbackup myvg
RAID Management

Software RAID configuration and management.

mdadm

RAID Operations:

# Install mdadm
sudo apt install mdadm

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

# Create RAID 5
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

# Create RAID 10
sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

# Stop RAID array
sudo mdadm --stop /dev/md0

# Assemble existing RAID
sudo mdadm --assemble /dev/md0

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

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

# Add spare disk to RAID
sudo mdadm --add /dev/md0 /dev/sdf1

# Monitor RAID health
watch cat /proc/mdstat

# Check component disks
sudo mdadm --examine /dev/sdb1

Practical Disk Management Scenarios

Real-World Disk Management Examples

# 1. Complete Disk Discovery Script
#!/bin/bash
echo "=== Disk Discovery Report ==="
echo -e "\n1. Block Devices:"
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE,UUID
echo -e "\n2. Partition Tables:"
sudo fdisk -l 2>/dev/null | head -20
echo -e "\n3. Device Information:"
blkid
echo -e "\n4. SCSI Devices:"
lsscsi 2>/dev/null
echo -e "\n5. LVM Status:"
sudo pvs 2>/dev/null && sudo vgs 2>/dev/null && sudo lvs 2>/dev/null
echo -e "\n6. RAID Status:"
cat /proc/mdstat 2>/dev/null

# 2. Automated Partitioning Script
#!/bin/bash
DISK="/dev/sdb"
echo "Partitioning $DISK..."
# Create GPT partition table
sudo parted -s $DISK mklabel gpt
# Create boot partition
sudo parted -s $DISK mkpart primary ext4 1MiB 1GiB
# Create root partition
sudo parted -s $DISK mkpart primary ext4 1GiB 20GiB
# Create home partition
sudo parted -s $DISK mkpart primary ext4 20GiB 40GiB
# Create swap partition
sudo parted -s $DISK mkpart primary linux-swap 40GiB 44GiB
# Set boot flag
sudo parted -s $DISK set 1 boot on
echo "Partitioning complete:"
sudo parted -s $DISK print

# 3. LVM Setup Automation
#!/bin/bash
VG_NAME="datavg"
LV_NAME="datalv"
MOUNT_POINT="/mnt/lvm"

echo "Setting up LVM..."
# Create physical volumes
for disk in /dev/sdb1 /dev/sdc1; do
    sudo pvcreate $disk
done
# Create volume group
sudo vgcreate $VG_NAME /dev/sdb1 /dev/sdc1
# Create logical volume
sudo lvcreate -L 50G -n $LV_NAME $VG_NAME
# Create filesystem
sudo mkfs.ext4 /dev/$VG_NAME/$LV_NAME
# Mount
sudo mkdir -p $MOUNT_POINT
sudo mount /dev/$VG_NAME/$LV_NAME $MOUNT_POINT
echo "LVM setup complete"

# 4. Disk Health Check Script
#!/bin/bash
echo "Disk Health Check:"
for disk in /dev/sd?; do
    if [ -b $disk ]; then
        echo "Checking $disk:"
        sudo smartctl -H $disk 2>/dev/null | grep "SMART overall-health" || echo "SMART not available"
        # Check for bad sectors
        sudo badblocks -sv $disk 1000 1000  # Test first 1000 blocks
    fi
done

# 5. Partition Backup and Restore
#!/bin/bash
DISK="/dev/sda"
BACKUP_FILE="/backup/partition_table_$(date +%Y%m%d).txt"

echo "Backing up partition table for $DISK..."
sudo sfdisk -d $DISK > $BACKUP_FILE
echo "Backup saved to $BACKUP_FILE"

# Restore example:
# sudo sfdisk $DISK < $BACKUP_FILE

# 6. Filesystem Check and Repair
#!/bin/bash
echo "Filesystem Health Check..."
for partition in /dev/sda1 /dev/sda2 /dev/sdb1; do
    if [ -b $partition ]; then
        echo "Checking $partition:"
        sudo fsck -n $partition
    fi
done

# 7. Disk Performance Testing
#!/bin/bash
echo "Disk Performance Test:"
for disk in /dev/sd?; do
    if [ -b $disk ]; then
        echo "Testing $disk:"
        sudo hdparm -Tt $disk 2>/dev/null
    fi
done

# 8. USB Disk Auto-mount Script
#!/bin/bash
USB_DEVICE=$(lsblk -r -n -o NAME,MOUNTPOINT | grep -v / | head -1 | cut -d' ' -f1)
if [ -n "$USB_DEVICE" ]; then
    MOUNT_POINT="/mnt/usb_$USB_DEVICE"
    sudo mkdir -p $MOUNT_POINT
    sudo mount /dev/$USB_DEVICE $MOUNT_POINT 2>/dev/null && echo "USB mounted at $MOUNT_POINT" || echo "Failed to mount USB"
else
    echo "No USB device found"
fi

# 9. LVM Snapshot Management
#!/bin/bash
VG_NAME="datavg"
LV_NAME="datalv"
SNAP_NAME="backup_snap"

echo "Creating LVM snapshot..."
sudo lvcreate -L 5G -s -n $SNAP_NAME /dev/$VG_NAME/$LV_NAME
echo "Snapshot created:"
sudo lvs /dev/$VG_NAME/$SNAP_NAME

# Later: sudo lvremove /dev/$VG_NAME/$SNAP_NAME

# 10. RAID Monitoring Script
#!/bin/bash
echo "RAID Health Check:"
if [ -f /proc/mdstat ]; then
    cat /proc/mdstat
    for array in /dev/md*; do
        if [ -b $array ]; then
            echo "Details for $array:"
            sudo mdadm --detail $array | grep -E "State|Status|Failed"
        fi
    done
else
    echo "No software RAID arrays found"
fi

# 11. Disk Encryption Setup
#!/bin/bash
CRYPT_NAME="secure_disk"
MOUNT_POINT="/mnt/secure"

echo "Setting up encrypted disk..."
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup luksOpen /dev/sdb1 $CRYPT_NAME
sudo mkfs.ext4 /dev/mapper/$CRYPT_NAME
sudo mkdir -p $MOUNT_POINT
sudo mount /dev/mapper/$CRYPT_NAME $MOUNT_POINT
echo "Encrypted disk ready at $MOUNT_POINT"

# 12. Filesystem Resize Script
#!/bin/bash
PARTITION="/dev/sda1"
NEW_SIZE="15G"

echo "Resizing filesystem on $PARTITION..."
# For LVM: sudo lvextend -L $NEW_SIZE $PARTITION
sudo resize2fs $PARTITION $NEW_SIZE
echo "Resize complete"

# 13. Disk Benchmark Suite
#!/bin/bash
echo "Disk Benchmark Suite:"
for disk in /dev/sd?; do
    echo "Testing $disk:"
    # Sequential read
    sudo hdparm -Tt $disk
    # Random I/O
    sudo fio --name=random_test --filename=$disk --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=1G --runtime=60 --group_reporting
done

# 14. Storage Configuration Backup
#!/bin/bash
BACKUP_DIR="/root/disk_config_$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
sudo fdisk -l > $BACKUP_DIR/fdisk.txt
lsblk -f > $BACKUP_DIR/lsblk.txt
blkid > $BACKUP_DIR/blkid.txt
sudo pvs 2>/dev/null > $BACKUP_DIR/pvs.txt
sudo vgs 2>/dev/null > $BACKUP_DIR/vgs.txt
sudo lvs 2>/dev/null > $BACKUP_DIR/lvs.txt
cat /proc/mdstat 2>/dev/null > $BACKUP_DIR/mdstat.txt
echo "Storage configuration backed up to $BACKUP_DIR"

# 15. Automated Cleanup Script
#!/bin/bash
echo "Cleaning up disk management..."
# Remove unused LVM volumes
sudo lvremove -f $(sudo lvs --noheadings -o lv_path 2>/dev/null) 2>/dev/null
# Remove unused volume groups
sudo vgremove -f $(sudo vgs --noheadings -o vg_name 2>/dev/null) 2>/dev/null
# Remove unused physical volumes
sudo pvremove -f $(sudo pvs --noheadings -o pv_name 2>/dev/null) 2>/dev/null
# Stop unused RAID arrays
for array in /dev/md*; do
    if [ -b $array ]; then
        sudo mdadm --stop $array
    fi
done
echo "Cleanup complete"

Common Disk Management Issues & Solutions

Partitioning Problems

  • Disk Not Recognized: Check kernel messages, rescan SCSI bus, verify connections
  • Partition Table Corruption: Use testdisk, gdisk recovery, restore from backup
  • MBR/GPT Conversion Issues: Backup data first, use gdisk for conversion
  • Partition Alignment: Use parted with optimal alignment, check with fdisk

LVM Issues

  • Volume Group Not Found: Scan for physical volumes, activate volume group
  • Logical Volume Activation Failed: Check device mapper, verify LVM metadata
  • Snapshot Issues: Monitor snapshot space, remove old snapshots
  • LVM Metadata Corruption: Use vgcfgrestore, restore from backup

RAID Issues

  • RAID Degraded: Replace failed disks, monitor rebuild progress
  • RAID Not Assembling: Check component disks, force assembly if needed
  • Slow RAID Performance: Check disk health, verify RAID configuration
  • RAID Recovery: Use mdadm recovery options, restore from backup if needed

Filesystem Issues

  • Filesystem Corruption: Run fsck, check disk health, restore from backup
  • Mount Failures: Check fstab syntax, verify device existence, check filesystem type
  • Read-only Filesystem: Check disk errors, remount as read-write, run fsck
  • Inode Exhaustion: Check with df -i, clean up small files, recreate filesystem with more inodes

Advanced Disk Management Techniques

LVM Thin Provisioning

Advanced LVM features for efficient storage allocation.

lvconvert, thin pool

Thin Provisioning:

# Create thin pool
sudo lvcreate -L 100G --thinpool my_thin_pool myvg

# Create thin volume
sudo lvcreate -V 50G --thin -n thin_vol1 myvg/my_thin_pool

# Extend thin pool
sudo lvextend -L +50G myvg/my_thin_pool

# Monitor thin pool usage
sudo lvs -o lv_name,data_percent,metadata_percent

# Create snapshot of thin volume
sudo lvcreate -s myvg/thin_vol1 -n thin_snap

# Convert existing volume to thin
sudo lvconvert --type thin myvg/mylv

RAID Advanced Features

Advanced RAID configurations and monitoring.

mdadm advanced options

Advanced RAID:

# Create RAID with write-intent bitmap
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 --bitmap=internal /dev/sdb1 /dev/sdc1

# Create RAID with specific chunk size
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 --chunk=256 /dev/sdb1 /dev/sdc1 /dev/sdd1

# Monitor RAID reconstruction
watch -n 1 'cat /proc/mdstat'

# Check RAID consistency
sudo mdadm --detail /dev/md0 | grep Consistency

# Set RAID speed limits
echo 100000 > /proc/sys/dev/raid/speed_limit_min
echo 1000000 > /proc/sys/dev/raid/speed_limit_max

Disk Encryption

Full disk encryption with LUKS and cryptsetup.

cryptsetup, LUKS

Encryption Operations:

# Create encrypted partition
sudo cryptsetup luksFormat /dev/sdb1

# Open encrypted partition
sudo cryptsetup luksOpen /dev/sdb1 secure_disk

# Create filesystem on encrypted device
sudo mkfs.ext4 /dev/mapper/secure_disk

# Mount encrypted filesystem
sudo mount /dev/mapper/secure_disk /mnt/secure

# Close encrypted partition
sudo umount /mnt/secure
sudo cryptsetup luksClose secure_disk

# Add additional passphrase
sudo cryptsetup luksAddKey /dev/sdb1

# Backup LUKS header
sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file luks_header.backup
Important Considerations:
• Always backup data before partitioning or filesystem operations
• Test new disk configurations in non-production environments
• Monitor disk health regularly with SMART tools
• Keep LVM metadata backups for disaster recovery
• Understand RAID levels and their trade-offs for your use case
• Document disk layouts and configurations
• Have recovery procedures tested and ready
• Consider performance implications of different configurations
• Plan for storage growth and scalability
Pro Tips:
• Use lsblk -f for quick disk overview
• Prefer GPT over MBR for modern systems and disks >2TB
• Use LVM for flexible storage management
• Monitor disk SMART attributes for early failure detection
• Use parted for GPT disks and advanced operations
• Create storage documentation with disk layouts
• Use RAID for redundancy, not as a backup solution
• Test backup and recovery procedures regularly
• Consider using ZFS or Btrfs for advanced features

Key Takeaways

Effective disk management requires mastering a suite of tools from basic discovery commands like lsblk and blkid to advanced partitioning with fdisk and parted, plus LVM and RAID management. By understanding when to use each tool and following systematic approaches, you can efficiently manage storage in any Linux environment. Remember that disk operations can be destructive, so always have backups and test procedures in safe environments first.

Next Step: Explore advanced storage topics like distributed filesystems (Ceph, GlusterFS), storage performance tuning, cloud storage integration, and automated storage management with tools like Ansible.