VOLUMIO on PC with 2 HDD in RAID 1 mode

Hello everyone,

I have VOLUMIO installed on my PC. The case I use is Origenae s16t, the power supply is SilverStone 550W passive, the processor cooling is passive. Sound card Asus Xonar STX II, 2 HDDs of 4TB each.

I tried to put 2 HDDs in RAID 1 mode, but to no avail.

Is it possible, and if so, what is the procedure?

Thanks in advance.

Hello Zagor,

what do you expect to goal with that setup ?
Better Sound Quality ?

br
Josef

Hello Josef,

With RAID 1 mode, you don’t get better sound, but it serves to back up files. In the specific case, it is a database of music performers in FLAC format.

Previously, I used a PC with WIN 10 and an AIMP player in a SilverStone Grandia GD02-MT case with an integrated 4.3 inch touch screen. Also, the power supply was passive, as was the cooling of the processor. In this system I had 2 HDDs set up in RAID 1 mode.

When I bought the Origenae s16t PC case and installed the complete hardware with 2 HDDs of 4TB each, installed VOLUMIO on the 240GB SSD, I can’t set the 2 HDDs to be in RAID 1 mode.

I think you can install additional software to have 2 disks in raid, but I am pretty sure it will be lost after an OTA. Which makes the whole purpose of RAID redundant.
Keep in mind Volumio is a audioplayer, not a full pledged OS.

@nerd
Any comments on this?

Hello Wheaten,

I won’t lose my data, because I backed it up on a third external HDD. If I manage to get these two hdds into RAID 1 mode, I will restore the data to them.

I know that VOLUMIO is music streaming software, not a separate operating system. Some other similar programs have the option to set the disks in RAID 1 mode, but I chose VOLUMIO, because it has a GUI and can display an image on the integrated PC case and can be used with touch. :point_down:https://www.technic3d.com/news/images/News_Bilder_OrigenAE/OrigenAE_S16T_ATX_HTPC_-_7_Zoll_Touchscreen_TFT_-_silver.jpg

Hey @zagor,

Thanks for the detailed background and your care in designing a quiet, high-performance audio setup.

Volumio is indeed focused on audiophile music playback rather than general-purpose storage management. That said, what you’re aiming to do is possible, but falls under advanced configuration with caveats.


Volumio and Software RAID 1: Advanced Option

Volumio does not natively support RAID setup out of the box, but you can configure software RAID 1 using mdadm, provided you’re comfortable working at the shell level.

Here’s a high-level overview:

  1. Install mdadm:

    sudo apt update
    sudo apt install mdadm
    
  2. Create the RAID 1 array (assuming that your drives are /dev/sdb and /dev/sdc):

    sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]
    
  3. Format the array and apply an internal-use label:

    sudo mkfs.ext4 -L ihdd /dev/md0
    
  4. Volumio will automatically detect and mount drives labeled as:

    • issd
    • ihdd
    • Internal SSD
    • Internal HDD

    This logic is embedded in the platform’s network filesystem controller:

    var internalMemoryAllowedLabelsArray = ['issd', 'ihdd', 'Internal SSD', 'Internal HDD'];
    

    When your RAID volume carries one of those labels, Volumio will mount it as an internal music storage drive, allowing it to be scanned and indexed for your FLAC collection.


Warning: UNSUPORTED, At-Your-Own-Risk

This kind of setup is not officially supported by the Volumio development team.

  • It may break after OTA updates
  • It may interfere with system behavior
  • You’re fully responsible for maintenance, repair, and data safety

If something goes wrong - whether it’s your array degrading or your neighbor’s barbecue stops smelling right - no one in this forum or the Volumio team is responsible.

Proceed only if you are fully confident in your ability to recover from failure without support.


Alternative suggestion

If reliability across updates is more important than local RAID, consider:

  • Using a NAS or USB RAID enclosure
  • Mounting the shared volume via SMB/NFS to Volumio
  • Labeling the mount volume accordingly for Volumio to treat it as internal

Kind Regards,

