在某些情況下,需要同時對兩台或多台Linux主機進行管理和操作。如果手頭缺少足夠多的鍵盤和顯示器,那麼通過一台機器的串口對其余主機進行控制不失為一種快捷、有效的方法。 下面就以兩台主機為例,簡單介紹一下配置方法。假設這兩台主機分別為A和B,它們都運行Red Hat 9.0。 A主機配置 A主機要選擇一個合適的串口通信工具,本文中使用Linux自帶的Minicom。 以root身份登錄,運行如下命令: # minicom -s 屏幕上出現Minicom的主配置選單,移動鍵盤的方向鍵,選擇“Serial Port Setup”選單項,會出現如下配置項: A - Serial Device : /dev/ttyS0 B - Lockfile Location : /var/lock C - Callin Program : D - Callout Program : E - Bps/Par/Bits : 9600 8N1 F - Hardware Flow Control : No G - Software Flow Control : No Change which setting? 按照需要配置如下參數: ◆ 串口設備 /dev/ttyS0; ◆ 波特率 9600; ◆ 幀格式 8N1(表示有8位數據、0位校驗和1位停止位); ◆ 軟、硬件流控 No。 注意,串口設備號可以根據所連接的端口進行更改,比如,連接到COM2口就設置為/dev/ttyS1。波特率的設定要與B主機一致。 配置完成後回到主配置選單,選擇“Modem and Dialing”選單項,清除掉“A - Init string”、“B - Reset string”和“K - Hang-up string”選項的值。然後重新返回主選單,選擇“Save As Dfl”選單項,保存為缺省設置。選擇“Exit from Minicom”退出後,用如下命令重新啟動Minicom: # minicom B主機配置 B主機需要修改以下幾個文件。 1.修改/etc/inittab文件 該文件是init程序的配置文件,用於設置缺省狀態和終端連接。在該文件中增加如下一行,用來初始化串口終端: tty:2345:respawn:/sbin/agetty ttyS0 9600 vt100 “tty”為該行ID;“2345”指該行的運行級別是2、3、4、5級;“respawn”使命令退出後再執行一次,以便其它用戶能夠登錄;“/sbin/agetty ttyS0 9600 vt100”表示具體的命令,該命令通過/sbin/agetty程序打開串口/dev/ttyS0(COM1),波特率設置為9600bps,終端模式為vt100。 重啟主機B後,在A主機中會顯示B主機的登錄界面。但是,此時還有兩個問題:一個是無法在A主機以root身份登錄B;另一個是A中無法顯示B主機啟動和關閉過程的相關提示信息。後者是因為Linux啟動時的信息都是由內核顯示的,默認輸出到系統主控制台(tty1)。要解決這兩個問題,還需要修改/etc/securetty文件和/etc/lilo.conf文件。 2.修改/etc/securetty文件 該文件是一個被允許以root身份登錄的tty設備列表,這些設備由/bin/login程序讀取。為了使用戶能以root身份通過串口登錄,需要在該文件中添加“ttyS0”,告訴系統COM1是安全的。 3.修改/etc/lilo.conf文件 本文假設系統使用LILO啟動。為了使LILO和內核的啟動信息能夠輸出到串口,必須修改/etc/lilo.conf文件,在“linear”一行後添加“serial=0,9600n8”,將“append="root=LABEL=/"”改為“append="root=LABEL=/ console=ttyS0,9600"”。 serial選項使LILO的啟動信息輸出到串口,以便選擇不同的系統或內核進行啟動。其中,“0”表示串口使用COM1;“9600”表示波特率為9600bps;“n”表示無校驗位;“8”表示有8位數據位。 “append="root=LABEL=/ console=ttyS0,9600"”的作用是向內核傳遞參數,使系統啟動信息輸出到串口COM1,波特率設為9600bps。修改完成後,重新運行一下LILO命令使配置生效。 至此,將鍵盤和顯示器等外設連接在主機A上,主機A再通過串口連接主機B,就可以對B進行管理和控制了。所需的硬件就是一條串口線,當然還要求兩台主機都具備串口。