Linux Disk Guide

In Linux, a disk refers to storage devices such as hard drives, solid-state drives (SSDs), USB flash drives, and so on. These devices contain file systems used for storing and organizing files and data.

In Linux, disks are typically represented by device files. Each disk is mounted under a directory within the file system; this directory is commonly referred to as the mount point. In Linux, disks can be managed using command-line tools or graphical interface tools.

There are also several tools available in Linux that assist with diagnosing and repairing disk issues, such as SMART (Self-Monitoring, Analysis and Reporting Technology) tools and fsck (file system check) utilities. These tools can assess the health status of a disk, diagnose file system errors, and perform repairs.

Detailed Introduction to Linux Disks

Disk management is an integral part of system administration in Linux.

Linux disk management encompasses multiple aspects including partitioning, file systems, mounting, performance monitoring, and more. Properly managing disks can enhance system performance and data security. Understanding these fundamental concepts and tools is a crucial skill for every Linux administrator.

Below is a detailed introduction to Linux disks:

1. Disk Types

  • Hard Disk Drives (HDD) : Traditional mechanical hard drives that store data on rotating platters.
  • Solid State Drives (SSD) : Use flash memory for storage, offering faster speeds and better shock resistance.
  • Virtual Disks: Disks used in virtualized environments, such as VMDK or VHD files.

2. Partition Management

  • Partition Types:
    • Primary Partition: Each disk supports up to four primary partitions.
    • Extended Partition: Used to create additional logical partitions.
    • Logical Partition: A partition stored within an extended partition.
  • Tools: fdisk, parted, gparted

3. File Systems

  • Common File Systems:
    • ext4: The most widely used Linux file system, supporting large files and high-capacity storage.
    • XFS: A high-performance file system suitable for massive data storage environments.
    • Btrfs: A modern file system featuring snapshot capabilities and compression support.
  • Creating File Systems: Use the mkfs command; for example, mkfs.ext4 /dev/sdX1.

4. Mounting and Unmounting

  • Mounting: Connecting a file system to the directory tree of the operating system.
    • Command: mount /dev/sdX1 /mnt
  • Unmounting: Disconnecting an unmounted file system from the kernel's view.
    • Command: umount /mnt

5. Disk Usage

  • View Disk Space Usage:
    • Command: df -h (Displays human-readable disk space usage).
  • View Directory Size:
    • Command: du -sh /path/to/directory

6. Disk Performance Monitoring

  • Tools: iostat, iotop, hdparm
  • Functionality: Monitor disk I/O performance and analyze read/write speeds.

7. RAID Configuration

  • RAID (Redundant Array of Independent Disks) : Enhances data redundancy and improves performance.
  • Common RAID Levels:
    • RAID 0: Data striping for increased speed with no redundancy.
    • RAID 1: Disk mirroring providing full redundancy.
    • RAID 5: Distributes parity information across drives, balancing performance and redundancy.
  • Tools: mdadm (manages Linux software RAID).

8. Backup and Recovery

  • Tools: rsync, tar, dd
  • Purpose: Regularly backup critical data to ensure data safety and integrity.

Here are some commonly used Linux disk management commands along with simple usage examples:

  1. fdisk: A command-line utility for creating, deleting, and resizing disk partitions.
    Example: List partition information on disks

    fdisk -l
    
  2. mkfs: A command-line utility used to create file systems; mkfs.ext4 is specifically used to create ext4 file systems.
    Example: Create an ext4 file system

    mkfs.ext4 /dev/sda1
    
  3. mount: A command-line tool for mounting a disk into the file system hierarchy.
    Example: Mount partition /dev/sda1 to directory /mnt

    mount /dev/sda1 /mnt
    
  4. umount: A utility used to unmount disks that are currently mounted.
    Example: Unmount the disk located in the /mnt directory

    umount /mnt
    
  5. df: Displays information about file system usage, specifically available and total space on each device.
    Example: Display human-readable disk space usage for a file system

    df -h
    
  6. du: Calculates the amount of disk space used by files or directories.
    Example: Show disk space usage under the /mnt directory in a human-readable format

    du -sh /mnt
    

In addition to these commands, other tools can assist with diagnosing and repairing disk problems, such as smartctl and fsck. These utilities are capable of detecting disk health status, identifying file system errors, and executing repairs.