Linux partitioning, storage & filesystem architecture

Technical guides and reference manuals for disk partitioning, GUID Partition Tables (GPT), Linux filesystems (Ext4, XFS, Btrfs, ZFS), LUKS2 encryption, kernel I/O subsystems, and cloud storage engineering.

Storage engineering library

Deep technical guides for Ext4, XFS, LVM, mdadm RAID, Btrfs, ZFS, LUKS2, I/O schedulers, Ceph, cloud storage, and SRE runbooks.
Browse Storage Guides
Extent trees, flex_bg, journaling modes (data=ordered, journal, writeback), fast_commit, tune2fs, and online resizing.
Read Ext4 Guide
Allocation Groups (AGs), multi-threaded allocation, reflink CoW deduplication, dynamic inodes, and RAID stripe alignment.
Read XFS Guide
Argon2id KDF, 32 keyslots, header backups, NVMe workqueue bypass flags, crypttab, and LVM-on-LUKS.
Read Encryption Guide
Multi-queue block layer, none vs mq-deadline vs bfq vs kyber, sysfs queue parameters, and persistent udev rules.
Read Schedulers Guide
Emergency production runbooks: 100% full disk with unlinked deleted files (lsof +L1), read-only remounts, and busy unmount errors.
View Incident Runbooks

Core documentation

Comprehensive reference for planning, sizing, and configuring storage layouts across NVMe, SSD, and hard drives. Covers UEFI ESP, subvolumes, and recovery workflows.
Read Guide
Detailed reference of 128-bit GPT Type GUIDs, the Discoverable Partitions Specification (DPS), and legacy MBR type codes.
View Partition Types
Storage architecture requirements for servers and workstations, EFI System Partition sizing, directory isolation, and Btrfs subvolume strategies.
View Sizing Guide
Step-by-step terminal tutorial for partitioning NVMe drives with 1MiB sector alignment and UEFI-bootable drive layouts.
Follow Tutorial
How to deploy in-memory compressed swap with systemd-zram-generator (zstd), configure Btrfs NOCOW swapfiles, and set swap priority.
Configure Swap
Configure persistent mounting with UUID, PARTUUID, and volume labels in /etc/fstab across Ext4, XFS, and Btrfs.
Manage Device Labels
Memory-backed storage in Linux: configuring tmpfs mounts, dracut initramfs generation, and Unified Kernel Images (UKI).
Explore RAM Disks
Procedures for updating numeric UIDs and GIDs for NFS and directory integration using usermod, groupmod, find, and macOS dscl.
Read Migration Guide

Storage architecture reference

ComponentStandard ImplementationKey characteristics
Partition TableGUID Partition Table (GPT)128+ primary partitions, 64-bit LBA addressing, backup header at end of disk with CRC32 verification.
Device IdentificationUUID= and PARTUUID=Deterministic block device mounting across bus changes, controller reordering, and hotplug events.
Disk EncryptionLUKS2 with Argon2id32 keyslots, JSON metadata, TPM2 PCR binding, and NVMe workqueue bypass for maximum IOPS.
Boot FirmwareUEFI + systemd-boot / GRUB 2Dedicated VFAT EFI System Partition (ESP), Unified Kernel Images (UKI), and Secure Boot support.
Swap Managementzram (lzo-rle default; zstd optional) + swapfileHigh-throughput compressed memory swap with optional secondary file-backed storage on disk.
Temporary Storagetmpfs in RAMDynamically allocated memory filesystem for /tmp and /run with automatic clearing on reboot.

Frequently asked questions

How many primary partitions does GPT support?

GUID Partition Table (GPT) supports 128 or more primary partitions with 64-bit LBA addressing. A backup header sits at the end of the disk with CRC32 verification.

How does Linux identify block devices persistently?

Linux uses `UUID=` and `PARTUUID=` for deterministic block device mounting. This keeps mounts stable across bus changes, controller reordering, and hotplug events.

What boot firmware setup does Linux use with UEFI?

UEFI with systemd-boot or GRUB 2, using a dedicated VFAT EFI System Partition (ESP). Unified Kernel Images (UKI) and Secure Boot are supported.

What is zram used for on Linux?

`zram` provides high-throughput compressed memory swap, using lzo-rle by default with zstd as an optional compressor. A file-backed swapfile on disk can serve as secondary storage.

What is tmpfs used for on Linux?

`tmpfs` is a dynamically allocated memory filesystem used for `/tmp` and `/run`. Its contents are cleared automatically on reboot.