J’ai installé chez moi un petit serveur debian 9.4.0. Je n’ai pas installé de serveur graphique. Lors de mon installation j’ai donc utilisé un câble hdmi pour brancher le serveur sur ma télé et avoir un écran provisoire le temps de finir l’installation et de pouvoir prendre la main en ssh.
Le problème que je rencontre est le suivant :
Lorsque je démarre le serveur avec l’écran branché sur ma télé en hdmi 1 et que j’affiche effectivement l’entrée hdmi 1 sur ma télé, il démarre sans pb
Lorsque je démarre le serveur avec l’écran branché sur ma télé en hdmi 1 et que j’affiche une autre entrée (hdmi 2 par ex) sur ma télé, il ne démarre pas
Lorsque je démarre le serveur sans avoir l’écran de branché, il ne démarre pas non plus
Quand je dis qu’il ne démarre pas je sous entend que je n’arrive pas à me connecter dessus en ssh. Il ne répond d’ailleurs pas aux pings non plus.
Est ce que ce problème parle à quelqu’un? Comment pourrais-je le diagnostiquer plus précisément pour savoir ce qui l’empêche de finir son démarrage?
NB : Je ne suis pas très familier des fichiers logs. Si des infos peuvent être trouvé de ce côté la, merci de me guider un peu
Je ne pense pas que le problème soit matériel car j’avais déjà un serveur Debian (6.x) a une époque sur cette machine et je n’avais rien changé matériellement depuis.
Par contre en jouant avec les entrées hdmi de ma télé j’ai réussis à revenir sur le serveur au moment du plantage et j’ai pu prendre une photo :
En effet c’est l’initramfs (système initial en mémoire), qui a pour fonction de monter le système de fichiers contenant la racine du système. On dirait qu’il ne monte pas la bonne partition, du coup il ne trouve pas divers répertoires et fichiers qui sont censés se trouver dedans. Mais je ne vois pas du tout le rapport avec la présence d’un écran…
A l’invite du shell de l’initramfs, peux-tu exécuter les commandes suivantes (attention QWERTY) :
cat /proc/cmdline # pour voir la valeur du paramètre root=
ls /root # pour voir le contenu de la partition montée comme racine
mount # pour voir quelle partition est montée sur /root
Le problème est identifié par la commande « ls /root » qui montre que c’est un de mes disques dur de données qui est montée à la place de la partition racine…
Le retour de la commande « mount » nous dis pourtant que /dev/sdb1 est montée sur /root ce qui est correct.
C’est comme si sdb désignait un disque dur différent lorsque j’ai un écran de branché. J’avoue que je ne vois pas trop le rapport.
Moi non plus mais une chose est sûre : les noms de périphérique des disques ne sont pas persistants et peuvent changer sans raison d’un démarrage à l’autre. Il faut faire avec, ou plutôt sans, donc utiliser des identifiants persistants comme les UUID ou étiquettes (LABEL), comme cela doit être le cas dans /etc/fstab. Le paramètre root= passé par GRUB (si le chargeur est bien GRUB) devrait être l’UUID.
Démarre avec un écran, vérifie que
dans /etc/default/grub la ligne GRUB_DISABLE_LINUX_UUID est bien commentée (#)
dans /etc/fstab la racine est bien spécifiée par son UUID
et exécute update-grub pour voir si ça regénère un fichier /boot/grub/grub.cfg correct avec root=UUID=xxx au lieu de root=/dev/sdb1.
Ce pourrait être intéressant de réitérer les commandes quand le lancement fonctionne, histoire de voir si les montages coïncident ou non. On peut envisager qu’un ou plusieurs éléments de ton écran amènent ton ordi à reconnaître un autre disque (étrange mais pas impossible) et décale le nommage des disques (et fait donc foirer le boot). La suggestion de @PascalHambourg est tout à fait pertinente pour ce type de problème.
Installation fraîche ? Justement il m’est déjà arrivé de constater cette anomalie dans le grub.cfg généré lors de l’installation. Je n’en connais pas la cause.
salut
sous raspberry pi 2 y avait un problème comme ça
il fallait changer un fichier texte, genre mettre 1 à la place de 0
je n’ai pas lu tout le post mais si c’est ça je recherche.