【Linux】カーネル起動オプションについて
LinuxではOSの起動時にカーネルに各種オプションを渡して設定を変更することが可能です。
更新履歴
- 2021/8/24
- コード部分にシンタックスハイライターを適用
- 2021/3/28
- The Linux BootPrompt-HowToのリンク先をhttpsに修正
起動オプションの確認
/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の起動オプションについての参考になります。
※実際に設定する際はディストリビューションやカーネルバージョンの違いによる起動オプションの有無に注意して下さい。