こんにちは、ゆーろんです。
今回はLinux起動フローとdmesg, shutdownコマンド等に関してまとめます。
Linuxシステムが起動するまで
OSが起動するまでの流れは基本的には以下の通りです。(x86アーキテクチャ構成の場合)
- BIOS/UEFIが起動し、ハードウェアチェックや初期化を行い、ブートローダを読み出し制御を移す
- カーネルはメモリの初期化、システムクロックの設定を行い、初期RAMディスクをマウントする
- カーネルは最初のプロセスであるinit(またはsystemd)プロセスを実行する
起動時のイベント確認
システム起動時にカーネルがどのような処理を行ったかはログファイルである「/var/log/message」、「/var/log/dmesg」、「/var/log/boot.log」などに保存されます。
これらのファイルはテキストファイルなのでcatコマンドで閲覧可能です。なお閲覧にはroot権限が必要なことがあります。
dmesg コマンド
dmesgはシステム起動時にカーネルがどのような処理を行かったか確認できるコマンドです。
user@host: $ dmesg
[ 0.000000] Linux version 5.10.16.3-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP Fri Apr 2 22:23:49 UTC 2021
[ 0.000000] Command line: initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=8
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Centaur CentaurHauls
:
journalctl -k コマンド
systemdを採用したシステムにおいてdmesgコマンドと同様にカーネルのバッファを表示することができるコマンドです。
bオプションでシステム起動時のメッセージの表示が可能です。
シャットダウンと再起動
shutdown コマンド
shutdownコマンドはシステムのシャットダウンや再起動を行うことができるコマンドです。
$ shutdown [オプション] 時間 [メッセージ]
shutdownコマンドのオプションは以下の通りです。
オプション | 説明 |
---|---|
-h | シャットダウン後にシステムを停止する。 |
-r | シャットダウン後にシステムを再起動する。 |
-k | シャットダウンを実際には行わず、ユーザーに警告メッセージを表示する。 |
-t | シャットダウンまでの待機時間(秒)を指定する。 |
-c | シャットダウン処理をキャンセルする。 |
-f | シャットダウン処理を強制的に実行する。 |
以下の例は30分後にシステムを停止し、ログインしているユーザに「Please logout now」とメッセージを表示するものです。
$ shutdown -h +30 "Please logout now."
その他のコマンド
systemdを採用したLinuxシステムではshutdownの代わりに「systemctl reboot」で再起動、「systemctl poweroff」でシステムの終了が行えます。
$ systemctl reboot //再起動
$ systemctl poweroff //システム終了
タグ:
Linux基礎