Projet

Général

Profil

Tâche #35346

Scénario #35314: Faire le point sur les problèmes d'installation remontés avec les images 2.8.1.2 et 2.9.0

Etude

Ajouté par Laurent Gourvenec il y a 11 mois. Mis à jour il y a 9 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
01/10/2022
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Révisions associées

Révision cc17928a (diff)
Ajouté par Daniel Dehennin il y a 10 mois

fix(late_script): can't uninstall some EFI signed package

This make the installation fail for no real reason.

Ref: #35346

Historique

#1 Mis à jour par Laurent Gourvenec il y a 11 mois

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Laurent Gourvenec il y a 11 mois

2.9

Avec Virtualbox j'ai réussi à obtenir 3 problèmes différents :
  1. autoinstall config did not create needed bootloader partition
  2. La commande
    fuser --verbose --mount /dev/sda
    crash avec le message d'erreur :
    Device or resource buse: '/dev/sda'
  3. La commande
    vgcreate --force --zero=y --yea amon-vg /dev/sda4
    crash avec le message d'erreur :
    /dev/amon-vg: already exists in filesystem

Propositions

Pour reproduire l'erreur n°1 :
Il suffit de booter en legacy. On peut booter en legacy, sauf que l'installer n'est prévu que pour UEFI ! Voir propositions plus bas
Solution de l'erreur n°1 : booter en UEFI (Pour vbox, il y a une case à cocher dans Configuration/Système/Activer EFI (OS spéciaux seulement)

