Home

Jan Houben edited this page Aug 28, 2017 · 19 revisions
Clone this wiki locally

Welcome to the archzfs wiki!

Report an issue

To report an issue with OpenZFS integration into Arch Linux, visit the reporting page!

The archzfs repository

This repository is not endorsed by the Arch Developers and is referred to as an "unofficial" repository for Arch Linux.

Included package groups

The archzfs repository includes the following package groups that target a particular kernel.

You can install multiple of these groups side by side, but you can't mix git and non git versions.

  • archzfs-linux

    The default kernel for Arch Linux and latest stable OpenZFS. Use this if you are concerned about ZFS stability.

    WARNING

    While this is the best option for most people, occasionally the OpenZFS project gets behind on stable support for the latest Linux Kernel release. This means that if Linux 4.15 is released to core, but the latest stable release of OpenZFS does not support Linux 4.15, it is not possible to perform a system update. Sometimes it can take a few days, a few weeks, or a month to release a new stable version of OpenZFS.

    Some users just wait for a new stable OpenZFS version. It is possible to tell pacman to ignore updates to the linux package in /etc/pacman.conf and keep the system up-to-date, minus the kernel. Other users don't like having a system that is not completely up-to-date. The archzfs project has packages for users of all types!

  • archzfs-linux-git

    The for Arch Linux with OpenZFS being built from the latest git commit for ZFS and SPL. Use this if feature is required from OpenZFS that is not included in the latest stable release of OpenZFS, or if the current stable OpenZFS version does not support the Linux version that is in core.

    WARNING

    The packages with "git" in the names in the archzfs repo build from the master branches of the ZFS and SPL repositories of the OpenZFS project. This does result in some risk that a system may become unstable due to unknown bugs. However, every commit that makes it into the master branch in these projects has been regression tested, so there is some comfort in knowing that. In the future, the archzfs project will run the same tests that the OpenZFS project uses after packages are built for reduced risk.

  • archzfs-linux-lts and archzfs-linux-lts-git

    Support for the lts Linux Kernel packages.

  • archzfs-linux-hardened and archzfs-linux-hardened-git

    Support for the linux-hardened kernel.

  • archzfs-linux-zen and archzfs-linux-zen-git

    Support for the linux-zen kernel packages in extra. See https://github.com/zen-kernel/zen-kernel/issues/30 for provide features of the linux-zen kernel.

  • archzfs-dkms and archzfs-dkms-git

    PENDING

    These packages support all kernels, but need to be automatically rebuilt on every kernel update on the users machine. This can increase the time it takes to update a system. Use this package if switching kernels often.

Using the archzfs repository

Add the following to the end of /etc/pacman.conf:

[archzfs]
Server = http://archzfs.com/$repo/$arch

Both the database and the packages are signed, so you will have to add the key to pacman's trusted key list.

# pacman-key -r 5E1ABF240EE7A126
# pacman-key --lsign-key 5E1ABF240EE7A126

Then update your pacman database.

# pacman -Syy

You can now install zfs.

Building archzfs

Prerequisites

  1. Create a ssh-key for the aur (https://wiki.archlinux.org/index.php/Arch_User_Repository#Authentication)
  2. install clean-chroot-manageraur and pkgbuild-introspection
  3. Edit ~/.config/clean-chroot-manager.conf and set CHROOTPATH64 to a valid path (run ccm64 to generate a basic config file)
  4. Clone this repository
$ git clone --recursive https://github.com/archzfs/archzfs.git
$ cd archzfs
  1. Edit config.sh and update at least makepkg_nonpriv_user

Building

To build any of the available zfs packages, you have to build the common packages first.

# ./build.sh common update
# ./build.sh common make
# ./build.sh common-git update
# ./build.sh common-git make

You can now build modules for one of the available kernels

# ./build.sh std update
# ./build.sh std make

Available kernel configs:

  • std: default linux kernel
  • lts: linux-lts
  • hardened: linux-hardened
  • zen: linux-zen
  • dkms: dkms packages

If everything worked, the build packages are now in packages/<kernel>

Contribute to the project

TBD

Using the test scripts

TBD