1. Disable Secure Boot. ZFS modules can not be loaded if Secure Boot is enabled.

  2. Download a variant of Fedora live image and boot from it.

  3. Connect to the Internet.

  4. Set root password or /root/.ssh/authorized_keys.

  5. Start SSH server:

    echo PermitRootLogin yes >> /etc/ssh/sshd_config
    systemctl restart sshd
  6. Connect from another computer:

    ssh root@
  7. Target disk

    List available disks with:

    ls /dev/disk/by-id/*

    If using virtio as disk bus, use /dev/disk/by-path/*.

    Declare disk array:

    DISK='/dev/disk/by-id/ata-FOO /dev/disk/by-id/nvme-BAR'

    For single disk installation, use:

  8. Set partition size:

    Set swap size. It’s recommended to setup a swap partition. If you intend to use hibernation, the minimum should be no less than RAM size. Skip if swap is not needed:


    Root pool size, use all remaining disk space if not set:

  9. Temporarily set SELinux to permissive in live environment:

    setenforce 0

    SELinux will be enabled on the installed system.

  10. Add ZFS repo:

    dnf install -y$(rpm --eval "%{dist}").noarch.rpm
  11. Check available repos:

    dnf repolist --all
  12. Install ZFS packages:

    rpm -e --nodeps zfs-fuse
    dnf install -y$(source /etc/os-release; echo $VERSION_ID)/Everything/x86_64/os/Packages/k/kernel-devel-$(uname -r).rpm
    dnf install -y zfs
  13. Load kernel modules:

    modprobe zfs
  14. Install partition tool:

    dnf install -y gdisk dosfstools