I tried through the remote computer via SSH, because it’s more comfortable for me. However, Module md_mod not found in directory… Finally, see the attachment below:

:point_down:
volumio@volumio:~$ sudo apt update
[sudo] password for volumio:
Hit:1 Index of /debian buster InRelease
Hit:2 https://deb.nodesource.com/node_14.x buster InRelease
Reading package lists… Done
Building dependency tree
Reading state information… Done
All packages are up to date.

volumio@volumio:~$ sudo apt install mdadm
Reading package lists… Done
Building dependency tree
Reading state information… Done
mdadm is already the newest version (4.1-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

volumio@volumio:~$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]
mdadm: /dev/sdb appears to be part of a raid array:
level=raid1 devices=2 ctime=Tue Jun 10 00:26:08 2025
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
–metadata=0.90
mdadm: /dev/sdc appears to be part of a raid array:
level=raid1 devices=2 ctime=Tue Jun 10 00:26:08 2025
mdadm: size set to 3906886464K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? yes
modprobe: FATAL: Module md_mod not found in directory /lib/modules/6.6.32-volumio
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: unexpected failure opening /dev/md0

Hey @zagor,

You’re very close - mdadm is correctly installed and your RAID command syntax is fine.

However, the failure is due to a missing kernel module:

modprobe: FATAL: Module md_mod not found in directory /lib/modules/6.6.32-volumio
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array

This means the Volumio kernel was built without support for software RAID (no md_mod module compiled or loaded). Without that, mdadm cannot function, even if installed.


What are your options?

  1. Rebuild the Volumio kernel with RAID support
    This involves:

    • Extracting Volumio’s kernel source and defconfig
    • Enabling CONFIG_MD and related flags
    • Recompiling the kernel
    • Installing the new kernel and module tree

    This is non-trivial and completely unsupported unless you’re already building custom kernels for Volumio.

  2. Use external RAID instead

    • A USB RAID enclosure or external NAS will avoid this issue
    • These present a single logical disk to Volumio, no kernel support required
    • Easier to manage and update
  3. Accept single-disk setup with external backup

    • As you already have a third external backup drive, this might be the most reliable and least invasive solution

Reminder: Use of software RAID is unsupported

This setup is not supported by the Volumio team, and modifying kernel modules or building custom kernels is entirely at your own risk. If something breaks - including your FLAC library, your USB bus, or even your neighbor’s BBQ - no one here or on the dev team is responsible.

That said, if you’re determined to build a RAID-capable kernel for Volumio, I can help point you to the build system and defconfig sources.

Kind Regards,

Okay, guide me to the procedure. I’d try, whatever happens. :slight_smile:

Hey @zagor,

Well, you asked for it - your determination is commendable.

To enable software RAID 1 on your Volumio PC, you’ll build a custom kernel with md_mod and raid1 support. This is not officially supported, and it’s an advanced operation intended for users comfortable with Linux kernel internals.


First and most important: Read the Docs

Before you begin, study the README from the official Volumio x64 kernel build system here:

https://github.com/volumio/build-platform-x64

The README contains essential information about:

  • How the build process works
  • What each configuration file does
  • How patching and kernel options are handled
  • What changes are preserved vs temporary
  • And where artifacts are placed

Do not skip this. The script does not behave like generic kernel build systems - it is structured specifically for Volumio’s modular platform and firmware layout.


Steps overview

  • Clone the Volumio x86 platform builder
  • Adjust the kernel version and enable RAID config options
  • Run ./mkplatform.sh to build .deb packages
  • Install those on your Volumio PC

Step-by-Step summary

1. Clone the repo:

git clone https://github.com/volumio/build-platform-x64 --depth 1
cd build-platform-x64

2. Configure the kernel version and platform branch:

Edit config/config.x64:

KERNELBRANCH="6.6.y"
PLATFORMREPO_BRANCH="master"

Leave CONFIGURE_KERNEL set to no unless you intentionally want an ncurses menu session.


3. Modify the kernel config:

Edit:

config/amd64-volumio-min-6.6.y_defconfig

Add the following for RAID 1 support:

CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_AUTODETECT=y
CONFIG_MD_RAID1=m

This file must be edited manually - the build system will use it directly.


4. Build the kernel:

./mkplatform.sh

When prompted for patching, just press Enter unless you’re testing additional source modifications.

The resulting .deb packages will appear under:

out/x86_amd64/debian/

5. Transfer and install the kernel:

Copy the .deb files to your Volumio system and run:

sudo dpkg -i linux-headers-*.deb linux-image-*.deb
sudo reboot

After reboot, confirm the kernel version:

uname -r

Then load the module:

sudo modprobe md_mod

You should now be able to run your mdadm --create command without error.


CAUTION

This is a custom kernel. If something breaks - audio, boot, storage, or even your neighbor’s BBQ - you’re on your own. The Volumio team does not support this officially.

However, if you’re methodical and have backups (as you said), this is a great way to extend your system’s capabilities.

Let us know how the build and install goes.

Kind Regards,

1 Like

Hey @zagor,

If you’d prefer not to replace your entire kernel, there’s a more surgical option: copying only the required RAID kernel modules onto your existing Volumio system.

This approach avoids touching the bootloader, GRUB entries, or core kernel image - and focuses only on enabling mdadm to work.


Alternative method: Manually add RAID module

  1. After the build completes, locate the RAID modules in the output tree:

    work/kernel/linux-6.6.y/out/lib/modules/<exact-version>/kernel/drivers/md/
    
  2. Identify and copy these modules to your Volumio system:

    md_mod.ko
    raid1.ko
    (others as needed, depending on your RAID level)
    

    Target directory:

    /lib/modules/$(uname -r)/kernel/drivers/md/
    
  3. On the Volumio device:

    sudo depmod -a
    sudo modprobe md_mod
    

If all goes well, mdadm will now work and allow you to create your RAID 1 array without needing to install or boot into a new kernel.


Important!

  • This only works if the kernel version you build matches exactly the one running on your Volumio system (e.g., 6.6.32-volumio)
  • If the versions mismatch, the module will fail to load with an Exec format error
  • Still, this is much safer than installing new .deb packages if you want to minimize changes

As always, this method is entirely unsupported - proceed at your own risk, and no one here is responsible for any data loss, boot failure, or unexpected temperature drops at the South Pole.

Kind Regards,

2 Likes

This won’t work, kernel 6.6.y is already on version 6.6.93. When you start the kernel build, it will checkout that version, while the current Volumio kernel is still on release (6.6.32). You will not be able to use the new modules.

Edit: even when you would manually checkout 6.6.32 (which is possible), you would have an issue with each new Volumio release as kernel versions can change anytime. Even more often for the upcoming version 4.0 as kernel maintenance will have a higher priority to keep the kernel and firmware fit for newer hardware.

2 Likes

Hey @gkkpch,

You’re absolutely right - if left untouched, the build system will track the latest commit in the 6.6.y branch, which is currently 6.6.93. That indeed breaks compatibility with Volumio’s current kernel (6.6.32-volumio), and loading modules from a newer build will fail.


Pin to 6.6.32 exactly

However, it is possible to pin the kernel repo to a specific minor version, such as v6.6.32, by modifying scripts/functions.sh or manually checking out the right commit/tag after cloning:

In scripts/functions.sh, this block:

git clone ${KERNELREPO} ${KERNELDIR} -b linux-${KERNELBRANCH}

Can be replaced or overridden with something like:

git clone ${KERNELREPO} ${KERNELDIR}
cd ${KERNELDIR}
git checkout v6.6.32

This ensures the build produces modules compatible with the currently installed kernel - for example, if we only want to extract md_mod.ko and raid1.ko.


Agreed: Long-Term stability is fragile

Totally with you on this - the moment Volumio updates its kernel, any modules built against 6.6.32 will go invalid. So yes, this is a fragile workaround, not a sustainable solution.

Still, for users like @zagor wanting RAID support on their current setup without touching the bootloader, manually matching minor versions can offer a temporary, low-impact path.

Just with the usual disclaimer: unsupported, experimental, and we’re not responsible if the South Pole freezes over.

