
Ich verwende seit einem halben Jahr ein Debian-Derivat (LMDE) auf einem ZFS-Root. Es wurde erstellt, indem ich eine normale ext4-basierte Installation mit allen erforderlichen Paketen auf einen ZFS-Pool geklont, in diesen Pool chrootet und ein Grub-Menü und einen Bootloader neu erstellt habe. Das System verwendet eine dedizierte /boot-Partition für ext-3.
Ich würde das Gleiche gerne mit Ubuntu 14.04 machen, bin aber auf mehrere Hindernisse gestoßen.
- Es gibt kein vertrauenswürdiges zfs-grub-Paket
- Das Standard-Grub-Paket hat keine integrierte ZFS-Unterstützung. Ich habe einen kleinen Fehler im Build-System gefunden, der dafür verantwortlich ist (Bericht mit erstelltem Patch) und meine eigenen Grub-Pakete erstellt.
- Die integrierte ZFS-Unterstützung ist dysfunktional, sie fügt der Kernel-Befehlszeile nicht die richtigen Argumente hinzu
- Ich habe daher das ZoL Grub-Paket installiert, das ich auch auf meinem LMDE-System verwende, was mir eine korrekte grub.cfg gibt
Doch selbst mit der richtigen grub.cfg holt sich der Bootvorgang den Bootfs-Parameter offenbar nicht aus dem ZFS-Pool; stattdessen bleibt die Variable, die den Wert erhalten soll, leer. Daraufhin versucht initrd, den Standardpool („rpool“) zu laden, was natürlich fehlschlägt. Ich kann den Pool jedoch manuell importieren und den Vorgang manuell abschließen.
Wenn ich mich recht erinnere, musste ich auch Apparmor deaktivieren, um zu verhindern, dass der Bootvorgang blockiert wirdnachImportieren des Pools.
Übersehe ich etwas? Nur zum Vergleich: Ich habe den Ubuntu 3.13-Kernel auf meinem LMDE-System installiert, und das funktioniert einwandfrei (d. h. der identische Kernel und die Grub-Binärdateien ermöglichen ein erfolgreiches Booten ohne Störungen auf LMDE, aber nicht auf Ubuntu).
Bearbeiten: Grub-Fehlerberichte:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1321335?comments=all
Antwort1
Diese Anweisungen sind ziemlich ausführlich:
https://github.com/zfsonlinux/pkg-zfs/wiki/HOWTO-install-Ubuntu-to-a-Native-ZFS-Root-Filesystem