Terminal

GNOME 關閉在 CentOS 7 中列印出格式錯誤的醜陋終端消息

  • November 27, 2019

我正在使用 VMware 執行帶有 GNOME 桌面的 CentOS 7 虛擬機。

我遇到了一個問題,每次我關閉虛擬機而不是顯示一個漂亮的關閉螢幕時,我都會得到一個帶有難看格式錯誤消息的終端視窗。

在此處輸入圖像描述

這就是它預設的行為方式(不涉及任何配置)。有誰知道這可能是什麼原因造成的?

據我了解,啟動和關閉螢幕是使用“grub”配置的。我不確定它是否有幫助,但這是我的“ /etc/default/grub ”配置文件:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos00/root 
rd.lvm.lv=centos00/swap rd.lvm.lv=centos01/swap rd.lvm.lv=centos00/usr rhgb 
quiet"
GRUB_DISABLE_RECOVERY="true"

編輯

我嘗試遵循 hildred 的建議,並在核心命令行中添加了一個串列控制台。(由於 VMware 配置串列埠的方式,我不得不使用 ttyS1 而不是 S0。)

在此處輸入圖像描述

看起來問題是在 GNOME 顯示管理器啟動後立即開始的。

我正在研究如何送出錯誤報告。


更新:

Grub 是一個引導載入程序,在核心啟動後不使用,因此與關閉或啟動日誌記錄無關。此外,虛擬化環境幾乎肯定不是一個因素,視窗管理器可能不是。

那麼發生了什麼?關鍵線索在螢幕截圖中可見,請注意,幾乎在每種情況下,每條消息都從下一行開始,在前一條消息的右側開始一個字元。這告訴我們終端的行尾解釋處於錯誤模式。解決這個問題是編寫 reset 命令要做的(reset|sudo tee /dev/tty將以使用者身份執行此操作,但是當您登錄時,所有啟動消息都已過去,因此這只有助於關閉消息)。另一方面,最常見的原因是向螢幕發送垃圾或崩潰的全屏程序,這兩種情況都不應該在啟動期間發生。

要解決哪個服務導致此問題,最簡單的方法是串列控制台,因為串列終端允許在核心崩潰、關閉以及在這種情況下啟動期間進行日誌記錄。第一步:在 VmWare 中為這台機器設置一個串口。(我對 VmWare 不熟悉,但類似的工具允許將串列埠定向到一個文件,這是您需要的最簡單的方法。其他方法也可以工作。) 第二步:在核心命令行中添加一個串列控制台。您只需要在一次啟動時執行此操作,因此當 grub 菜單出現時按 e 編輯目前啟動選項(移動到您通常使用的啟動選項後)查找以 linux 開頭的行並添加console=ttyS0,115200 console=tty0到那行的末尾。(115200 為波特率,根據需要更改。8 位無奇偶校驗。第一個控制台啟用串列埠,第二個啟用預設值。) 第三步:查看日誌。問題幾乎可以肯定是最後一個程序將其啟動消息放在正確的位置。第四步:送出錯誤報告。這不應該發生。不要忘記在錯誤報告中包含啟動日誌。

引用自:https://unix.stackexchange.com/questions/414352