6 votes

ZFS ne me permet pas de suivre les noyaux avec des mises à jour

J'ai installé ubuntu 20.04 au mois de juin.

Je suis maintenant passé à ubuntu 20.04.1 LTS.

il y a eu quelques mises à jour du noyau. à chaque fois que je lance les mises à jour, Zsys essaie de mettre la nouvelle version du noyau comme première option.

Et je n'aimerais rien d'autre que d'utiliser les nouveaux noyaux.

mais ils ne démarrent pas.

Quand je dis qu'il ne démarre pas, je veux dire qu'une sorte de gel se produit pendant le processus de démarrage. Je ne peux pas accéder à la ligne de commande TTY/boot et je n'obtiens aucun message d'erreur (peut-être que je n'appuie pas sur la bonne touche).

J'ai juste le logo de ma carte mère et c'est tout.

le logo ubuntu et le spinner ne s'affichent pas et cela pourrait rester comme ça indéfiniment si je ne fais rien.

Heureusement, j'ai toujours mon ancienne entrée Grub et avec Grub customizer je l'ai gardé en haut de la liste.

mais je veux résoudre ce problème maintenant avant qu'ubuntu ne décide que j'ai accumulé un vieux noyau pendant trop longtemps.

Y a-t-il quelque chose de particulier que je suis censé faire pour démarrer un nouveau noyau avec ZFS ?

Je suppose que cela n'a rien à voir avec la version spécifique du noyau et plus à voir avec le fait que ZFS est un bloc qui n'est pas encore intimement lié au reste du système d'exploitation. Et alors qu'Ubuntu est capable de mettre à jour automatiquement les références du noyau partout ailleurs, il ne met pas encore automatiquement à jour une variable dans ZFS qui pointe vers la version du noyau, ou quelque chose comme ça ?

Je ne sais pas.

Quoi qu'il en soit :

t@tsu:~$ dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+'
ii  linux-image-5.4.0-40-generic                                5.4.0-40.44                                                 amd64        Signed kernel image generic
ii  linux-image-5.4.0-45-generic                                5.4.0-45.49                                                 amd64        Signed kernel image generic
ii  linux-image-5.4.0-47-generic                                5.4.0-47.51                                                 amd64        Signed kernel image generic

5.4.0-40 et c'est celui avec lequel mon ubuntu 20.04 a été installé.

5.4.0-45 ne démarre pas et a été installé par les mises à jour et non par moi.

5.4.0-47 ne démarre pas et a été installé par les mises à jour et non par moi.

Idéalement, j'aimerais démarrer la version 5.4.0-47.

EDIT :

Lors de l'installation du noyau, j'obtiens une erreur :

Setting up linux-modules-5.4.48-050448-generic (5.4.48-050448.202006220832) ...
Setting up linux-image-unsigned-5.4.48-050448-generic (5.4.48-050448.202006220832) ...
I: /boot/vmlinuz.old is now a symlink to vmlinuz-5.4.0-47-generic
I: /boot/initrd.img.old is now a symlink to initrd.img-5.4.0-47-generic
I: /boot/vmlinuz is now a symlink to vmlinuz-5.4.48-050448-generic
I: /boot/initrd.img is now a symlink to initrd.img-5.4.48-050448-generic
Processing triggers for linux-image-unsigned-5.4.48-050448-generic (5.4.48-050448.202006220832) ...
/etc/kernel/postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.4.48-050448-generic
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.4.48-050448-generic
I: The initramfs will attempt to resume from /dev/sda2
I: (UUID=53c19176-f03e-4c40-a6ed-3a2627160647)
I: Set the RESUME variable to override this.
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...

et une tonne de ceux-ci :

Warning: Couldn't find any valid initrd for dataset rpool/ROOT/ubuntu_38tazy@autozsys_7lfyl1.

et voici update-Grub :

(n'a pas l'air optimal)

https://pastebin.com/8y6x36u4

0voto

Carles Mateo Points 1282

En regardant vos journaux, je me demandais si Ubuntu a pu générer les fichiers de démarrage correctement, et je me demandais si vous aviez suffisamment d'espace dans /boot. Est-ce que /boot est une partition ou un répertoire sous le fs racine ?. De nombreuses installations Ubuntu par défaut avaient de petites partitions /boot qui se sont remplies et ont créé des problèmes. Utilisez-vous le cryptage ?

Une autre idée est que ces noyaux qui échouent sont tentés d'être installés par les mises à jour ; pouvez-vous installer un de ces noyaux manuellement avec apt install ?.

Cheers

0voto

tatsu Points 2675

OK, j'ai trouvé ce que c'était. Cela n'a rien à voir avec la version du noyau, finalement...

Comme d'habitude... Windows déclare une guerre totale à tout ce qui est linux.

C'est tellement bas de leur part.

En tout cas. N'importe quel Windows, même installé sur un ordinateur séparé, tant que vous branchez le disque dur sur la même carte mère que votre OS linux, tentera d'assassiner Grub d'une manière ou d'une autre.

Et la dernière nouveauté de ces attaques consiste à ne pas toucher à Grub, mais à cibler les entrées de démarrage et à les rendre impossibles à démarrer.

J'associais cela aux noyaux puisque les entrées Grub sont nommées avec la version du noyau et seules les entrées Grub avant le démarrage de Windows sont restées intactes.

Peut-être sont-elles indétectables par Windows, peut-être est-ce dû au fait que ZFS se restaure simplement dans cet état lorsque vous le choisissez, rendant les attaques sans conséquence.

Donc,

Avec mes précédents démêlés avec cette question : Windows supprimant la partition Grub à chaque fois que Windows était démarré et mis à jour ; ma solution était de démarrer avec une clé usb Ubuntu live et d'exécuter boot repair qui recréerait la partition de démarrage avec un Grub fonctionnel.

Avec ZFS, la réparation de démarrage est incapable de créer une entrée de démarrage fonctionnelle pour votre partition ZFS.

Donc la meilleure solution est préemptive, c'est d'utiliser Grub-customizer avant que vous n'ayez jamais une partition Windows n'importe où près de votre linux et de créer des sauvegardes dupliquées de votre entrée de démarrage préférée de sorte que quand il est corrompu un jour vous pouvez utiliser un duplicata, supprimer le corrompu, un et faire de nouveaux duplicata.

Il y a cependant un dernier problème. Windows, d'une manière ou d'une autre, apporte ses modifications (je suppose, en utilisant le BIOS contre ubuntu) à toute entrée nouvellement créée.

Cela signifie que vous ne pouvez pas suivre les mises à jour du noyau après avoir démarré Windows une fois.

Il ne reste donc que ma solution la plus ancienne et la plus encombrante :

pour éteindre complètement le système et pour débrancher tout autre disque dur lorsque vous branchez le disque dur Windows.

-1voto

Arnefar Points 49

C'est juste une idée et ça vaut peut-être la peine de l'essayer.

ZFS n'est pas construit dans le noyau standard de Linux, donc vous devez le construire comme un module qui doit être reconstruit pour chaque version du noyau. Je ne crois pas qu'Ubuntu soit livré avec les modules ZFS intégrés (peut-être l'a-t-il été à un moment donné). Essayez de les réinstaller sur votre noyau de travail, cela devrait construire des modules pour le nouveau noyau ainsi que de créer une nouvelle image initrd.

Listez les paquets zfs que vous avez installés :

apt list zfs*

utilisez apt reinstall pour les réinstaller.

paquets apt dont vous pourriez avoir besoin pour zfs :

zfs-dkms
zfs-initramfs

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X