ブートメッセージのクリアの無効化
関連記事
ブートプロセスの後、画面はクリアされてログインプロンプトが表示されますが、これでは init の出力やエラーメッセージをユーザーが読むことはできません。この記事で説明している方法を使うことでこの挙動を変更することができます。
以下の方法とは別に、起動後に dmesg
を使ってカーネルメッセージを表示したり、journalctl -b
を実行して起動からのログを全て表示させることが可能です。
フロー制御を使う
仮想端末 (vc) を含む、ほとんど全てのターミナルエミュレータに適用される基本的な制御です:
Ctrl+S
を押して出力を停止Ctrl+Q
で復帰
tty1 にブートメッセージを残す
デフォルトで、Arch では getty@tty1
サービスが有効になっています。サービスファイルは既に --noclear
を使うようになっているので、agetty が画面をクリアすることはありません。しかしながら systemd が起動する前に画面をクリアしてしまいます。この挙動を無効にするには、ドロップインディレクトリ /etc/systemd/system/getty@tty1.service.d/
を作成して、その中に noclear.conf
ファイルを作ってください:
/etc/systemd/system/getty@tty1.service.d/noclear.conf
[Service] TTYVTDisallocate=no
上記の設定で TTY1 の agetty の TTYVTDisallocate
だけが上書きされます。グローバルなサービスファイル /usr/lib/systemd/system/getty@.service
に手は加えられません。これは systemd のユニットファイルを編集するときに推奨される方法です。
KMS を後で実行していると最初のブートメッセージがクリアされてしまうことがあります。このような場合は、KMS の先の起動を有効にしてください。
おそらく、画面にブートメッセージが溢れてしまうほど表示されますが、Shift+PgUp/PgDow でスクロールできます。スクロールしても表示されないほど多くのブートメッセージが出力される場合、スクロールバックバッファのサイズを増やしてみて下さい。
/etc/issue のクリアを無効化
/etc/issue
に "clear TTY" エスケープシーケンスがある場合、削除してください。
# sed -i $'s/\e\[H//; s/\e\[2J//' /etc/issue