通过COM口管理Linux服务器(2)
2008-02-23 07:14:44来源:互联网 阅读 ()
| Device: /dev/ttyS0 | |||||
| Signal Name | Pin(25) | Pin(9) | Direction (computer) | Status | Full Name |
| ----- | --- | --- | --------- | ------ | ----- |
| FG | 1 | - | - | - | Frame Ground |
| TxD | 2 | 3 | out | - | Transmit Data |
| RxD | 3 | 2 | in | - | Receive Data |
| RTS | 4 | 7 | out | 1 | Request To Send |
| CTS | 5 | 8 | in | 0 | Clear To Send |
| DSR | 6 | 6 | in | 1 | Data Set Ready |
| GND | 7 | 5 | - | - | Signal Ground |
| DCD | 8 | 1 | in | 0 | Data Carrier Detect |
| DTR | 20 | 4 | out | 1 | Data Terminal Ready |
| RI | 22 | 9 | in | 0 | Ring Indicator |
3、从POST开始
这是很多电脑都无法实现的功能,这主要取决于主板BIOS是否支持。POST(Power On Self Test)即我们通常说的自检,我们可以看到系统的基本信息及检查过程,当然也有可能有出错的提示信息及相应的处理提示,有一些型号的服务器主板(如INTEL原装NL440BX)可以将POST重定向到COM口,这样我们可以接一个终端在COM口上便能看到POST过程,当然也可以通过终端操作,完全不需要键盘和显示器。可惜一般情况下我们的主板并不支持这项功能,但是没有关系,我们可以先设定好BIOS参数(Halt On 设置为None)忽略无关紧要的出错信息,让每次系统自检都顺利通过,这样系统便能顺利进入硬盘启动了。
4、重定向GRUB
也许你有几个系统(如FreeBSD),或者有新的内核需要进行测试,你可能希望通过COM口来选择系统,将GRUB重定向到COM口也是可能的。我们在GRUB的manual页[4]可以看到其支持seriral终端,在GRUB配置文件第一条Title的前面加入两行如下:
serial --unit=0 --speed=38400
terminal serial console
我们便能从接在COM口上的终端中看到GRUB的提示信息,通过上、下键选择光带就可以正确地进入各个系统了。LILO的用法类似,请参阅LILO的手册页。
5、重定向CONSOLE
为了能够控制Linux服务器启动过程,我们需要传递一些参数到Linux内核中,从serial-console[2]中我们可以看到只需要将console=ttyS0,9600传递到内核中就可以实现CONSOLE重定向到串口。当然9600的速度太慢,我们可以使用38400的速率,这样显示的速度就和启动时显示器上显示的速度差不多了。我的服务器使用GRUB,所以我的/boot/grub/menu.lst文件中kernel语句如下:
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ console=tty0 console=ttyS0,38400
现在重新启动Linux服务器,打开超级终端,不出意外就能看到平时在显示器上才看得到的启动信息,当然你也可以按"i"键进入交互式的启动模式,当然在不小心踢掉电源后也能轻松输入"Y"进行文件系统检测,是不是很好用?不过启动完了系统后怎么就停在那里不动了?好像Linux很笨啊,它居然不知道我想从这里登录进系统?不要怪Linux,我们马上就来解释为什么会这样以及解决办法。
6、开启ttyS0登陆
其实Linux启动时的信息都是由KERNEL显示的,缺省情况下启动完毕了后init再运行mingetty来提供6个虚拟终端来登陆系统,这可以在/etc/inittab文件中清楚地看到。其实login和内核是没有关系的,所以如果只是在内核中加入参数使其能从COM口交互式地操作并不代表能从超级终端登录系统,我们需要另外运行一个提供从串口登录能力的程序,这个程序就是agetty,它是属于util-Linux软件包中的一员,大家可以参考其man手册页以获得更多的信息,这些信息在其他的文档[1][3]中也都提及到了。我在服务器的/etc/inittab文件中加了一行如下:
S0:2345:respawn:/sbin/agetty -L 38400 ttyS0
这样我们就能从超级终端登录系统了,很好用吧。
7、一些经验
使用ttyS0登录还有一些小的窍门和经验,以下是我的经验:
COM口的传输距离有限制,普通的线缆只有15米的有效距离,建议使用5类双绞线,可以扩展到50米仍能正常操作;
大家一般会想使用root从ttyS0登录,但是默认的这是不行的,我们需要把该终端加入到文件/etc/securetty中,就是说终端ttyS0是安全的终端,可以使用root登录;
如果服务器长时间开着的话,最好每次都使用exit退出该终端,因为如果不退出来的话,下次再登陆可能会出现输入乱码导致终端不可用等问题,而在登录提示符下输入乱码则无关紧要;
如果你是通过这种方法管理一台实际24X7开着的服务器的话,你可能会有时发现在终端中按回车没有任何反映,有一种可能性就是系统在停电后再开机出现不能启动NFS和sendmail之类的服务,就这样卡在那里死锁住了,这在电源不稳定的情况下尤其多见,所以一定要给你的Linux服务器接上UPS不间断电源,或者在系统BIOS里设置断电后不再启动系统(如果它不是太重要的话),在这种情况下只有按键盘重新启动或者直接断电再重新启动一次,检查启动过程到底发生了什么事情,一般只需要检查一遍硬盘就没有问题了;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:没有了
- 小技巧:通过COM口管理Linux服务器 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
