- Shell 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Kernel und OpenZFS / build (push) Successful in 17m52s
wireguard-tools empfiehlt wireguard-modules, das in Debian nur die Kernel-Metapakete bereitstellen. Weil bashclub-zfs-kernel das nicht tat, installierte apt mit wireguard-tools (z. B. über freehold-host) den RT-Kernel linux-image-rt-amd64 ohne ZFS-Modul. ZFSBootMenu startete den als höchsten Kernel, der Probe-Boot fiel zurück (gefunden im Freehold-E2E S1 auf bashclub OS). Die Provides kommen beim Build aus Debians linux-image-amd64 derselben Version (wireguard-modules, linux-image-generic, linux-latest-modules-<abi>, virtualbox-guest-modules) und bleiben so aktuell. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| .forgejo/workflows | ||
| test | ||
| versions | ||
| .gitignore | ||
| build-in-container.sh | ||
| build.sh | ||
| keys.sh | ||
| LICENSE | ||
| README.md | ||
bashclub-zfs-kernel
Debian-Kernel mit dazu gebauten, für Secure Boot signierten OpenZFS-Modulen, für Debian 13 (trixie). Teil der bashclub-Basis für „bashclub OS“ (bashclub-os, ZFSBootMenu aus bashclub-zfsbootmenu); genutzt u. a. von Freehold Office.
Warum
Debian liefert ZFS als DKMS-Quellen: Die Module entstehen erst auf dem Server, nach jedem Kernel-Update. Scheitert der Bau oder passt die ZFS-Version nicht zum neuen Kernel, startet ein Root-auf-ZFS-System nicht mehr. Unter Secure Boot muss zudem jedes lokal gebaute Modul mit einem lokal eingeschriebenen Schlüssel signiert werden.
Dieses Paket dreht das um:
- Die Module werden vorab für genau einen Kernel-ABI gebaut, signiert und auf einer VM getestet (Boot, Pool, verschlüsselter raw send/recv).
- Das Metapaket
bashclub-zfs-kernelersetztlinux-image-amd64. Es hängt am Kernel-ABI und an genau diesen Modulen. Ein Kernel mit neuem ABI kommt erst auf die Server, wenn bashclub die Module dafür gebaut und getestet hat. Sicherheitsupdates mit gleichem ABI laufen durch, denn die Module passen weiter. - Userland aus demselben OpenZFS-Tag (
openzfs-zfsutils,-zfs-zed,-zfs-initramfs, Bibliotheken). Die Pakete verdrängen Debianszfsutils-linuxundzfs-dkms.
Bauen
Mit Podman, in einem Container debian:<suite>. Der Bau-Rechner braucht nur Podman; neue Debian-Versionen wie forky brauchen nur eine andere Suite und deren Kernel-ABI:
keys.sh /root/keys # NUR TEST: Signierschlüssel erzeugen
build.sh trixie 2.4.4 6.12.113+deb13-amd64 /root/keys /root/out
build-in-container.sh installiert die Build-Abhängigkeiten aus OpenZFS' eigener contrib/debian/control (mk-build-deps) und baut dann.
- Der Tarball wird gegen
versions/zfs-<version>.sha256geprüft (Wert aus der veröffentlichtenzfs-<version>.sha256.asc). - Grundlage ist der Paketbau von OpenZFS selbst (
make native-deb-utils,make native-deb-kmod KVERS=…). Die Module signiertbuild.shdanach mitsign-fileauslinux-kbuildpassend zum Kernel. - Versionen tragen die Debian-Hauptversion, damit Pakete mehrerer Suiten im selben apt-Repo nicht kollidieren: OpenZFS
2.4.4-1+deb13, Metapaket<Kernel-Paketversion>+zfs<OpenZFS-Version>+deb13, z. B.6.12.113-1+zfs2.4.4+deb13.
Testen
test/vm.sh /root/out 2.4.4 6.12.113+deb13-amd64 # auf dem Proxmox-Host der Sandbox
Frische VM aus der Vorlage von freehold-vm (Debian 13 mit Debians zfs-dkms). Geprüft werden:
- Installation verdrängt
linux-image-amd64und Debians ZFS;apt full-upgradewill keinen anderen Kernel. - Nach dem Neustart: richtiger Kernel, Modul und Userland in der gebauten Version, Modul mit dem bashclub-Schlüssel signiert.
- Pool anlegen, exportieren, importieren; verschlüsselter raw send/recv voll und inkrementell, Prüfsummen gleich, Scrub ohne Fehler.
Secure Boot (Modul lädt nur mit eingeschriebenem Schlüssel) prüft der Test von bashclub-zfsbootmenu.
Stand 2026-10-23 ✅: OpenZFS 2.4.4 für Kernel 6.12.113+deb13-amd64, im Container gebaut (4 vCPU: 7,5 min), alle Prüfungen von test/vm.sh grün (Sandbox, Proxmox).
Offen
- Upstream-Beitrag OpenZFS:
contrib/debian/controlbraucht unter Debian 13 zusätzlichdh-dkmsals Build-Abhängigkeit (das Addon liegt nicht mehr indkms). - CI auf Forgejo-Runnern: neuer Debian-Kernel → Bau → VM-Test → Freigabe im apt-Repo; arm64.
- Echte Signierschlüssel und ihre Verwahrung (bis dahin nur Testschlüssel).
- Rechtliche Bewertung vor der ersten öffentlichen Veröffentlichung: Auslieferung vorgebauter CDDL-Module zum GPL-2-Kernel (Debian liefert nur DKMS-Quellen, Ubuntu vorgebaute Module).
Lizenz
Quellcode zu jedem veröffentlichten Paket (eigene Skripte, Upstream-Tarballs, alle enthaltenen Debian-Pakete) liegt am selben Ort unter https://repo.bashclub.org/sources/, Manifest je Paket unter manifests/deb/<paket>_<version>.sources (bashclub-ci ci/sources.py, ADR 0020).
Eigene Skripte: GPL-3.0-or-later (LICENSE). OpenZFS: CDDL-1.0.