J'ai un HP ProLiant Microserver Gen9. Il a HP ILO version 4, mais la console distante basée sur Java ne fonctionne pas de manière fiable et je ne peux pas l'utiliser après l'écran POST dans le libre) version de l'OIT (me demande d'acheter une licence avancée de l'OIT). Je souhaite donc utiliser la console série à la place pour obtenir une connexion sur le serveur.
Que dois-je faire sur un système Ubuntu pour obtenir toutes les phases (POST, configuration du BIOS, sortie de GRUB, invite de connexion éventuelle) du processus de démarrage dans une console série via le port réseau BIT du serveur? Comment m'y connecter?
Par défaut, le port ILO du serveur HP demande une adresse IP via DHCP. Il vous suffit donc de le connecter à un réseau sur lequel un serveur DHCP est en cours d'exécution. Il s'annoncera avec un nom d'hôte comme ILOCZ12345678
ce qui devrait faciliter la recherche dans la table des baux DHCP de votre routeur, ou dans par exemple journalctl
/syslog
si vous exécutez un serveur DHCP (par exemple isc-dhcp-server
) sur un système comme Ubuntu.
Après avoir trouvé l'IP (dites 1.2.3.4
), vous pouvez vous connecter à l'interface graphique de l'OIT via https://1.2.3.4
. Mais ce n'est pas ce que nous recherchons, nous voulons la console série. Donc, utilisez plutôt l'interface SSH de l'OIT: ssh [email protected]
. Le mot de passe par défaut se trouve sur la petite étiquette en papier fournie avec le microserveur.
Notez que cela fonctionne également lorsque le serveur est arrêté tant qu'il a un câble d'alimentation coincé (c'est le but de l'OIT).
Là, tapez ?
pour voir toutes les options. Extrait:
POWER : Control server power.
UID : Control Unit-ID light.
ONETIMEBOOT: Access One-Time Boot setting.
NMI : Generate an NMI.
VM : Virtual media commands.
LANGUAGE : Command to set or get default language
VSP : Invoke virtual serial port.
TEXTCONS : Invoke Remote Text Console.
TESTTRAP : Sends a test SNMP trap to the configured alert destinations.
Nous choisissons VSP
pour obtenir le port série; TEXTCONS
serait probablement aussi bien, mais il faudrait acheter la licence Advanced ILO pour l'utiliser.
Maintenant, une fois que nous faisons cela, avec un système en cours d'exécution, il se bloque à
</>hpiLO-> VSP
Virtual Serial Port Active: COM2
Starting virtual serial port.
Press 'ESC (' to return to the CLI Session.
C'est parce que par défaut, Ubuntu (j'utilise ici 16.04) ne rend pas disponible une invite de connexion via le port série. Nous changerons cela plus tard. D'abord, nous redémarrons pour voir que la configuration du BIOS fonctionne déjà.
Dans une autre session ssh de l'OIT, redémarrez en utilisant:
</>hpiLO-> power reset
status=0
status_tag=COMMAND COMPLETED
Sun Feb 5 20:05:59 2017
Server resetting .......
Après un certain temps d'attente, vous remarquerez que la session dans laquelle VSP
s'exécute a effacé son écran.
Apparaît alors:
4096 MB Installed
ProLiant System BIOS - J06 (11/02/2015)
Copyright 1982, 2015 Hewlett-Packard Development Company, L.P.
1 Processor(s) detected, 2 total cores enabled, Hyperthreading is not supported
Proc 1: Intel(R) Celeron(R) CPU G1610T @ 2.30GHz
HP Power Profile Mode: Custom
Power Regulator Mode: Dynamic Power Savings
Redundant ROM Detected - This system contains a valid backup System ROM.
Inlet Ambient Temperature: 18C/64F
HP SmartMemory authenticated in all populated DIMM slots.
HP AHCI SATA Controller (v0.90)
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
HP AHCI SATA Controller (v0.84) WD30EFRX-68EUZN0
Port3: S.M.A.R.T Capable Hard Disk - WDC WD30EFRX-68EUZN0
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
<F9 = Setup>
iLO 4 Standard
iLO 4 v2.50 Sep 23 2016 192.168.178.106
Broadcom NetXtreme Ethernet Boot Agent
Copyright (C) 2000-2015 Broadcom Corporation
All rights reserved.
Press Ctrl-S to enter Configuration Menu
C'est l'écran POST. Attendez un peu et voyez:
Press "F9" key for ROM-Based Setup Utility
Press "F10" key for Intelligent Provisioning
Press "F11" key for Default Boot Override Options
Press "F12" key for Network Boot
For access via BIOS Serial Console
Press "ESC+9" for ROM-Based Setup Utility
Press "ESC+0" for Intelligent Provisioning
Press "ESC+!" for Default Boot Override Options
Press "ESC+@" for Network Boot
Si vous souhaitez configurer le BIOS, il est maintenant temps: cet écran n'apparaît que pendant 1 seconde environ. Les touches F * ne fonctionnent généralement pas, elles doivent être échappées: vous devez littéralement appuyer sur la touche ESC
puis sur le nombre/symbole comme indiqué ci-dessus. Par exemple. ESC
puis 5
est pour F5
.
Maintenant, sans autres réglages, nous obtenons le silence sur le port série, car comme mentionné ci-dessus, ni GRUB2 ni les terminaux de connexion Ubuntu ne sortent par défaut sur le port série en 16.04.
Nous configurons donc le serveur (maintenant via SSH) pour utiliser le port série.
J'ai suivi les instructions à https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/ changer /etc/default/grub
comme décrit (-
signifie commenter la ligne avec #
, +
signifie ajouter la ligne):
DEFAULT=0
-GRUB_HIDDEN_TIMEOUT=0
-GRUB_HIDDEN_TIMEOUT_QUIET=true
-GRUB_TIMEOUT=10
+GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
-GRUB_CMDLINE_LINUX=""
+GRUB_CMDLINE_LINUX_DEFAULT=""
+GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200"
-#GRUB_TERMINAL=console
+GRUB_TERMINAL="console serial"
+GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --Word=8 --parity=no --stop=1"
Le délai de 10 secondes est défini car la connexion série redessine l'écran extrêmement lentement, et nous voulons suffisamment de temps pour pouvoir annuler le délai en appuyant sur par ex. key-down dans GRUB.
Après avoir modifié le fichier comme décrit, exécutez Sudo update-grub
, et redémarrez.
Vous devriez maintenant voir dans votre session VSP
ce qui suit après l'écran POST:
error: serial port `com2' isn't found
error: terminal `serial' isn't found
error: terminal `serial' isn't found
error: no video mode activated
Nous ignorons cela (si vous savez comment vous en débarrasser, veuillez commenter). Après un peu de temps, cela apparaît:
GNU GRUB version 2.02~beta2-36ubuntu3.6
+----------------------------------------------------------------------------+
|*Ubuntu |
| Advanced options for Ubuntu |
| Memory test (memtest86+) |
| Memory test (memtest86+, serial console 115200) |
| |
| |
+----------------------------------------------------------------------------+
Use the and keys to select which entry is highlighted.
Press enter to boot the selected OS, `e' to edit the commands
before booting or `c' for a command-line.
C'est un écran normal GRUB, et vous pouvez déplacer le *
pointeur avec les touches haut et bas.
Les bits suivants sont inspirés de http://0pointer.de/blog/projects/serial-console.html
Sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
Maintenant éditez /etc/systemd/system/[email protected]
:
Changer la ligne
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
à
ExecStart=-/sbin/agetty %I 115200 vt100-nav
Nous tenons particulièrement à régler le mode vt100-nav
- J'ai constaté que la connexion n'apparaît pas sans cette modification.
Je ne sais pas pourquoi nous devons utiliser ttyS1
ici en GRUB nous avons configuré ttyS0
- mais cela ne fonctionne pas pour moi d'utiliser S0
ici. Si quelqu'un sait pourquoi, veuillez commenter.
Démarrez le tty via:
Sudo systemctl start [email protected]
Vous devriez maintenant voir une invite de connexion dans votre session VSP
. Faites que cela se produise automatiquement au démarrage en utilisant:
Sudo systemctl enable [email protected]
Et redémarrez. Vous devriez maintenant voir toutes les sorties dans VSP
, de POST à GRUB2 à l'invite de connexion.
Utilisez textcons
à partir de l'interface ssh de l'OIT. Cela peut nécessiter la licence avancée de l'OIT, mais en même temps, il y a un obstacle très faible à l'obtention d'une licence.
La plupart des organisations ne souhaitent pas faire fonctionner le port série virtuel car cela prend du temps.
Google pour une licence OIT
ou obtenez une licence de démonstration de HP
ou il suffit de payer 25 $ pour un clé BIT d'Amazon
Dans RHEL7, "erreur: le terminal" série "n'est pas trouvé" est dû au fait qu'Anaconda ne place pas de pilote de périphérique "série" dans l'image RAM. Il est possible de reconstruire le RAM disque avec le pilote manquant mais Grub semble fonctionner suffisamment sans lui.