Hp-Proliant

如何啟用和使用 HP Microserver Gen9 的串列終端?

  • July 17, 2017

我有一台 HP ProLiant Microserver Gen9。它具有 HP ILO 版本 4,但基於 Java 的遠端控制台無法可靠執行,並且在 ILO 免費版本的 POST 螢幕後我無法使用它(要求我購買 ILO 高級許可證)。所以我想使用串列控制台來登錄伺服器。

我必須在 Ubuntu 系統上做什麼才能通過伺服器的 ILO 網路埠在串列控制台中獲取引導過程的所有階段(POST、BIOS 配置、GRUB 的輸出、最終的登錄提示)?我如何連接到它?

預設情況下,HP 伺服器上的 ILO 埠通過 DHCP 請求 IP。因此,您只需將其插入執行 DHCP 伺服器的網路即可。它會用一個主機名宣布自己,這樣ILOCZ12345678可以更容易地在路由器的 DHCP 租用表中找到,或者如果您在 Ubuntu 等系統上執行 DHCP 伺服器(例如),則可以在journalctl/中找到它。syslog``isc-dhcp-server

找到 IP 後(例如1.2.3.4),您可以通過 連接到 ILO 的 GUI 界面https://1.2.3.4。但這不是我們要找的,我們需要串列控制台。因此,請改用 ILO 的 SSH 介面:ssh Administrator@1.2.3.4. 預設密碼位於 Microserver 附帶的小紙質標籤上。

請注意,這在伺服器關閉時也有效,只要它有一根電源線插入其中(這是 ILO 的點)。

在那裡,鍵入?以查看所有選項。摘抄:

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.

我們選擇VSP獲取串口;TEXTCONS可能也不錯,但您必須購買高級 ILO 許可證才能使用它。

現在,一旦我們這樣做了,使用一個正在執行的系統,它就會掛在

</>hpiLO-> VSP

Virtual Serial Port Active: COM2

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

這是因為預設情況下,Ubuntu(我在這裡使用的是 16.04)不會通過串列埠提供登錄提示。我們稍後會改變它。首先,我們重新啟動以查看 BIOS 配置已經工作。

看到它通過串口啟動

在另一個 ILO ssh 會話中,使用以下命令重新啟動:

</>hpiLO-> power reset

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

Server resetting .......

等待一段時間後,您會注意到VSP正在執行的會話已清除其螢幕。

然後出現:

                           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

那是POST螢幕。稍等一下,看看:

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

如果您想配置 BIOS,現在是時候了:此螢幕僅出現 1 秒左右。F* 鍵通常不起作用,需要對其進行轉義:您實際上必須按該ESC鍵,然後按上面所說的數字/符號。例如ESC,然後5是 for F5

現在,無需進一步設置,我們在串口處獲得靜音,因為如上所述,GRUB2 和 Ubuntu 登錄終端都沒有預設輸出到 16.04 中的串口。

因此,我們將伺服器(現在通過 SSH)配置為使用串列埠。

讓 GRUB2 使用串口

我按照https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/上的說明進行了更改/etc/default/grub-意味著用#,+表示添加行):

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"

設置了 10 秒的超時,因為串列連接重繪螢幕非常緩慢,我們希望有足夠的時間能夠通過按下例如 GRUB 中的按鍵來取消超時。

按照描述更改文件後,執行sudo update-grub並重新啟動。

您現在應該VSP在 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

我們忽略了這一點(如果您知道如何擺脫這一點,請發表評論)。片刻之後,出現如下:

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.                           

這是一個普通的 GRUB 螢幕,您可以*使用上下鍵移動指針。

使 Ubuntu 登錄使用串口

以下位的靈感來自http://0pointer.de/blog/projects/serial-console.html

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

現在編輯/etc/systemd/system/serial-getty@ttyS1.service

換行

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

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

我們特別注意設置模式vt100-nav——我發現如果沒有這個更改,登錄就不會出現。

我不確定為什麼我們必須ttyS1在我們配置的 GRUB 中使用這裡ttyS0——但我在這裡使用它不起作用S0。如果有人知道原因,請發表評論。

通過以下方式啟動 tty:

sudo systemctl start serial-getty@ttyS1.service

您現在應該在VSP會話中看到登錄提示。使用以下命令在啟動時自動執行此操作:

sudo systemctl enable serial-getty@ttyS1.service

並重新啟動。您現在應該可以看到 中的所有輸出VSP,從 POST 到 GRUB2 再到登錄提示。

引用自:https://serverfault.com/questions/830748