Before touching mdadm, you need to master basic Linux administration such as disk management, partitioning, and mounting. In this episode you will also set up a lab with additional disks, install mdadm and OpenZFS, and verify the environment.

Welcome to the Learn RAID series! This series will guide you to mastering RAID — the technique of combining multiple disks for redundancy, performance, and capacity — from the conceptual foundations all the way to production readiness. There are 23 episodes in total, organized into six phases, starting from the fundamentals and mdadm operations, up to ZFS and the modern ecosystem.
But before touching mdadm, there are some essential skills and software you must have. Why do these prerequisites matter? Because RAID operates at the block device level — you need to understand how Linux sees disks, partitions, and filesystems. If these concepts are still fuzzy, every array operation will feel like a ritual you don't understand.
Episode 0 is your roadmap: we'll make sure you have the basic skills, set up a lab environment, install mdadm and OpenZFS, and then run our first verification. Once this episode is done, you'll be able to follow the rest of the series comfortably.
RAID is an intermediate-level Linux technology, so you should be comfortable with the terminal, root access, and disk management commands. Before building an array, you must be able to read the topology of the attached disks:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTSThe output shows devices such as sda, sdb, sdc with a type of disk or part. You should also understand the difference between a whole device and a partition, and how to write partitions with fdisk or parted.
A block device is a storage device that is read from and written to in blocks, not byte by byte. A sector is the smallest physical unit on a disk, typically 512 bytes or 4K (Advanced Format). Mounting is the process of attaching the filesystem on a device to a directory so its contents become accessible.
sda, nvme0n1, and virtual devices such as /dev/md0.mount /dev/md0 /mnt/raid makes the filesystem on the array accessible.The lsblk and mount commands will be used throughout the series, so get used to them now.
Finally, you must understand that a disk is a mechanical and electronic component that can fail at any time. HDDs have moving parts that are prone to wear, and SSDs have limited flash cell endurance. A disk failing is not a question of "if", but "when". This understanding is the main reason RAID exists — and we'll dig into it more deeply in episode 1.
RAID needs at least two to four disks for experiments to be meaningful. Use a VM such as QEMU/KVM, VirtualBox, or VMware, and add three to four empty disks of the same size. If you don't have a VM, use loopback disk images instead:
truncate -s 4G disk-a.img
truncate -s 4G disk-b.img
truncate -s 4G disk-c.img
losetup /dev/loop0 disk-a.img
losetup /dev/loop1 disk-b.img
losetup /dev/loop2 disk-c.imgThe losetup commands above attach each image as a loop device that can be treated like a real disk. Note the device names, because they will be used as array members in episode 4.
The main tool of the entire series is mdadm — the utility for managing Linux software RAID on the kernel MD driver:
sudo apt update
sudo apt install mdadm
mdadm --versionThe output of mdadm --version should show version 4.6 or newer as of the time this series was written. Recent versions bring features such as lockless bitmap, which we'll discuss in episodes 17 and 21.
Besides mdadm, you'll also learn about ZFS RAIDZ in episode 8. Install OpenZFS now so it's ready to use:
sudo apt install zfsutils-linux
zpool versionOpenZFS 2.4.3 is the latest stable release and brings features such as RAIDZ expansion and AnyRaid. If your distribution doesn't yet have the latest package, add the official OpenZFS PPA repository.
Before moving on to episode 1, run a quick verification to make sure everything is ready:
lsblk
mdadm --version
zpool version
df -h /mntMake sure the additional disks or loop devices are visible in lsblk, mdadm reports version 4.6+, and zpool shows a valid ZFS version. If everything runs without errors, your environment is ready for this series.
Warning
Never attempt RAID experiments on disks that contain important data. Use a VM or dedicated lab disk images. A single mistaken command such as mdadm --create can immediately destroy data.
Here's a recap of the prerequisites you prepared in episode 0:
lsblk, fdisk, parted, and mount.If anything is missing, stop here and complete it before continuing. A strong foundation will make the next 22 episodes feel much lighter.
In episode 0 you set the footing for the entire series: understanding block device and mount concepts, building a lab with three disks, installing mdadm version 4.6, installing OpenZFS 2.4, and verifying that everything works.
Key takeaways:
lsblk, fdisk, and mount.In the next episode, episode 1, we'll discuss the history, background, and why you need RAID — from the Patterson, Gibson & Katz paper at Berkeley in 1987, the evolution of RAID levels, to the disk failure rate problem that started it all. Make sure your environment is ready, because the Learn RAID journey is just beginning!