RSS Amplifier

Michael Gale's Blog · Jan 22, 2026

Setting up a RAID-5 array on Bazzite

0
Sign in to vote or save

michaelgale.dev

note

"Oh great, another guide written to the exclusive benefit of Michael".

I recently upgraded my NAS storage, and the process got me thinking about backups.

After completing the job, I realised I had four left-over disks from different projects, all conveniently 2TB Western Digital drives.

So I said heck-it and ordered a totally overkill 4-bay RAID-ready external HDD case1

Please say hello the newest friend piece my Homelab puzzle, Iron Knuckle.

A silver-gray hard-drive case on my desktop with four quick access bays. A super imposed character from Zelda is layered over the topSee also: Naming computers after Zelda characters

Gotta start somewhere

For my first attempt at formatting this new little friend, I was lured by the glow of a friendly GUI. I tried to do everything on macOS.

A cursory web search suggested that drives formatted with APFS on macOS should work fine on linux. So, I went ahead and set everything up using the built-in RAID Assistant (via Disk Utility) on my work machine.

RAID assistant window in macOS showing APFS RAID 0 8TB with 64K chunksI award you no points, and may god have mercy on your soul

Everything looked okay, but of course everything went weird on me as soon as I plugged it into my Bazzite machine.

I had to bite the bullet and set things up from the command line.

The process looks kinda difficult when you read other guides, but is kinda simple once you know what to look for. Thus, my "what to look for" below.

Step 1. List disks with lsblk, identify your targets.

Open terminal, and type lsblk

Provided there are no partitians, it should yield something like this:

bashlsblk

sdb           8:16   0  1.8T  0 disk
sdc           8:32   0  1.8T  0 disk
sdd           8:48   0  1.8T  0 disk
sde           8:64   0  1.8T  0 disk

Maybe the sequence of disks will end in different characters, e.g. if you have a different number of other disks on your system already.

Step 2. For each disk above, use fdisk to prepare.

Next add a partition to each disk and set the partitian type to "Linux RAID"

bashfdisk

sudo fdisk /dev/sdb

That will get you an interactive terminal thing

Use these menu options

txt

n - add new
    enter
    enter
    enter

t - change partitian type
    set to "43" Linux RAID

w - write the changes and exit

Repeat for the remaining disks

bashfdisk

sudo fdisk /dev/sdc
sudo fdisk /dev/sdd
sudo fdisk /dev/sde

Use m to get a cheat sheet for each command if you're ever unsure.

Step 3. List disks again with lsblk, identify disks were prepared

Type lsblk again, you should now see something like the following:

bashlsblk

sdb           8:16   0  1.8T  0 disk
└─sdb1        8:17   0  1.8T  0 part
sdc           8:32   0  1.8T  0 disk
└─sdc1        8:33   0  1.8T  0 part
sdd           8:48   0  1.8T  0 disk
└─sdd1        8:49   0  1.8T  0 part
sde           8:64   0  1.8T  0 disk
└─sde1        8:65   0  1.8T  0 part

Step 4. Create RAID-5 array using mdadm

Final step! A friend suggested trying RAID-5 over RAID-0, for the balance of redundancy and speed.

Raid tool calculation result: 4 disks, TB in size, RAID 5 partity yields 6TB of storage, 3x drive read speed, 1-drive failureResults via raid-calculator.com

I used an online calculator to confirm the details of the choice before committing.

Making the RAID-5 array!

Adjust the values to match your requirements.

bashmdadm

sudo mdadm --create /dev/md0/ --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

One last lsblk should yield something like the following

bashlsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                       8:0          0    1.8T  0  disk
└─sda1                    8:1          0    1.8T  0  part
  └─md127                 9:127        0    5.5T  0  raid5
sdb                       8:16         0    1.8T  0  disk
└─sdb1                    8:17         0    1.8T  0  part
  └─md127                 9:127        0    5.5T  0  raid5
sdc                       8:32         0    1.8T  0  disk
└─sdc1                    8:33         0    1.8T  0  part
  └─md127                 9:127        0    5.5T  0  raid5
sdd                       8:48         0    1.8T  0  disk
└─sdd1                    8:49         0    1.8T  0  part
  └─md127                 9:127        0    5.5T  0  raid5

Now just wait like 10 hours for the thing to finish synchronising. You can check the status live with watch -n 2 cat /proc/mdstat.

bashcat /proc/mdstat

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid5 sdd1[4] sdc1[2] sdb1[1] sda1[0]
      5860144128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=>...................]  recovery =  7.9% (154416380/1953381376) finish=618.4min speed=48483K/sec
      bitmap: 0/15 pages [0KB], 65536KB chunk

unused devices: <none>

"finish = 618.4min"? Ugh, this is gonna take forever.

What to do next?

Well, thats up to youuuu

I haven't got the "do the backups" part figured out yet...

✌️ MG

Footnotes

  1. No affiliation, no kick-back, not monetizing my hobby here. Just trying to be a good, transparent netizen and link to the actual thing.

Read the original on michaelgale.dev

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.