如何啟用和使用 HP Microserver Gen9 的串列終端?
我有一台 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
是 forF5
。現在,無需進一步設置,我們在串口處獲得靜音,因為如上所述,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 再到登錄提示。