Wie aktiviere und verwende ich das serielle Terminal eines HP Microserver Gen9?

7

Ich habe einen HP ProLiant Microserver Gen9. Es hat HP ILO Version 4, aber die Java-basierte Remote Console funktioniert nicht zuverlässig und ich kann sie nach dem POST-Bildschirm in der kostenlosen Version von ILO nicht verwenden (fordert mich auf, eine ILO Advanced-Lizenz zu kaufen). Daher möchte ich stattdessen die serielle Konsole verwenden, um mich auf dem Server anzumelden.

Was muss ich auf einem Ubuntu-System tun, um alle Phasen (POST, BIOS-Konfiguration, GRUB-Ausgabe, eventuelle Anmeldeaufforderung) des Startvorgangs in einer seriellen Konsole über den ILO-Netzwerkport des Servers abzurufen? Wie verbinde ich mich damit?

nh2
quelle

Antworten:

13

Der ILO-Port auf dem HP Server fordert standardmäßig eine IP über DHCP an. Sie müssen es also nur an ein Netzwerk anschließen, auf dem ein DHCP-Server ausgeführt wird. Es meldet sich mit einem Hostnamen wie ILOCZ12345678dem, der das Auffinden in der DHCP-Lease-Tabelle Ihres Routers oder in zB journalctl/, syslogwenn Sie einen DHCP-Server (z. B. isc-dhcp-server) auf einem System wie Ubuntu ausführen , erleichtern soll .

Nachdem Sie die IP gefunden haben (sagen wir 1.2.3.4), können Sie über eine Verbindung zur GUI-Schnittstelle der IAO herstellen https://1.2.3.4. Aber das ist nicht das, wonach wir suchen, wir wollen die serielle Konsole. Verwenden Sie stattdessen die SSH-Schnittstelle von ILO : ssh [email protected]. Das Standardkennwort befindet sich auf dem kleinen Papieretikett, das mit dem Microserver geliefert wird.

Beachten Sie, dass dies auch funktioniert, wenn der Server heruntergefahren wird, solange ein Netzkabel eingesteckt ist (das ist der Punkt der IAO).

Geben Sie dort ein, ?um alle Optionen anzuzeigen. Auszug:

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.

Wir entscheiden VSPuns für die serielle Schnittstelle; TEXTCONSwäre wahrscheinlich auch schön, aber du müsstest die Advanced ILO Lizenz kaufen, um sie zu nutzen.

Sobald wir das tun, hängt es bei einem laufenden System einfach daran

</>hpiLO-> VSP

Virtual Serial Port Active: COM2

Starting virtual serial port.
Press 'ESC (' to return to the CLI Session.

Das liegt daran, dass Ubuntu (ich verwende hier 16.04) standardmäßig keine Anmeldeaufforderung über die serielle Schnittstelle zur Verfügung stellt. Wir werden das später ändern. Zuerst starten wir neu, um festzustellen, dass die BIOS-Konfiguration bereits funktioniert.

Es wird über die serielle Schnittstelle gestartet

Starten Sie in einer anderen ILO-SSH-Sitzung neu mit:

</>hpiLO-> power reset

status=0
status_tag=COMMAND COMPLETED
Sun Feb  5 20:05:59 2017

Server resetting .......

Nach einiger Wartezeit werden Sie feststellen, dass die Sitzung, in der sie VSPausgeführt wird, ihren Bildschirm gelöscht hat.

Dann erscheint:

                            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

Das ist der POST-Bildschirm. Warten Sie ein bisschen und sehen Sie:

 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

Wenn Sie das BIOS konfigurieren möchten, ist jetzt Ihre Zeit: Dieser Bildschirm wird nur etwa 1 Sekunde lang angezeigt. Die F * -Tasten funktionieren normalerweise nicht, sie müssen maskiert werden: Sie müssen buchstäblich die ESCTaste und dann die Nummer / das Symbol drücken, wie oben angegeben. ZB ESCund dann 5ist für F5.

Jetzt, ohne weitere Einstellungen, wird die serielle Schnittstelle stillgelegt, da, wie oben erwähnt, in 16.04 weder GRUB2 noch die Ubuntu-Anmeldeterminals standardmäßig an die serielle Schnittstelle ausgegeben werden.

Also konfigurieren wir den Server (jetzt über SSH) so, dass er die serielle Schnittstelle verwendet.

Wenn GRUB2 die serielle Schnittstelle verwendet

