Linux重定向console口控制臺
Linux重定向console口控制臺的具體操作步驟如下:
首先,因為Linux系統(tǒng)的版本不一樣,重定向規(guī)則也稍有不同。所以這里只以Fedora13版的Linux系統(tǒng)來說明,下文以Linux自稱。
Linux從啟動到啟動完成的所有輸出均復制到Com口上,一共需要修改3個文件。在此之前還要確認/sbin/agetty文件是否存在,此文件用來把系統(tǒng)的輸入輸出映射到其它設備上。
1.首先在 /etc/inittab里面添加如下內容,最后一行另加一行加上:
sc:2345:respawn:/sbin/agetty ttyS0 1152000,115200 xterm
“sc”為改行ID,“2345”指改行的運行級別是2、3、4、5級;“respawn”是使命令退出后再執(zhí)行一次,以便其他用戶能夠登錄;“/sbin/agetty ttyS0 9600 vt100”表示具體的命令,即通過他來執(zhí)行打開串口/dev/ttyS0(COM1),后面是波特率和終端模式
xterm是一個X Window System上的標準虛擬終端。用戶可以在同一個顯示器上開啟許多xterm,每一個都為其中運行的進程提供獨立的輸入輸出(一般來說此進程是Unix shell)。
2.修改/etc/securetty里面的內容:
第2行另加一行加上:ttyS0
該文件是允許root身份登錄的tty設備列表,這些設備由/bin/login程序讀取,為了使用戶能以root身份通過串口登錄,需要在該文件中添加“ttyS0”,說明系統(tǒng)認為這里的COM1是安全的;
3.修改/etc/grub.conf文件里面的內容:
重定向grub:
在#Enable Serial Console下另加一行(有時可能有誤差)加上:
serial --unit=0 --speed=115200 --word=8 --paity=no --stop=1 terminal --timeout=10 serial console serial
初始化一個串口設備。
重定向console:
在/etc/grub.conf文件中kernel語句本行加上:
console=tty0 console=ttyS0,115200n8
其中“ttyS0”,“0”表示串口使用COM1;“9600”表示波特率為9600bps;“n”表示無校驗位;“8”表示有8位數(shù)據(jù)位。
其實Linux啟動時的信息都是由KERNEL顯示的,缺省情況下啟動完畢了后init再運行mingetty來提供6個虛擬終端來登陸系統(tǒng),這可以在/etc/inittab文件中清楚地看到。其實login和內核是沒有關系的,所以如果只是在內核中加入?yún)?shù)使其能從COM口交互式地操作并不代表能從超級終端登錄系統(tǒng),我們需要另外運行一個提供從串口登錄能力的程序,這個程序就是agetty,它是屬于util-Linux軟件包中的一員,大家可以參考其man手冊頁以獲得更多的信息,這些信息在其他的文檔[1][3]中也都提及到了。
COM口的傳輸距離有限制,普通的線纜只有15米的有效距離,建議使用5類雙絞線,可以擴展到50米仍能正常操作;
一般想使用root從ttyS0登錄,默認的這是不行的,我們需要把該終端加入到文件/etc/securetty中,就是說終端ttyS0是安全的終端,可以使用root登錄; 如果服務器長時間開著的話,最好每次都使用exit退出該終端,因為如果不退出來的話,下次再登陸可能會出現(xiàn)輸入亂碼導致終端不可用等問題,而在登錄提示符下輸入亂碼則無關緊要;
如果你是通過這種方法管理一臺實際24X7開著的服務器的話,你可能會有時發(fā)現(xiàn)在終端中按回車沒有任何反映,有一種可能性就是系統(tǒng)在停電后再開機出現(xiàn)不能啟動NFS和sendmail之類的服務,就這樣卡在那里死鎖住了,這在電源不穩(wěn)定的情況下尤其多見,所以一定要給你的Linux服務器接上UPS不間斷電源,或者在系統(tǒng)BIOS里設置斷電后不再啟動系統(tǒng)(如果它不是太重要的話),在這種情況下只有按鍵盤重新啟動或者直接斷電再重新啟動一次,檢查啟動過程到底發(fā)生了什么事情,一般只需要檢查一遍硬盤就沒有問題了;
如果你的ttyS0出現(xiàn)亂碼沒有辦法使用的話,可以嘗試著從網(wǎng)絡登陸,把/etc/inittab中ttyS0那一行注釋,使用"init q"命令停止通過inittab啟動的agetty,然后再重新取消/etc/inittab中的注釋,再次"init q"命令啟動agetty,不出意外就能恢復正常了。
【編輯推薦】