【Linux】カーネル起動オプションについて

LinuxではOSの起動時にカーネルに各種オプションを渡して設定を変更することが可能です。

起動オプションの確認

/proc/cmdlineを読むことで現在起動しているカーネルの起動オプションを確認することが可能です。

以下は一部の起動オプションを追加している自宅サーバの出力例です。

$ cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-4.14.120-1-fit-pc2 root=UUID=xxxx ro quiet pcie_aspm=off consoleblank=0

ちなみにAWSのEC2インスタンスは以下の起動オプションが設定されていました。

$ cat /proc/cmdline 
root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 LANG=en_US.UTF-8 KEYTABLE=us

起動オプションの設定

ブートローダーがGRUBであれば/boot/grub/grub.confを編集すれば設定できます。

しかし、現在の主なLinuxディストリビューションではブートローダーにGRUB2を用いているところが多いと思います。

GRUB2ではスクリプトによって自動生成される/boot/grub/grub.cfgに起動時のメニューやオプションが設定されています。

起動オプションの設定については/etc/default/grubを編集して、grub-mkconfigまたはgrub2-mkconfigコマンドを実行します。

※同じコマンドでもディストリビューションによって接頭辞がgrub-だったりgrub2-だったりしますので注意。

Debianではgrub-mkconfigを呼び出してくれるupdate-grubという便利なスクリプトが用意されています。

ちなみにupdate-grubスクリプトの処理は以下のようになっていました。

※/usr/sbin/update-grubの処理
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

主な起動オプション

起動オプションの情報はThe Linux BootPrompt-HowToで見つけることができます。

また、Red Hatの起動オプションのページDebianの起動オプションのページもLinuxの起動オプションについての参考になります。

※実際に設定する際はディストリビューションやカーネルバージョンの違いによる起動オプションの有無に注意して下さい。