Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Problèmes du système d’exploitation

Le Harvester fonctionne sur un système d’exploitation basé sur OpenSUSE. Le système d’exploitation est un artefact produit par le elemental-toolkit. Les sections suivantes contiennent des informations et des conseils pour aider les utilisateurs à résoudre les problèmes liés au système d’exploitation.

Comment se connecter à un nœud Harvester

Les utilisateurs peuvent se connecter à un nœud Harvester avec le nom d’utilisateur rancher et le mot de passe ou la clé SSH fournis lors de l’installation. L’utilisateur rancher peut exécuter des commandes privilégiées sans entrer de mot de passe :

# Run a privileged command
rancher@node1:~> sudo blkid

# Or become root
rancher@node1:~> sudo -i
node1:~ # blkid

Comment puis-je installer des paquets ? Pourquoi certains chemins sont-ils en lecture seule ?

Le système de fichiers de l’OS, comme une image de conteneur, est basé sur une image et immuable sauf dans certains répertoires.

Nous recommandons d’utiliser un toolbox container pour exécuter des programmes non empaquetés dans l’OS Harvester à des fins de débogage. Veuillez consulter cet article pour apprendre à créer et exécuter un conteneur toolbox.

L’OS Harvester fournit également un moyen d’activer temporairement le mode lecture-écriture. Veuillez suivre les étapes suivantes :

L’activation du mode lecture-écriture pourrait endommager votre système si des fichiers sont modifiés. Veuillez l’utiliser à vos risques et périls.

  • Pour la version v0.3.0, nous devons d’abord appliquer un contournement pour rendre certains répertoires non superposés après avoir activé le mode lecture-écriture. Sur un nœud Harvester en cours d’exécution, exécutez la commande suivante en tant que root :

      cat > /oem/91_hack.yaml <<'EOF'
      name: "Rootfs Layout Settings for debugrw"
      stages:
        rootfs:
          - if: 'grep -q root=LABEL=COS_STATE /proc/cmdline && grep -q rd.cos.debugrw /proc/cmdline'
            name: "Layout configuration for debugrw"
            environment_file: /run/cos/cos-layout.env
            environment:
              RW_PATHS: " "
      EOF
  • Redémarrez le système pour accéder au menu GRUB. Appuyez sur Échap pour rester dans le menu.

    grub menu
  • Appuyez sur e dans la première entrée du menu. Ajoutez rd.cos.debugrw à la ligne linux (loop0)$kernel $kernelcmd. Appuyez sur Ctrl + x pour démarrer le système.

    edit boot parameter

Comment modifier définitivement les paramètres du noyau Linux

Les étapes suivantes constituent une solution de contournement. Harvester informera la communauté une fois qu’une solution permanente sera mise en place.

  • Remontez le répertoire d’état en mode lecture-écriture :

      # blkid -L COS_STATE
      /dev/vda2
      # mount -o remount,rw /dev/vda2 /run/initramfs/cos-state
  • Modifiez le fichier de configuration grub et ajoutez des paramètres à la ligne linux (loop0)$kernel $kernelcmd. L’exemple suivant ajoute un paramètre nomodeset :

      # vim /run/initramfs/cos-state/grub2/grub.cfg
      menuentry "${display_name}" --id cos {
        # label is kept around for backward compatibility
        set label=${active_label}
        set img=/cOS/active.img
        loopback $loopdev /$img
        source ($loopdev)/etc/cos/bootargs.cfg
        linux ($loopdev)$kernel $kernelcmd ${extra_cmdline} ${extra_active_cmdline} nomodeset
        initrd ($loopdev)$initramfs
      }
  • Redémarrez pour que les modifications prennent effet.

Comment changer l’entrée par défaut du menu de démarrage GRUB

Pour changer l’entrée par défaut, vérifiez d’abord l’attribut --id d’une entrée de menu. Les entrées du menu GRUB se trouvent dans les fichiers suivants :

  • /run/initramfs/cos-state/grub2/grub.cfg : Contient les entrées par défaut, de secours et de récupération

  • /run/initramfs/cos-state/grubcustom : Contient l’entrée de débogage

Dans l’exemple suivant, l’identifiant de l’entrée est debug.

# cat \
    /run/initramfs/cos-state/grub2/grub.cfg \
    /run/initramfs/cos-state/grubcustom

<...>
menuentry "${display_name} (debug)" --id debug {
  search --no-floppy --set=root --label COS_STATE
  set img=/cOS/active.img
  set label=COS_ACTIVE
  loopback loop0 /$img
  set root=($root)
  source (loop0)/etc/cos/bootargs.cfg
  linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_passive_cmdline} ${crash_kernel_params}
  initrd (loop0)$initramfs
}

Vous pouvez configurer l’entrée par défaut en exécutant les commandes suivantes :

# mount -o remount,rw /run/initramfs/cos-state
# grub2-editenv /run/initramfs/cos-state/grub_oem_env set saved_entry=debug

Si nécessaire, vous pouvez annuler le changement en exécutant la commande grub2-editenv /run/initramfs/cos-state/grub_oem_env unset saved_entry.

Comment déboguer un plantage ou un blocage du système

Collecter le journal des incidents

Si les traces de panique du noyau ne sont pas enregistrées dans le journal système lors d’un crash, une méthode fiable pour localiser le journal des incidents est d’utiliser une console série.

Pour activer l’affichage des messages du noyau sur une console série, veuillez suivre les étapes suivantes :

  • Démarrez le système jusqu’au menu GRUB. Appuyez sur Échap pour rester dans le menu.

    grub menu

  • Appuyez sur e dans la première entrée du menu. Ajoutez console=ttyS0,115200n8 à la ligne linux (loop0)$kernel $kernelcmd. Appuyez sur Ctrl + x pour démarrer le système.

    edit boot parameter serial

    Ajustez les options de console en fonction de votre environnement. Assurez-vous d’ajouter la chaîne console= à la fin de la ligne.

  • Connectez-vous au port série pour capturer les journaux.

Collecter les vidages sur incident

Pour les crashs de panique du noyau, vous pouvez utiliser kdump pour collecter les vidages sur incident.

Par défaut, le système d’exploitation démarre sans la fonctionnalité kdump activée. Les utilisateurs peuvent activer la fonctionnalité en sélectionnant l’entrée de menu debug lors du démarrage, comme dans l’exemple suivant :

grub menu debug

Lorsqu’un système plante, un vidage sur incident sera stocké dans le répertoire /var/crash/<time>. Fournir le vidage sur incident aux développeurs les aide à résoudre les problèmes.