Skip to main content

Introduction

By default, EVE-OS selects installation and persistence disks automatically. You can override these defaults by customizing the grub.cfg file before running the EVE-OS installer. This lets you explicitly assign the disk for the EVE-OS installation (eve_install_disk) and the disk (or disks) for the persistent application storage volume (eve_persist_disk). It also lets you configure ZFS RAID levels for fault-tolerant or high-capacity persistence storage. All procedures require access to the CONFIG partition of the EVE-OS installer USB drive to edit grub.cfg. Edit the file at the root of the CONFIG partition (named EVE), alongside the server and grub.cfg.tmpl files. Do not edit EFI/BOOT/grub.cfg — changes there do not persist after reboot. If you are building a custom installer ISO instead of writing to a USB drive, you must place your grub.cfg in a local overrides directory and mount that directory when running the build command. If you run the build without mounting the overrides directory, EVE-OS uses default values and your disk and storage configurations will not take effect.
To run zpool commands for verification, access the pillar container using:

Separate Installation and Persistence Disks

This configuration installs EVE-OS on one disk and dedicates a separate disk entirely to the /persist volume. No ZFS is used.

Prerequisites

  • A minimum of 2 distinct physical storage devices.
  • The kernel device names for your target disks (for example, nvme0n1, sda).

Scenario

This example uses the following two-disk setup:
  • /dev/nvme0n1 — EVE-OS installation disk.
  • /dev/sda — persistence disk.

Modify grub.cfg

Open grub.cfg from the CONFIG partition (labeled EVE) of your installer USB drive — the same partition that contains the server and grub.cfg.tmpl files. Add the following dom0_extra_args line:
The non-commented content of the modified file should resemble the following structure. You can verify this by running cat grub.cfg | grep -v ^# on the file:
Save the file and boot the node from the USB drive. The installer applies the disk assignments automatically.

Verify

After installation and reboot, confirm disk assignments using the following commands. Check disk partitions with lsblk:
The persistence partition (sda1) is on /dev/sda and mounted to /persist. EVE-OS partitions are exclusively on /dev/nvme0n1. Check the kernel command line to confirm the disk arguments were applied:
The output should contain eve_install_disk=nvme0n1 and eve_persist_disk=sda. Check mounted filesystems:

ZFS with Integrated Persistence — RAID-0 (Stripe)

This configuration installs EVE-OS on a specified disk and creates a ZFS persistence pool (RAID-0/stripe) that spans multiple disks, including free space from the installation disk.

Prerequisites

  • Minimum 1 disk. No maximum (limited by hardware).

Scenario

This example uses three disks: sda, sdb, and sdc.
  • EVE-OS installs on /dev/sda.
  • The persistence pool spans free space from /dev/sda, /dev/sdb, and /dev/sdc.

Modify grub.cfg

Open grub.cfg from the CONFIG partition (labeled EVE) of your installer USB drive. Add the appropriate dom0_extra_args line for your disk count. Multi-disk setup (sda, sdb, sdc):
Single-disk setup (sda only):
The eve_persist_disk parameter is not required when using a single disk. Full grub.cfg example (multi-disk):

Verify

After installation and reboot, verify the ZFS pool and filesystem layout. Check the ZFS pool status. The persist pool should show all three disk partitions online:
Check that EVE-OS is installed on sda (not ZFS):

ZFS with RAID-1 (Mirror) Persistence

This configuration installs EVE-OS on one disk and creates a RAID-1 mirrored ZFS persistence pool across two separate disks for fault tolerance.

Prerequisites

  • Minimum 3 disks (1 for EVE-OS, 2 for the mirror pool).

Scenario

This example uses three disks: sda, sdb, and sdc.
  • EVE-OS installs on /dev/sda.
  • The /persist volume is a RAID-1 mirror across /dev/sdb and /dev/sdc.

Modify grub.cfg

Open grub.cfg from the CONFIG partition (labeled EVE) of your installer USB drive. Add the following dom0_extra_args line:
Full grub.cfg example:

Verify

Check the ZFS pool status. The output should show mirror-0 ONLINE with both disks attached:
Check the kernel command line to confirm the arguments:
The output should contain eve_install_zfs_with_raid_level=raid1, eve_install_disk=sda, and eve_persist_disk=sdb,sdc.

ZFS with RAID-Z1 (RAID-5) Persistence

This configuration creates a fault-tolerant RAID-Z1 ZFS persistence pool across three dedicated disks, tolerating one disk failure.

Prerequisites

  • Minimum 4 disks (1 for EVE-OS installation, 3 for the RAID-Z1 pool).

Scenario

This example uses four disks: sda, sdb, sdc, and sdd.
  • EVE-OS installs on /dev/sda.
  • The /persist volume is a RAID-Z1 pool across /dev/sdb, /dev/sdc, and /dev/sdd.

Modify grub.cfg

Open grub.cfg from the CONFIG partition (labeled EVE) of your installer USB drive. Add the following dom0_extra_args line:
Full grub.cfg example:

Verify

Check the ZFS pool status. The output should show raidz1-0 ONLINE with three disks attached:
Check the kernel command line to confirm the arguments:
The output should contain eve_install_zfs_with_raid_level=raid5, eve_install_disk=sda, and eve_persist_disk=sdb,sdc,sdd. Check that EVE-OS itself is not running under ZFS:

ZFS with RAID-Z2 (RAID-6) Persistence

This configuration creates a highly resilient RAID-Z2 ZFS persistence pool across four dedicated disks, tolerating two simultaneous disk failures.

Prerequisites

  • Minimum 5 disks (1 for EVE-OS installation, 4 for the RAID-Z2 pool).

Scenario

This example uses five disks: sda, sdb, sdc, sdd, and sde.
  • EVE-OS installs on /dev/sda.
  • The /persist volume is a RAID-Z2 pool across /dev/sdb, /dev/sdc, /dev/sdd, and /dev/sde.

Modify grub.cfg

Open grub.cfg from the CONFIG partition (labeled EVE) of your installer USB drive. Add the following dom0_extra_args line:
Full grub.cfg example:

Verify

Check the ZFS pool status. The output should show raidz2-0 ONLINE with four disks attached:
Check the kernel command line to confirm the arguments:
The output should contain eve_install_zfs_with_raid_level=raid6, eve_install_disk=sda, and eve_persist_disk=sdb,sdc,sdd,sde. Check that EVE-OS is installed on sda and is not part of the ZFS pool:

Next Steps

Get EVE-OS

Build an EVE-OS image with a custom grub.cfg.

Install EVE-OS onto an Edge Device

Complete the installation procedure.

Expand ZFS Pools on Nodes

Add capacity to an existing ZFS pool after installation.