我需要在Ubuntu系统上通过服务器的ILO网络端口在串行控制台中获取启动过程的所有阶段(POST,BIOS配置,GRUB输出,最终登录提示)?我该如何连接它?
找到IP(比如1.2.3.4)后,可以通过https://1.2.3.4连接到ILO的GUI界面.但这不是我们想要的,我们想要串行控制台.因此,请使用ILO的SSH接口:ssh Administrator@1.2.3.4.默认密码位于微服务器随附的小纸标签上.
请注意,只要服务器插入电源线(这是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可能也不错,但您必须购买Advanced 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,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代表F5.
现在,在没有进一步设置的情况下,我们在串口上静音,因为如上所述,GRUB2和Ubuntu登录终端默认都不输出到16.04的串口.
所以我们配置服务器(现在通过SSH)来使用串口.
使GRUB2使用串口
我按照描述更改/ etc / default / grub在https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/处的说明( – 表示用#注释掉行,表示添加行):
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,然后重新启动.
现在,您应该在POST屏幕后看到以下VSP会话:
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