Pregunta ¿Cómo habilitar y usar el terminal serial de un HP Microserver Gen9?


Tengo un HP ProLiant Microserver Gen9. Tiene HP ILO versión 4, pero la consola remota basada en Java no funciona de manera confiable y no puedo usarla después de la pantalla POST en la versión gratuita de ILO (me pide que compre una licencia avanzada de la OIT). Por lo tanto, quiero usar la consola serie para obtener un inicio de sesión en el servidor.

¿Qué debo habilitar para obtener todas las fases (POST, configuración del BIOS, salida de GRUB, el eventual indicador de inicio de sesión) del proceso de arranque en una consola serie a través del puerto de red ILO del servidor? ¿Cómo me conecto?


1


origen




Respuestas:


El puerto de la OIT en el servidor HP por defecto solicita una IP a través de DHCP. Entonces solo tiene que conectarlo a una red que tenga un servidor DHCP en ejecución. Se anunciará con un nombre de host como ILOCZ12345678 que debería ser más fácil de encontrar en la tabla de arrendamiento DHCP de su enrutador, o en, por ejemplo, journalctl/syslog si ejecuta un servidor DHCP (p. isc-dhcp-server) en un sistema como Ubuntu.

Después de haber encontrado la IP (por ejemplo 1.2.3.4), puede conectarse a la interfaz GUI de la OIT a través de https://1.2.3.4. Pero eso no es lo que estamos buscando, queremos la consola serial. Entonces, en su lugar, use la interfaz SSH de la OIT: ssh Administrator@1.2.3.4. La contraseña predeterminada está en la pequeña etiqueta de papel que viene con el Microservidor.

Tenga en cuenta que esto también funciona cuando el servidor se apaga siempre que tenga un cable de alimentación atascado (ese es el punto de ILO).

Allí, escribe ? para ver todas las opciones Extracto:

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.

Nosotros elegimos VSP para obtener el puerto serie; TEXTCONS probablemente también sería bueno, pero tendría que comprar la licencia de Advanced ILO para usarlo.

Ahora, una vez que hacemos eso, con un sistema en ejecución, simplemente cuelga en

</>hpiLO-> VSP

Virtual Serial Port Active: COM2

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

Eso es porque, por defecto, Ubuntu (estoy usando 16.04 aquí) no hace que un mensaje de inicio de sesión esté disponible a través del puerto serie. Cambiaremos eso más tarde. Primero reiniciamos para ver que la configuración del BIOS ya funciona.

Verlo arrancar a través del puerto serie

En otra sesión de ssh de la OIT, reinicie usando:

</>hpiLO-> power reset

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

Server resetting .......

Después de un tiempo de espera, notará que la sesión en la cual VSP se está ejecutando ha borrado su pantalla.

Luego aparece:

                            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

Esa es la pantalla POST. Espera un poco y mira:

 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 desea configurar el BIOS, este es su momento: esta pantalla aparece solo durante 1 segundo más o menos. Las teclas F * normalmente no funcionan, necesitan ser escapadas: literalmente tienes que presionar ESC tecla y luego el número / símbolo como se dice arriba. P.ej. ESC y entonces 5 es para F5.

Ahora, sin ajustes adicionales, obtenemos silencio en el puerto serie, porque como se mencionó anteriormente, ni GRUB2 ni los terminales de inicio de sesión de Ubuntu salen por defecto al puerto serie en 16.04.

Entonces configuramos el servidor (ahora vía SSH) para usar el puerto serie.

Hacer que GRUB2 use el puerto serie

Seguí las instrucciones en https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/ cambiando /etc/default/grub como se describe (- significa comentar la línea con #, + significa agregar la línea):

COMIDA_

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"

El tiempo de espera de 10 segundos se establece porque la conexión en serie redibuja la pantalla extremadamente lentamente y queremos tiempo suficiente para poder cancelar el tiempo de espera presionando, p. tecla abajo en GRUB.

Después de cambiar el archivo como se describe, ejecuta sudo update-gruby reiniciar

Ahora debería ver en su VSP sesión lo siguiente después de la pantalla 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

Ignoramos esto (si sabes cómo deshacerte de esto, por favor comenta). Después de un momento, esto aparece:

 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.                           

Esa es una pantalla GRUB normal, y puedes mover la * puntero con las teclas hacia arriba y hacia abajo.

Hacer que el inicio de sesión de Ubuntu use el puerto serie

Los siguientes bits están inspirados en http://0pointer.de/blog/projects/serial-console.html

sudo cp /lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS1.service

Ahora edita /etc/systemd/system/serial-getty@ttyS1.service:

Cambiar la linea

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

a

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

Nos preocupa especialmente establecer el modo vt100-nav - Descubrí que el inicio de sesión no aparece sin este cambio.

No estoy seguro de por qué tenemos que usar ttyS1 aquí mientras estábamos en GRUB configuramos ttyS0 - pero no funciona para mí usar S0 aquí. Si alguien sabe por qué, por favor comente.

Comience el tty vía:

sudo systemctl start serial-getty@ttyS1.service

Ahora debería ver un mensaje de inicio de sesión en su VSP sesión. Haz que esto suceda automáticamente al arrancar usando:

sudo systemctl enable serial-getty@ttyS1.service

Y reiniciar Ahora debería ver toda la salida en VSP, de POST a GRUB2 a la solicitud de inicio de sesión.


1