
也許我誤解了 KVM 的功能,但在 VM 上添加/刪除硬體的能力似乎意味著我可以添加一個串行端口,然後充當終端。
所以,我的問題是:
- 哪些設定最適合來賓 FreeBSD 發行版? (有許多!)
- 如何從我的 Linux 主機存取所述終端機?
答案1
我現在可以根據以下內容回答我自己的問題斯特凡的評論和兩篇連結的文章:
- https://askubuntu.com/questions/1733/what-reason-could-prevent-console-output-from-virsh-c-qemu-system-console-gu
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507650#29
這是解決方案:
- 您無需編輯與主機配置相關的任何內容,只要主機配置中有指向 pty 的預設串行設備即可。
- 確保核心的引導參數附加了以下內容:
serial=tty0 console=ttyS0,115200n8
。通常透過編輯來實現/boot/grub/menu.lst
- 配置
/etc/inittab
並附加該行T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100
以啟動 getty 並給出登入提示。
我可以使用 fedora 系統確認這對我有效(儘管我確實必須設定enforcing=0
為附加參數,因為相關係統是運行 SELinux MLS 的 fedora rawhide)。
我想從那裡我可能可以弄清楚如何為 freebsd 做同樣的事情。
謝謝斯特凡!
答案2
在回答如何設定 FreeBSD 機器時,取得串口有兩種主要情況。如果您僅使用序列安裝 FreeBSD,則需要引導程式序列指令。如果您已經擁有控制台並且只想進行串行訪問,請按照安裝後串行說明進行操作。
引導程式串行
- 在 FreeBSD 啟動選項畫面上按下
2
以前往載入程式提示符 - 類型
set console=comconsole
- 如果此時失去互動性,請檢查虛擬 tty 波特率是否為 9600
- 類型
autoboot
這應該允許透過串行接口完成其餘的安裝。如果您想在安裝 FreeBSD 後繼續進行串行訪問,那麼在安裝結束重新啟動之前,您需要進入命令提示字元。
安裝後序號
在控制台:
- 類型
echo 'console="comconsole"' >> /boot/loader.conf
- 載入
/etc/ttys
到vi中 - 修改以 ttyu0 開頭的行(在其他版本的 FreeBSD 上可能是 ttyd0)
- 在那一行更改
dialup
為vt100
和off
到on
- 在那一行更改
- 重新啟動後,串行終端應顯示啟動過程,並以登入提示結束
- 注意:設定
console="comconsole"
可以/boot/loader.conf
使啟動資訊僅出現在序列介面上。/etc/ttys
如果您不希望透過串行啟動日誌,只需修改即可。
- 注意:設定
參考
http://www.freebsd.org/doc/handbook/serialconsole-setup.html
答案3
好吧,當然,您必須在模擬器中模擬串行端口,並且可以在主機上訪問它。來賓作業系統應該在其「硬體序列埠」上放置一些內容,例如透過 getty_ps 進行登入提示。現在我個人還沒有必要以這種方式使用它。大多數情況下,來賓作業系統上的模擬序列埠用於偵錯資訊(Haiku 預設仍使用該資訊),然後由模擬器(如VMware)將其擷取為簡單的文字文件,以提供可用的偵錯資訊。
答案4
OP的答案有效,但是當我嘗試使用我的環境(Linux主機,Linux客戶端)時
serial=tty0
不需要- 使用 xterm 而不是 vt100
/etc/inittab
效果更好(你會得到顏色)