Skip to content

eoli3n/archiso-zfs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Important

18 Nov. 2024 Archzfs is not up to date for now. zfs-dkms is 2.2.4, and it only builds on LTS. Archiso is shipped with main kernel 6.11. You need to use a custom archiso built on LTS with ZFS included. See https://github.com/r-maerz/archlinux-lts-zfs

Why this

If you want to install Archlinux on ZFS, you need to deal with the ZFS licensing problem. The kernel module isn't included in the default archiso image, you need to include it into a custom archiso image to be able to install ZFS.

I wrote an article about archiso netbooting.
This script lets you include the zfs kernel module on any archiso image without creating a custom one.

Archzfs

The Archzfs unofficial user repository offers multiple ways to install the ZFS kernel module.
We can install precompiled module with zfs-linux package or compile the zfs module using DKMS method.
In order to build the module, DKMS needs the linux-headers package for the running kernel.

How does it work

It extracts running kernel version and try to find a matching ZFS module in Archzfs repositories. If it doesn't, it fallbacks to the DKMS build of the ZFS module. In that case, the script uses Arch Linux Archive to install the linux-headers and base-devel packages required for DKMS. You need at least ~6Gb RAM to use that method to be able to store packages in cowspace.

In some very specific cases, you won't be able to get ZFS module working for a specific archiso version.
In that case, just switch to the previous month iso.

How to use

Boot on any archiso system, and run:

$ curl -s https://raw.githubusercontent.com/eoli3n/archiso-zfs/master/init | bash

dkms-screenshot

Debug

By default, command outputs are redirected to /dev/null. To run the script in verbose mode, use:

$ curl -s https://raw.githubusercontent.com/eoli3n/archiso-zfs/master/init | bash -s -- -v

Running the script produces a debug.log file in the current directory. To upload this easily, you can

$ pacman -Syy pastebinit
$ pastebinit -b sprunge.us debug.log

And then paste me the url in your issue.

Dev

To easily generate a VM with the latest archiso, to test the script in, on your host with qemu/libvirt and vagrant installed : Use https://github.com/eoli3n/arch-config/tree/master/vagrant.

Related