サイレントブート
このページは、外観をスッキリさせたいなどの理由で、システム情報の表示を出来るだけ少なくしたい人のための情報を載せています。以下のガイドに従うことで起動時に表示されるテキストを全て消すことができます [1]。
カーネルパラメータ
ブートローダーの設定オプションを使ってカーネルパラメータを変更して、以下のパラメータを指定します:
quiet vga=current
vga=current
は FS#32309 のような問題のある挙動を発生させないようにするカーネルパラメータです。
上記のカーネルパラメータを設定してもメッセージがコンソールに表示される場合、おそらく dmesg が重要と思われるメッセージを送信しています。quiet loglevel=<level>
を使うことで表示するメッセージのレベルを変更することができます。<level>
は 0 から 7 の間の数字に置き換えてください。0 は最もクリティカルな情報だけを表示し、7 はデバッグ情報まで表示するレベルです。
quiet loglevel=3 vga=current
上記の設定は quiet
と loglevel=<level>
の両方を、この順番で使用したときにのみ適用されます (quiet
が先)。loglevel
パラメータはコンソールへの表示だけに影響します。dmesg 自体のレベルは変更されず、journal や dmesg
コマンドでメッセージを閲覧することが可能です。詳しくは linux-docs パッケージの Documentation/kernel-parameters.txt
ファイルを見て下さい。
起動時に systemd のバージョン番号が表示されないようにしたい場合、カーネルコマンドラインに udev.log-priority=3
を追加してください (ソース)。initramfs で systemd が使われている場合、rd.udev.log-priority=3
を追加してください。
initramfs で systemd
フックを使っている場合、initramfs の初期化で systemd のメッセージが表示されることがあります。rd.systemd.show_status=false
を使うことでメッセージは無効化できます。以下は systemd を使って起動するときに initramfs で全くメッセージを出さないようにするのにカーネルに指定する必要があるパラメータです:
quiet loglevel=3 rd.systemd.show_status=false rd.udev.log-priority=3
Last login メッセージを消すには touch ~/.hushlogin
を実行してください。
sysctl
コンソールからカーネルメッセージを消すには 以下 のように kernel.printk
行を追加・修正してください:
/etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3
startx
startx
メッセージを消したい場合、以下のように .bash_profile などで出力を /dev/null
にリダイレクトすることができます:
$ [[ $(fgconsole 2>/dev/null) == 1 ]] && exec startx -- vt1 &> /dev/null
未解決の問題:
- Systemd shutdowns are not quiet - systemd v206 現在、
quiet
カーネルコマンドラインはシャットダウン時にも適用されますが、mkinitcpio でshutdown
フックを使用する場合、この機能はパラメータをサポートするように設定されていません。
fsck
起動時の fsck メッセージを消すには、systemd に root ファイルシステムをチェックさせてください。まず /etc/mkinitcpio.conf
の HOOKS から fsck を削除:
HOOKS=(...)
そして次を実行:
# mkinitcpio -p linux
/usr/lib/systemd/system/
にある systemd-fsck-root.service
と systemd-fsck@.service
ファイルを /etc/systemd/system/
にコピーして、編集し、StandardOutput と StandardError を以下のように設定します:
(...) [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/systemd/systemd-fsck StandardOutput=null StandardError=journal+console TimeoutSec=0
systemd-fsck
に指定するオプションの情報は こちら を見て下さい。サービスがファイルシステムをチェックする(しない)頻度を変えられます。