Ich follwed die Anweisungen bei https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/ Ändern /etc/default/grubwie beschrieben ( -Mittel Kommentar aus der Zeile mit #, +bedeutet die Zeile hinzufügen):

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"

Das Zeitlimit von 10 Sekunden wird festgelegt, da die serielle Verbindung den Bildschirm extrem langsam neu zeichnet und wir genügend Zeit benötigen, um das Zeitlimit durch Drücken der z. B. Taste in GRUB abzubrechen.

Nachdem Sie die Datei wie beschrieben geändert haben sudo update-grub, führen Sie sie aus und starten Sie sie neu.

VSPNach dem POST-Bildschirm sollte in Ihrer Sitzung Folgendes angezeigt werden:

error: serial port `com2' isn't found
error: terminal `serial' isn't found
error: terminal `serial' isn't found
error: no video mode activated

Wir ignorieren dies (wenn Sie wissen, wie Sie dies beseitigen können, kommentieren Sie bitte). Nach einer kurzen Zeit erscheint dies:

 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.                           

Das ist ein normaler GRUB-Bildschirm, und Sie können den *Zeiger mit den Auf- und Ab-Tasten bewegen .

Wenn Sie das Ubuntu-Login verwenden, verwenden Sie die serielle Schnittstelle

Die folgenden Bits sind von http://0pointer.de/blog/projects/serial-console.html inspiriert

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

Jetzt bearbeiten /etc/systemd/system/[email protected]:

Ändern Sie die Zeile

ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM

zu

ExecStart=-/sbin/agetty %I 115200 vt100-nav

Wir legen besonderen Wert darauf, den Modus einzustellen. vt100-navIch habe festgestellt, dass der Login ohne diese Änderung nicht angezeigt wird.

Ich bin nicht sicher, warum wir hier verwenden müssen ttyS1, während wir in GRUB konfiguriert haben ttyS0- aber es funktioniert nicht für mich, S0hier zu verwenden . Wenn jemand weiß warum, bitte kommentieren.

Starten Sie das tty über:

sudo systemctl start [email protected]

In Ihrer VSPSitzung sollte jetzt eine Anmeldeaufforderung angezeigt werden . Machen Sie dies beim Booten automatisch möglich mit:

sudo systemctl enable [email protected]

Und neu starten. Sie sollten jetzt die gesamte Ausgabe VSPvon POST über GRUB2 bis zur Anmeldeaufforderung sehen.

nh2
quelle
1
Wenn Ihre serielle Verbindung beim Neulackieren des Grub-Bildschirms langsam ist, stellen Sie sicher, dass Sie die Baudrate der virtuellen seriellen Schnittstelle im BIOS auf 115200 konfiguriert haben! (Ich erinnere mich nicht genau, wo die Option ist, aber es ist irgendwo) Das hat das Repaint auf meinem Gen8 viel schneller gemacht.
Jplitza
1
Ich glaube, der Grund, warum Sie S1 anstelle von S0 für Ihre serielle Verbindung verwenden, ist, dass Sie tatsächlich zwei verschiedene serielle (COM) Ports verwenden.
Matthew Hannigan
1
Was bekommen Sie, wenn Sie VSP eingeben? Ich erhalte "Virtual Serial Port Active: COM2" und gebe ttyS1 für den getty-serial-Dienst an. Sie können VSP so ändern, dass COM1 im BIOS-Setup-Bildschirm verwendet wird.
Matthew Hannigan
Ich habe eine verwandte Antwort darüber geschrieben, TEXTCONSwann sie verfügbar ist.
nh2
2

Verwendung textconsüber die ILO-SSH-Schnittstelle. Dies erfordert möglicherweise die ILO Advanced-Lizenz, gleichzeitig ist die Erlangung einer Lizenz jedoch sehr gering.

Die meisten Organisationen sind nicht daran interessiert, dass die virtuelle serielle Schnittstelle funktioniert, da dies zeitaufwändig ist.

Google für eine ILO-Lizenz
oder erhalten Sie eine Demo-Lizenz von HP
oder zahlen Sie nur 25 US-Dollar für einen ILO-Schlüssel von Amazon

ewwhite
quelle
1

In RHEL7 ist "Fehler: Terminal" seriell "wird nicht gefunden" darauf zurückzuführen, dass Anaconda keinen "seriellen" Gerätetreiber im RAM-Image platziert. Es ist möglich, die RAM-Disk mit dem fehlenden Treiber neu zu erstellen, aber Grub scheint ohne diesen Treiber ausreichend zu funktionieren.

Darryl
quelle