Kind Regards,

1 Like

@nerd agree, but in the end @zagor would have a much less reliable setup then without using raid. Personally, I would not even think of it. The current Volumio x86 version is so stable, we had never had any reports of disks failing since x86 was introduced (2015/2016) using overlaysfs, except when the (sometimes old) hw breaks down with the discs usally still intact.

1 Like

@gkkpch @nerd

If I were to use the “Alternative method: Manually add RAID module”, would there be problems if a new version of Volumio comes out?

Hey @zagor,

Great question - and you’re thinking ahead, which is the right approach.

If you go with the “Alternative method: Manually add RAID modules”, then yes - this solution only lasts as long as the current kernel version remains unchanged.

Here’s what will break it:

What can invalidate manually installed RAID modules

  • OTA Update: Volumio may update the kernel (e.g., from 6.6.32 to 6.6.34). Your custom-built modules will stop working immediately due to kernel ABI mismatch (Exec format error).

  • Factory Reset: Restores the original system image - your copied modules will be wiped, and mdadm will break again unless reinstalled and re-copied.

  • Volumio v4 Migration: Will introduce a different kernel series (likely 6.12.x or newer), requiring a new module build from matching sources.

Bottom line

This method is a short-term workaround, useful for testing or niche setups. But it won’t survive long-term use unless you’re prepared to:

  • Track and match kernel versions exactly
  • Rebuild and reinstall modules after every update or reset
  • Avoid OTA updates, or at least delay them until you’ve rebuilt modules

Thoughts

As @gkkpch rightly pointed out, Volumio x86 with overlayfs has proven exceptionally stable for nearly a decade. Unless you’re using very old or failing disks, a manual RAID setup may introduce more risk than protection - especially if you already have offline backups, which you do.

If you decide to test it anyway, we’ll help where we can - just remember, the second a Volumio update lands, your RAID modules are toast.

Kind Regards,

1 Like

Yes, that problem you will have with both methods, the first one is even worse because you might end up with an undefined grub boot configuration after using “dpkg -i”. Remember as @nerd stated a few times, this is totally unsupported stuff and never tried by any of us either. So, compiling the kernel is one thing, but feeding the changes into a live Volumio setup remains risky, untested and unsupported.

1 Like

@gkkpch @nerd

As a music player, and partially a “streamer”, I used Windows 10 and the AIMP player for years on a PC housed in a SilverStone Grandia GD02-MT case. The configuration included an Asus Xonar STX II sound card, a 550W passive SilverStone power supply, 8GB of DDR4 RAM, and an Intel i3 processor with a passive ARCTIC Alpine Passive cooler.

The monitor was a 21-inch touchscreen (ProLite T2252MSC-B1), and I used a Samsung TAB 4 tablet with the MonkeyMote app as a remote control for AIMP.

The PC case also had a built-in 4.3-inch touchscreen display that showed a VU meter, PIC meter, or the album art of the currently playing track. The system was fully dedicated to music – the only installed software was AIMP, which launched automatically at system startup.

Additionally, I used a classic remote control that could turn the system on and off, start or pause playback, switch albums, etc. The remote also featured a mouse pointer function, allowing AIMP to be controlled as if with a mouse.

Data was stored on two 4TB hard drives in RAID 1 mode. The entire setup was fully automated.

Recently, I acquired a new case – the Origenae S16T – and transferred the existing hardware. In addition to the case change, I plan to switch from AIMP to Volumio.

However, it turned out that Volumio does not support RAID 1, which is unfortunate. Although instructions exist on how to make Volumio work with a RAID 1 setup, it is clear that this is not a long-term or stable solution – and stability and reliability are of utmost importance to me.

Still, I believe there may be a viable workaround. I successfully installed Volumio and connected one of the 4TB drives. Now, I’m considering using the available PCIe slot to install a PCI-Express RAID controller with two SATA III ports. This would allow me to connect both 4TB drives in RAID 1 mode, with Volumio recognizing them as a single logical drive.

My question is: is such a solution technically feasible and practically functional?