Kurz zur Erklärung weshalb ich mich trotz aller Hürden gerade für diese Kombination entschieden habe:
Es werden mindestens zwei Partitionen benötigt:
Die boot-Partition kann nicht verschlüsselt werden, weil gängige Bootloader noch keine Verschlüsselung beherrschen und der Bootloader somit den Kernel und das initramfs von einer unverschlüsselten Partition laden müssen. Zur Grösse der Bootpartition siehe auch Partitionierung für Arch Linux.
Die folgenden Schritte führen zu einem verschlüsseltem root-filesystem mit btrfs. Das Ganze scheint immer noch experimentell zu sein, beim booten gibt's ein paar Fehlermeldungen im Zusammenhang mit dem initramfs (ohne Gewähr)
Der Name des Haupt-Subvolumes ist so gewählt, damit das "schnapps" Script (zum Erstellen von Schnappschüssen des btrfs) vom Turris Omnia ohne grosse Änderungen läuft ;-)
Um die Installation zu beschleunigen, kann man jetzt ggf. einen lokalen Mirror konfigurieren:
Um das btrfs voll auszunutzen (inkl. Snapshots und Rollbacks vor dem booten), braucht man die besserte" Version der mkinicpio tools mkinitcpio-btrfs, die erst aus dem AUR gebaut werden muss (siehe auch unten)
Aus dem chroot heraus klappt das aber nicht, weil makepkg sich weigert als root
zu laufen. Wenn man einen User anlegt, klappt es nicht weil der keinen Zugriff
auf ein freies tty erhält, oder so.
Egal, das System bootet auch ohne die verbesserte Version einwandfrei und man
kann diese nachträglich installieren wenn das System eingerichtet ist.
Solange muss man eben auf snapshots/rollbacks des btrfs verzichten.
TODO: pacman -S btrfs-progs
Nun muss in der Konfigurationsdatei für mkinitcpio noch der encrypt-hook (VOR dem filesystems hook) gesetzt werden:
Zu diesem Zeitpunkt erstellen wir die initrd also ohne BTRFS support mit:
Falls es sich um ein headless/embedded System handelt, bitte auch einen Blick auf die Anleitung remote unlock werfen.
Ab hier verläuft die Installation "normal" weiter, es wäre nun
die Installation des Bootloaders an der Reihe.
Als Bootloader kann GRUB oder
SYSLINUX verwendet werden.
Für das btrfs braucht man eine "verbesserte" Version der mkinicpio tools mkinitcpio-btrfs aus dem AUR. Wie man solche Pakete erstellt und installiert, habe ich hier beschrieben.
Dann die /etc/mkinitcpio.conf editieren (HOOKS encrypt btrfs_advanced shutdown) hinzufügen.
Zudem muss BTRFS_ROLLBACK_KERNEL=false in der Datei /etc/default/btrfs_advanced gesetzt werden.
Abschliessend die initrd mit neu erzeugen:
Die Swap Partition sollte ebenfalls noch verschlüsselt werden. Hierzu bedarf ein eines entsprechenden Eintrags in /etc/crypttab und einer kleinen Änderung in /etc/fstab:
Falls das automatische Aktivieren der Swappartition so fehlschlägt (also systemd in den Logs das behauptet), einfach mal prüfen, ob auf der Swappartition noch der Header des alten unverschlüsselten swap ist. Wenn ja, diesen löschen, danach sollte es klappen.