Pour reproduire l'erreur n°2 :
  1. Booter en legacy avec l'iso 2.9 officielle (pb n°1 de subiquity)
  2. Booter en legacy avec une iso 2.9 avec "grub_device: true" sur le disk (pb de grub qui ne trouve pas ses petits, vu que l'autoinstall est pour UEFI)
  3. Booter en UEFI avec l'iso 2.9 officielle (pb de vgcreate qui trouve un vg existant)
    Solution de l'erreur n°2 : "wipe: superblock-recursive" sur le disk. Au boot suivant, on obtiendra le problème n°3
    Je ne sais pas exactement d'où vient le problème, mais on dirait que le disque a déjà un superblock avec un flag "busy" suite aux précédents essais.

Pour reproduire l'erreur n°3 :
Il suffit de reprendre l'erreur n°2
Solution de l'erreur n°3 : ajout du "preserve: false"

Comme on peut le voir, les solutions proposées vont surtout nettoyer le disque dur.

Propositions concernant le boot exclusif en UEFI:

Soit on abandonne complètement le boot BIOS et alors :
  1. Faire en sorte de ne pas pouvoir booter sur l'iso en PXE
  2. Ajout dans l'autoinstall.yaml d'une gestion des erreurs avec l'action error_command afin de demander à booter en UEFI only si on atteint l'erreur n°1
Soit on gère le boot BIOS
  1. Générer 2 ISO, 1 pour EFI et 1 pour Legacy
    OU
  2. Jouer avec les early_command pour changer la conf d'autoinstall selon si on vient de booter en legacy ou en PXE (complexe)

Note: Subiquity va choisir quel bootloader installer (pour UEFI ou pour BIOS) selon comment on a booté sur l'ISO (présence ou non de /sys/firmware/EFI). Ensuite seulement il va regarder comment les partitions sont configurées (autoinstall.yaml). En cas d'inadéquation entre le mode de boot et le partitionnement, subiquity va sortir avec un message d'erreur. Il y a une option "--bootloader=uefi" à transmettre au serveur subiquity pour forcer l'installation du bootloader en uefi, mais je ne vois pas comment faire pour passer cette option dans le snap d'ubiquity.

#3 Mis à jour par Daniel Dehennin il y a 11 mois

Le disque contient des données

J’ai toujours été frileux avec la suppression automatique des données des disques mais c’est le comportement d’EOLE² avec le partitionnement automatique ⮕ OK pour preserve: false

BIOS ou UEFI

La proposition de early_command pour modifier la configuration me parait compliquée étant donnée que durant son exécution aucun périphérique bloc ou réseau n’est disponible. Il me semble donc difficile d’aller chercher un autre fichier de réponse.

Peut-être un gros sed pour modifier les entréé de disques ? Il faudrait déjà produire un fichier fonctionnel pour le mode BIOS et voir le diff.

J’avais fait le choix UEFI (eole-image:6e6600ce) car avoir quelque chose de fonctionnel dans les deux cas ne fonctionne pas.

Nous pouvons dans un premier temps détecter un démarrage non UEFI et afficher un message d’erreur plus clair.

#4 Mis à jour par Laurent Gourvenec il y a 10 mois

2.8.1(.2)

J'ai réussi à reproduire l'erreur d'Olivier Febwin donnée dans la mailing liste (L'exécution de la commande préconfigurée ( << log-output -t late_script sh /tmp/classes_script/runner late Preseed Late late >>) a échoué avec le code d'erreur 100.) en bootant tout simplement en UEFI (installation du module Amon). La différence notable pour savoir si on boot en UEFI ou en legacy, c'est qu'en UEFI on tombe sur grub sans l'image de fond EOLE. Au reboot suivant, on tombe sur le shell grub. 100% reproductible avec virtualbox.

#5 Mis à jour par Laurent Gourvenec il y a 10 mois

  • Statut changé de En cours à À valider

#6 Mis à jour par Daniel Dehennin il y a 10 mois

Je confirme le problème sur l’ISO 2.8.1.2 sur une machine physique (igor) et 2.8.1.3 sur OpenNebula.

Pour avoir un peu plus d’information :

  1. Démarrer sur l’ISO
  2. Éditer la ligne Amon en ajoutant ;net/console juste après ${apt_args}
  3. Lancer l’installation avec la combinaison de touche Control-X
  4. Un mot de passe est demandé pour l’accès par SSH, en saisir un et continuer l’installation
  5. En laissant l’installation se dérouler, vous pouvez vous connecter en SSH sur le serveur afin d’accéder aux logs
May 24 13:43:23 eole/2.8/late_script: debug: Running...
May 24 13:43:23 eole/2.8/late_script: dpkg-divert: warning: diverting file '/sbin/start-stop-daemon' from an Essential package with rename is dangerous, use --no-rename
May 24 13:43:23 /bin/in-target: warning: /target/etc/mtab won't be updated since it is a symlink.
May 24 13:43:23 debconf: --> GET mirror/protocol
May 24 13:43:23 debconf: <-- 0 http
May 24 13:43:23 debconf: --> GET mirror/http/proxy
May 24 13:43:23 debconf: <-- 0 
May 24 13:43:23 debconf: --> GET debconf/priority
May 24 13:43:23 debconf: <-- 0 critical
May 24 13:43:23 debconf: --> GET debian-installer/locale
May 24 13:43:23 debconf: <-- 0 fr_FR.UTF-8
May 24 13:43:23 in-target: Lecture des listes de paquets…
May 24 13:43:23 in-target: 
May 24 13:43:23 in-target: Construction de l'arbre des dépendances…
May 24 13:43:23 in-target: 
May 24 13:43:23 in-target: Lecture des informations d'état…
May 24 13:43:23 in-target: 
May 24 13:43:23 in-target: Le paquet « shim » n'est pas installé, et ne peut donc être supprimé
May 24 13:43:23 in-target: Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
May 24 13:43:23 in-target:   sbsigntool
May 24 13:43:23 in-target: Veuillez utiliser « apt autoremove » pour le supprimer.
May 24 13:43:23 in-target: Les paquets suivants seront ENLEVÉS :
May 24 13:43:23 in-target:   grub-efi-amd64-signed* mokutil* shim-signed*
May 24 13:43:23 in-target: ATTENTION : Les paquets essentiels suivants vont être enlevés.
May 24 13:43:23 in-target: Vous NE devez PAS faire ceci, à moins de savoir exactement ce
May 24 13:43:23 in-target: que vous êtes en train de faire.
May 24 13:43:23 in-target:   shim-signed grub-efi-amd64-signed (en raison de shim-signed)
May 24 13:43:23 in-target:   mokutil (en raison de shim-signed)
May 24 13:43:23 in-target: 0 mis à jour, 0 nouvellement installés, 3 à enlever et 0 non mis à jour.
May 24 13:43:23 in-target: E: Des paquets essentiels ont été supprimés et -y a été employé sans --allow-remove-essential.
May 24 13:43:23 debconf: --> SUBST preseed/command_failed COMMAND log-output -t late_script sh /tmp/classes_scripts_runner late Preseed Late late
May 24 13:43:23 debconf: Adding [COMMAND] -> [log-output -t late_script sh /tmp/classes_scripts_runner late Preseed Late late]
May 24 13:43:23 debconf: <-- 0
May 24 13:43:23 debconf: --> SUBST preseed/command_failed CODE 100
May 24 13:43:23 debconf: Adding [CODE] -> [100]
May 24 13:43:23 debconf: <-- 0
May 24 13:43:23 debconf: --> INPUT critical preseed/command_failed
May 24 13:43:23 debconf: <-- 0 question will be asked
May 24 13:43:23 debconf: --> GO

La commande apt-get purge du late_script échoue car nous supprimons des paquets grub pour contourner un bug mais certains paquets sont essentiels.

Il faut faire un test afin de savoir s’il est toujours pertinent de supprimer ces paquets.

#7 Mis à jour par Daniel Dehennin il y a 10 mois

L’image ISO 2.8.1.4a2 fonctionne pour moi.

#8 Mis à jour par Laurent Gourvenec il y a 10 mois

L’image ISO 2.8.1.4a2 fonctionne pour moi aussi (testé : Amon UEFI + Hapy legacy sur VBox et Amon legacy + Hapy UEFI sur serveur physique).

#9 Mis à jour par Joël Cuissinat il y a 10 mois

  • Statut changé de À valider à Fermé
  • % réalisé changé de 0 à 100
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF