我有一台 HP ProLiant Microserver Gen9。它具有 HP ILO 版本 4,但基于 Java 的远程控制台无法可靠运行,并且在 ILO 免费版本的 POST 屏幕后我无法使用它(要求我购买 ILO 高级许可证)。所以我想使用串行控制台来登录服务器。
我必须在 Ubuntu 系统上做什么才能通过服务器的 ILO 网络端口在串行控制台中获取引导过程的所有阶段(POST、BIOS 配置、GRUB 的输出、最终的登录提示)?我如何连接到它?
我有一台 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 [email protected]
. 默认密码位于 Microserver 附带的小纸质标签上。请注意,这在服务器关闭时也有效,只要它有一根电源线插入其中(这是 ILO 的点)。
在那里,键入
?
以查看所有选项。摘抄:我们选择
VSP
获取串口;TEXTCONS
可能也不错,但您必须购买高级 ILO 许可证才能使用它。现在,一旦我们这样做了,使用一个正在运行的系统,它就会挂在
这是因为默认情况下,Ubuntu(我在这里使用的是 16.04)不会通过串行端口提供登录提示。我们稍后会改变它。首先,我们重新启动以查看 BIOS 配置已经工作。
看到它通过串口启动
在另一个 ILO ssh 会话中,使用以下命令重新启动:
等待一段时间后,您会注意到
VSP
正在运行的会话已清除其屏幕。然后出现:
那是POST屏幕。稍等一下,看看:
如果您想配置 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
(-
意味着用#
,+
表示添加行):设置了 10 秒的超时,因为串行连接重绘屏幕非常缓慢,我们希望有足够的时间能够通过按下例如 GRUB 中的按键来取消超时。
按照描述更改文件后,运行
sudo update-grub
并重新启动。您现在应该
VSP
在 POST 屏幕后的会话中看到以下内容:我们忽略了这一点(如果您知道如何摆脱这一点,请发表评论)。片刻之后,出现如下:
这是一个普通的 GRUB 屏幕,您可以
*
使用上下键移动指针。使 Ubuntu 登录使用串口
以下位的灵感来自http://0pointer.de/blog/projects/serial-console.html
现在编辑
/etc/systemd/system/[email protected]
:换行
至
我们特别注意设置模式
vt100-nav
——我发现如果没有这个更改,登录就不会出现。我不确定为什么我们必须
ttyS1
在我们配置的 GRUB 中使用这里ttyS0
——但我在这里使用它不起作用S0
。如果有人知道原因,请发表评论。通过以下方式启动 tty:
您现在应该在
VSP
会话中看到登录提示。使用以下命令在启动时自动执行此操作:并重新启动。您现在应该可以看到 中的所有输出
VSP
,从 POST 到 GRUB2 再到登录提示。textcons
从 ILO ssh 界面使用。这可能需要国际劳工组织高级许可证,但与此同时,获得许可证的门槛非常低。大多数组织对使虚拟串行端口工作不感兴趣,因为它很耗时。
Google获得 ILO 许可证
或从 HP获得演示许可证,
或者只需支付 25 美元从 Amazon 购买 ILO 密钥
在 RHEL7 中,“错误:找不到终端‘串行’”是由于 Anaconda 没有在 RAM 映像中放置“串行”设备驱动程序。可以使用缺少的驱动程序重建 RAM 磁盘,但没有它,Grub 似乎可以正常运行。