我需要在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