Linux:通过编辑GRUB引导加载程序来配置/启用串行控制台

时间:2020-01-09 10:41:56  来源:igfitidea点击:

如何在BIOS中配置和启用控制台重定向?
如何查看我的远程专用服务器启动信息以及通常打印到屏幕上的所有诊断信息。
我已经在服务器BIOS中启用了串行端口并进行了连接。
现在如何通过串行控制台配置和访问Linux?
串行控制台有助于解决疑难问题。
如果您要远程管理Linux服务器,即使网络出现故障或者崩溃,这也很有用。
为了使用串行控制台,您需要配置GRUB引导加载程序并更改/etc/inittab文件。

步骤1:在GRUB中进行串行重定向

打开grub配置文件/boot/grub/menu.lst(Debian/Ubuntu Linux)或者/boot/grub/grub.conf(Redhat/CentOS/Fedora Core Linux),执行:

# vi /boot/grub/grub.conf

在hiddenmenu选项下面添加以下几行:

serial --unit=1 --speed=19200
terminal --timeout=8 console serial
  • 第一行告诉GRUB以19200的波特率使用第一个串行端口
  • 第二行给用户9秒钟的时间来决定GRUB应该其中输出其信息。
  • 请根据您的设置调整端口号和速度。

接下来,请确保禁用了splashimage选项,因为无法在串行端口上显示图形。
删除splashimage行或者通过在符号前面加上注释将其注释掉:

#splashimage=(hd0,0)/grub/splash.xpm.gz

步骤2:从Linux内核启用串行输出

找到与您当前正在运行的内核相对应的内核行(grub配置文件)。
在该行的末尾添加以下内容console = tty0 console = ttyS0,9600n8:

title Red Hat Enterprise Linux ES (2.6.9-42.0.10.ELsmp)
        root (hd0,0)
        kernel /vmlinuz-2.6.9-42.0.10.ELsmp ro root=LABEL=/ console=tty0 console=ttyS1,19200n8
        initrd /initrd-2.6.9-42.0.10.ELsmp.img

保存并关闭文件。
当列出了多个console =选项时,Linux内核将在可能的情况下将两者输出(tty0,ttyS1)。
现在,内核错误会同时在普通VGA控制台和串行控制台上记录下来。

步骤3:通过串行控制台登录

最后打开/etc/inittab文件,执行:

# vi /etc/inittab

追加以下行:

1:23:respawn:/sbin/agetty -h -L ttyS1 19200 vt100

保存并关闭文件。
上一行允许您通过串行设备登录。
您正在将agetty进程追加到串行控制台。
您的Linux发行版可能包含上述内容。

步骤4:测试设置

接下来,重新启动服务器。
确保使用IPMI Java客户端或者IPMIView Linux客户端连接到串行控制台。
最后,您应该在屏幕上看到以下消息:

Press any key to continue.

现在按任意键在串行控制台上启动GRUB。
请注意,如果不执行任何操作,它将打开服务器的VGA控制台。