Learn Linux Filesystem - Pre-Requisite Skills & Environment Setup
Episode 0 of 23

Learn Linux Filesystem - Pre-Requisite Skills & Environment Setup

Before touching any filesystem, you need to master the Linux CLI, partition management, mounting and /etc/fstab, and the block device concept. In this episode you set up a VM/lab experiment and install the e2fsprogs, xfsprogs, btrfs-progs, and OpenZFS toolchains.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Introduction

Welcome to the Learn Linux Filesystem series! This series will take you through mastering ext4, XFS, btrfs, and ZFS — from the most basic concepts to production hardening. There are 23 episodes arranged in six phases, and all of them require hands-on practice on a real machine.

But before touching mkfs or zpool, there are some basic skills and software you must have. Why are these prerequisites important? Because a filesystem is not just a command for creating a partition. It works on top of block devices, allocates blocks, and guarantees data integrity when the power goes out. If you don't yet understand what a block device or mount point is, every command will feel like dangerous magic.

Episode 0 is your roadmap: we'll make sure your basic skills are solid, set up an experiment lab, install the filesystem toolchain, and run your first verification. Once this episode is complete, you can follow the entire series comfortably and safely.

Basic Skills You Must Master

Linux CLI and the Block Device Concept

You must be comfortable with the Linux terminal. Navigating with cd, ls, grep, and man should already feel natural. More importantly, understand that storage in Linux is seen as block devices/dev/sda, /dev/nvme0n1, or /dev/vda — not as drive letters like on Windows.

First, verify the hardware that's available:

Lihat semua block device
lsblk

The lsblk output shows the hierarchy of disks and partitions. Pay attention to the SIZE, TYPE (disk or part), and MOUNTPOINT columns. An empty disk has no mount point — and that's exactly our experiment target.

Partition Management with fdisk and parted

You need to know two main partitioning tools: fdisk for simple MBR/GPT partition tables, and parted for automated scripts. For example, viewing a disk's partition table:

Tampilkan tabel partisi
sudo fdisk -l /dev/sda

Understand the terms partition, partition table (MBR vs GPT), and filesystem. Remember: a partition is only a division of space, while a filesystem is the structure placed inside the partition to store files.

Mount and /etc/fstab

Mount is the process of attaching a filesystem to the directory tree. This concept is non-negotiable. You also need to understand /etc/fstab, the file that defines permanent mounts at boot:

Lihat fstab aktif
cat /etc/fstab

Pay attention to its columns: device (can be a UUID), mount point, filesystem type, options, dump, and fsck order. The full details of fstab will be covered in episode 7, but the ability to read this file is required from now on.

Software You Need to Prepare

VM or Experiment Lab

Filesystem experiments involve mkfs, fsck, and zpool create — commands that can destroy data. Never try them on a disk that holds important data. Prepare one of two options:

  • VM: VirtualBox, QEMU/KVM, or a cloud instance with an extra empty disk.
  • Loopback disk image: a small image file mounted as a block device.

The loopback option is very practical and sufficient for most experiments in this series:

Buat disk image 2GB
truncate -s 2G /tmp/lab.img
sudo losetup -f /tmp/lab.img
sudo losetup -l

The losetup -l command shows the connected loop devices. Note the device name, for example /dev/loop0 — that will be your experiment disk for this entire series.

Installing the Filesystem Toolchain

Each filesystem requires userspace tools. On Debian/Ubuntu, install them all at once:

Install tools ext4, XFS, btrfs, dan ZFS
sudo apt update
sudo apt install e2fsprogs xfsprogs btrfs-progs zfsutils-linux

e2fsprogs provides mkfs.ext4, tune2fs, and e2fsck. xfsprogs provides mkfs.xfs and xfs_repair. btrfs-progs provides the btrfs command. zfsutils-linux provides zpool and zfs for OpenZFS. On RHEL/Rocky use dnf install e2fsprogs xfsprogs btrfs-progs zfs.

Info

OpenZFS on Debian is installed from the DKMS module. If the installation fails, make sure the kernel headers are installed with sudo apt install linux-headers-$(uname -r).

Verifying Your Environment

Before moving on to episode 1, verify that all the tools are ready to use:

Verifikasi versi toolchain
mkfs.ext4 -V
xfs_info -V
btrfs version
zfs version

Each command should print its version without errors. Relevant versions at the time this series was written: e2fsprogs 1.47.4, btrfs-progs v7.1, and OpenZFS 2.4.3. Newer versions are fine as long as the examples in this series run normally.

Finally, make sure the blkid command is available and works:

Identifikasi UUID dan tipe filesystem
sudo blkid

blkid displays the UUID and filesystem type of every partition. This UUID will be the stable reference in /etc/fstab, replacing device names that can change.

Summary of Skills You Must Master

Here's a recap of the prerequisites you've prepared in episode 0:

  • A comfortable Linux CLI, including lsblk, fdisk, mount, and man.
  • The block device concept and the difference between partitions and filesystems.
  • A VM or loopback disk image as a safe experiment lab.
  • The complete toolchain: e2fsprogs, xfsprogs, btrfs-progs, and zfsutils-linux.
  • blkid verified for reading UUIDs and filesystem types.

If any of these aren't in place, stop and complete them before continuing. A strong foundation will make the next 22 episodes feel much lighter.

Conclusion

In episode 0 you've laid the foundation for the whole series: understanding block devices and partitions, mount and fstab, preparing an experiment lab with loopback, installing the toolchain for the four main filesystems, and verifying everything.

Key takeaways:

  • Filesystems work on top of block devices; understand lsblk and partitioning before diving into mkfs.
  • Always experiment in a VM or on a loopback disk image, never on a disk with data.
  • e2fsprogs, xfsprogs, btrfs-progs, and zfsutils-linux are the required toolchain.
  • blkid is your gateway to the UUIDs used in fstab.
  • Verify tool versions before following the next episode.

In the next episode, episode 1, we'll cover the history, background, and why you need a Linux filesystem — from ext2 in 1993, the birth of journaling, to ZFS and btrfs as the modern generation. Make sure your lab is ready, because the Learn Linux Filesystem journey is just beginning!