J'ai installé Ubuntu 20.10 sur une nouvelle machine avec l'option ZFS, i. e. tous les deux /boot
et le système de fichiers racine sont sur ZFS. Cependant, j'ai besoin de la nouvelle version du noyau 5.9 pour le support matériel, que j'ai installé à l'aide de la touche Mainline Kernel PPA . Malheureusement, la version de ZFS incluse dans Ubuntu 20.10 (V0.8.4) ne fonctionne pas avec les noyaux Linux V5.9 (la construction du module de noyau échoue).
Cela conduit à toute la situation: comment puis-je utiliser à la fois la nouvelle version du noyau et ZFS requises (bien sûr, y compris une fonctionnalité complète, telle que ZSYS)?
J'ai essayé construire et installer zfs à partir de la source . Cependant, le .deb
Forfaits créés lors de la construction de ZFS à partir de la source sont incompatibles avec les packages Ubunt , et donc tout ce qui dépend des paquets Ubuntu ( comme zsys! ) tombe victime des conflits de colis et doit être enlevé/ne peut pas être installé.
En raison de ces problèmes, j'ai remarqué que l'actuel Debian Bullseye (test) dispose de packages plus récents avec la version 0.8.5 de ZFS (compatible avec Linux V5.9) et le schéma d'emballage est compatible avec le un à Ubuntu. J'ai donc essayé de passer à la mise à niveau vers ces packages et de construire les modules de noyau de mon noyau de 5,9,8.8.8.8 Le noyau a effectivement réussi. Cependant, au démarrage, cela ne parvient pas à monter le système de fichiers ZFS (même avec le noyau normal 5.8 Ubuntu):
Command: mount -o zfsutil -t zfs rpool/ROOT/ubuntu_682y7z /root//
Message: filesystem 'rpool/ROOT/ubuntu_682y7z' can not be mounted: Permission denied
Alors, maintenant je suis coincé. Quelle est la manière la plus robuste d'exécuter un noyau principal qui nécessite également une mise à niveau des ZFS? J'ai envisagé de construire un noyau de 5,9 personnalisé avec un support ZFS intégré, mais la version ZFS de mon noyau n'est-elle pas en conflit avec les packages Ubuntu installés, qui utilisent une version plus ancienne de ZFS?
J'ai remarqué que, tandis que le version des packages ZFS dans la version de développement Ubuntu (Hirsute) est actuellement 0.8.4-1ubuntu13
, le Changelog montre ce qui suit:
Changelog
zfs-linux (0.8.4-1ubuntu13) hirsute; urgency=medium * Add Linux 5.9 compat fixes (LP: #1899826) - 4800-Linux-5.9-compat-add-linux-blkdev.h-include.patch include blkdev.h in various sources - 4801-Linux-5.9-compat-NR_SLAB_RECLAIMABLE.patch deprecate some older page free stats for arc free page calculation - 4802-Linux-5.9-compat-make_request_fn-replaced-with-submi.patch API change for block allocation - 4805-Increase-Supported-Linux-Kernel-to-5.9.patch allows driver to be built against 5.9 * Add Linux 5.10 compat fixes - 4710-Use-percpu_counter-for-obj_alloc-counter-of-Linux-ba.patch prerequisite for 4804-Linux-5.10-compat-frame.h-renamed-objtool.h.patch - 4720-Linux-5.7-compat-Include-linux-sched.h-in-spl-sys-mu.patch prerequisite for next set of patches - 4804-Linux-5.10-compat-frame.h-renamed-objtool.h.patch rename check of linux/frame.h to linux/frame.h - 4805-Linux-5.10-compat-percpu_ref-added-data-member.patch API check to the percpu_ref structure - 4806-Linux-5.10-compat-check_disk_change-removed.patch check_disk_change removed, functionality moved to zfs_check_media_change - 4807-Linux-5.10-compat-revalidate_disk_size-added.patch use revalidate_disk_size where necessary -- Colin Ian King <[email protected]> Tue, 3 Nov 2020 12:22:22 +0000
ce qui indique que les modifications requises pour la compatibilité avec les nouveaux noyaux Linux ont été déplacées vers ces packages. J'ai donc installé le zfs-dkms
Paquet des référentiels hirsute
, qui m'a donné un module de DKMS DKMS de travail avec mon noyau principal.