「カーネルパラメータ」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンク切れの修正(Linux "Kernel Parameters" ドキュメント))
タグ: visualeditor
5行目: 5行目:
 
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります:
 
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります:
   
# カーネルをビルドするとき。
+
#カーネルをビルドするとき。
# カーネルを起動するとき(普通、ブートローダから読み込まれた時)。
+
#カーネルを起動するとき(普通、ブートローダから読み込まれた時)。
# 起動中({{ic|/proc}} と {{ic|/sys}} にあるファイルを使う)。
+
#起動中({{ic|/proc}} と {{ic|/sys}} にあるファイルを使う)。
   
 
このページでは2番目の場合について詳しく記述し、Arch Linux でよく使われるカーネルパラメータの一覧を示します。
 
このページでは2番目の場合について詳しく記述し、Arch Linux でよく使われるカーネルパラメータの一覧を示します。
   
== 設定 ==
+
==設定==
   
 
{{Note|
 
{{Note|
22行目: 22行目:
 
ここでは [[Syslinux]], [[systemd-boot]], [[GRUB]], [[GRUB Legacy]], [[LILO]] のそれぞれの場合に {{ic|quiet}} と {{ic|splash}} パラメータを加える方法を説明します。
 
ここでは [[Syslinux]], [[systemd-boot]], [[GRUB]], [[GRUB Legacy]], [[LILO]] のそれぞれの場合に {{ic|quiet}} と {{ic|splash}} パラメータを加える方法を説明します。
   
=== Syslinux ===
+
===Syslinux===
   
* メニューが表示されたら {{ic|Tab}} を押してパラメータを文字列の最後に加える:
+
*メニューが表示されたら {{ic|Tab}} を押してパラメータを文字列の最後に加える:
   
: {{bc|1=linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img ''quiet splash''}}
+
:{{bc|1=linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img ''quiet splash''}}
   
: {{ic|Enter}} を押して加えたパラメータを使って起動します。
+
:{{ic|Enter}} を押して加えたパラメータを使って起動します。
   
* 再起動後も変更を持続させるには、{{ic|/boot/syslinux/syslinux.cfg}} を開き、パラメータを {{ic|APPEND}} 行に加えます:
+
*再起動後も変更を持続させるには、{{ic|/boot/syslinux/syslinux.cfg}} を開き、パラメータを {{ic|APPEND}} 行に加えます:
   
: {{bc|1=APPEND root=/dev/sda3 ''quiet splash''}}
+
:{{bc|1=APPEND root=/dev/sda3 ''quiet splash''}}
   
 
Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。
 
Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。
   
=== systemd-boot ===
+
===systemd-boot===
   
* メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください:
+
*メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください:
   
: {{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 ''quiet splash''}}
+
:{{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 ''quiet splash''}}
   
: {{ic|Enter}} を押すと編集したパラメータで起動が開始されます。
+
:{{ic|Enter}} を押すと編集したパラメータで起動が開始されます。
   
 
{{Note|メニューのタイムアウト値を設定していない場合、起動時 systemd-boot のメニューが表示されるまで {{ic|Space}} を押し続ける必要があります。}}
 
{{Note|メニューのタイムアウト値を設定していない場合、起動時 systemd-boot のメニューが表示されるまで {{ic|Space}} を押し続ける必要があります。}}
   
* 再起動後も変更を永続的に適用するには、{{ic|/boot/loader/entries/arch.conf}} ([[ビギナーズガイド#UEFI マザーボードの場合|ビギナーズガイド]]の指示通りに [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] と設定ファイルを設定した場合) を編集して {{ic|options}} 行に以下を追加してください:
+
*再起動後も変更を永続的に適用するには、{{ic|/boot/loader/entries/arch.conf}} ([[ビギナーズガイド#UEFI マザーボードの場合|ビギナーズガイド]]の指示通りに [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] と設定ファイルを設定した場合) を編集して {{ic|options}} 行に以下を追加してください:
   
: {{bc|1=options root=/dev/sda2 ''quiet splash''}}
+
:{{bc|1=options root=/dev/sda2 ''quiet splash''}}
   
 
systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。
 
systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。
   
=== GRUB ===
+
===GRUB===
   
* メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます:
+
*メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます:
   
: {{bc|1=linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ''quiet splash''}}
+
:{{bc|1=linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ''quiet splash''}}
   
: {{ic|b}} を押して加えたパラメータを使って起動します。
+
:{{ic|b}} を押して加えたパラメータを使って起動します。
   
* 再起動後も変更を持続させるには、{{ic|/boot/grub/grub.cfg}} を開いて上と同じ行を編集することも''できますが''、初心者におすすめの方法は:
+
*再起動後も変更を持続させるには、{{ic|/boot/grub/grub.cfg}} を開いて上と同じ行を編集することも''できますが''、初心者におすすめの方法は:
   
 
:{{ic|/etc/default/grub}} を開きカーネルオプションを {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} 行に追加:
 
:{{ic|/etc/default/grub}} を開きカーネルオプションを {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} 行に追加:
   
:: {{bc|1=GRUB_CMDLINE_LINUX_DEFAULT="''quiet splash''"}}
+
::{{bc|1=GRUB_CMDLINE_LINUX_DEFAULT="''quiet splash''"}}
   
 
:そして {{ic|grub.cfg}} ファイルを自動生成します:
 
:そして {{ic|grub.cfg}} ファイルを自動生成します:
   
:: {{bc|# grub-mkconfig -o /boot/grub/grub.cfg}}
+
::{{bc|# grub-mkconfig -o /boot/grub/grub.cfg}}
   
 
GRUB の設定について、詳しくは [[GRUB]] を見て下さい。
 
GRUB の設定について、詳しくは [[GRUB]] を見て下さい。
   
=== GRUB Legacy ===
+
===GRUB Legacy===
   
* メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます:
+
*メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|kernel}} 行の後ろに加えます:
   
: {{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}}
+
:{{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}}
   
: {{ic|b}} を押して加えたパラメータを使って起動します。
+
:{{ic|b}} を押して加えたパラメータを使って起動します。
   
* 再起動後も変更を持続させるには、{{ic|/boot/grub/menu.lst}} を開いて上と同じように {{ic|kernel}} 行にパラメータを追加します。
+
*再起動後も変更を持続させるには、{{ic|/boot/grub/menu.lst}} を開いて上と同じように {{ic|kernel}} 行にパラメータを追加します。
   
 
GRUB Legacy の設定について詳しくは [[GRUB Legacy]] を見て下さい。
 
GRUB Legacy の設定について詳しくは [[GRUB Legacy]] を見て下さい。
   
=== LILO ===
+
===LILO===
   
* パラメータを {{ic|/etc/lilo.conf}} に追加します:
+
*パラメータを {{ic|/etc/lilo.conf}} に追加します:
   
: {{bc|<nowiki>
+
:{{bc|<nowiki>
 
image=/boot/vmlinuz-linux
 
image=/boot/vmlinuz-linux
 
...
 
...
95行目: 95行目:
 
LILO の設定については [[LILO]] により多くの情報があります。
 
LILO の設定については [[LILO]] により多くの情報があります。
   
=== rEFInd ===
+
===rEFInd===
   
* 再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば:
+
*再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば:
: {{bc|1="Boot to X" "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro rootfstype=ext4 quiet splash}}
 
   
  +
:{{bc|1="Boot to X" "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro rootfstype=ext4 quiet splash}}
* rEFInd で OS の自動検知を無効にしていて、代わりに {{ic|/boot/EFI/refind/refind.conf}} で OS を定義して OS をロードしている場合、以下のように編集することができます:
 
  +
: {{bc|<nowiki>menuentry "Arch" {
 
  +
*rEFInd で OS の自動検知を無効にしていて、代わりに {{ic|/boot/EFI/refind/refind.conf}} で OS を定義して OS をロードしている場合、以下のように編集することができます:
  +
  +
:{{bc|<nowiki>menuentry "Arch" {
 
loader /EFI/arch/vmlinuz-arch.efi
 
loader /EFI/arch/vmlinuz-arch.efi
 
options "quiet splash ro root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff"</nowiki>}}
 
options "quiet splash ro root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff"</nowiki>}}
   
 
rEFInd でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい
 
rEFInd でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい
# [http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager]
 
# [http://www.rodsbooks.com/refind/linux.html Methods of Booting Linux]
 
   
  +
#[http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager]
=== EFISTUB/efibootmgr ===
 
  +
#[http://www.rodsbooks.com/refind/linux.html Methods of Booting Linux]
  +
  +
===EFISTUB/efibootmgr===
   
 
[[EFISTUB#ブートマネージャを使わずに直接起動する]] を見て下さい。
 
[[EFISTUB#ブートマネージャを使わずに直接起動する]] を見て下さい。
   
=== cmdline をハイジャック ===
+
===cmdline をハイジャック===
 
ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている {{ic|/proc/cmdline}} を上書きすることです。{{ic|/proc/cmdline}} は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。
 
ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている {{ic|/proc/cmdline}} を上書きすることです。{{ic|/proc/cmdline}} は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。
   
126行目: 129行目:
 
{{ic|-n}} オプションは {{ic|/etc/mtab}} へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。{{ic|cat /proc/cmdline}} を実行することでカーネルパラメータが変更されたか確認できます。
 
{{ic|-n}} オプションは {{ic|/etc/mtab}} へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。{{ic|cat /proc/cmdline}} を実行することでカーネルパラメータが変更されたか確認できます。
   
== パラメータ一覧 ==
+
==パラメータ一覧==
   
 
パラメータは {{ic|parameter}} か {{ic|1=parameter=value}} という形式です。全てのパラメータは大文字・小文字を区別します。
 
パラメータは {{ic|parameter}} か {{ic|1=parameter=value}} という形式です。全てのパラメータは大文字・小文字を区別します。
135行目: 138行目:
 
!パラメータ!!説明
 
!パラメータ!!説明
 
|-
 
|-
|{{ic|1=root=}}|| Root ファイルシステム。
+
|{{ic|1=root=}}||Root ファイルシステム。
 
|-
 
|-
|{{ic|1=ro}}|| 起動時に root デバイスを読み込み専用でマウント (デフォルト<sup>1</sup>)。
+
|{{ic|1=ro}}||起動時に root デバイスを読み込み専用でマウント (デフォルト<sup>1</sup>)。
 
|-
 
|-
|{{ic|1=rw}}|| 起動時に root デバイスを読み書き可能でマウント。
+
|{{ic|1=rw}}||起動時に root デバイスを読み書き可能でマウント。
 
|-
 
|-
|{{ic|1=initrd=}}|| initial ramdisk の場所を指定。
+
|{{ic|1=initrd=}}||initial ramdisk の場所を指定。
 
|-
 
|-
|{{ic|1=init=}}|| init プロセスで {{ic|/sbin/init}} (Arch では [[systemd]] にリンクされています) の代わりに指定したバイナリを実行する。
+
|{{ic|1=init=}}||init プロセスで {{ic|/sbin/init}} (Arch では [[systemd]] にリンクされています) の代わりに指定したバイナリを実行する。
 
|-
 
|-
|{{ic|1=init=/bin/sh}}|| シェルで起動。
+
|{{ic|1=init=/bin/sh}}||シェルで起動。
 
|-
 
|-
 
|{{ic|1=systemd.unit=}}||
 
|{{ic|1=systemd.unit=}}||
 
|-
 
|-
|{{ic|1=systemd.unit=multi-user}}|| 指定したランレベルで起動。
+
|{{ic|1=systemd.unit=multi-user}}||指定したランレベルで起動。
 
|-
 
|-
|{{ic|1=systemd.unit=rescue}}|| シングルユーザーモード (root) で起動
+
|{{ic|1=systemd.unit=rescue}}||シングルユーザーモード (root) で起動
 
|-
 
|-
|{{ic|nomodeset}}|| [[Kernel Mode Setting]] を無効にする
+
|{{ic|nomodeset}}||[[Kernel Mode Setting]] を無効にする
 
|-
 
|-
| zswap.enabled || [[Zswap]] を有効化。
+
|zswap.enabled||[[Zswap]] を有効化。
 
|-
 
|-
| video=<videosetting> || フレームバッファのデフォルトビデオを上書き。
+
|video=<videosetting>||フレームバッファのデフォルトビデオを上書き。
 
|}
 
|}
   
164行目: 167行目:
 
全てのオプションの一覧は、[https://www.kernel.org/doc/Documentation/kernel-parameters.txt カーネルのドキュメント]を見て下さい。
 
全てのオプションの一覧は、[https://www.kernel.org/doc/Documentation/kernel-parameters.txt カーネルのドキュメント]を見て下さい。
   
== 関連項目 ==
+
==関連項目==
   
* [[sysctl]]
+
*[[sysctl]]
* [[省電力設定#カーネルパラメータ]]
+
*[[省電力設定#カーネルパラメータ]]
* [http://files.kroah.com/lkn/lkn_pdf/ch09.pdf List of kernel parameters with further explanation and grouped by similar options]
+
*[http://files.kroah.com/lkn/lkn_pdf/ch09.pdf List of kernel parameters with further explanation and grouped by similar options]
* [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt Linux "Kernel Parameters" ドキュメント]
+
*[https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt Linux "Kernel Parameters" ドキュメント]

2019年7月7日 (日) 12:24時点における版

カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります:

  1. カーネルをビルドするとき。
  2. カーネルを起動するとき(普通、ブートローダから読み込まれた時)。
  3. 起動中(/proc/sys にあるファイルを使う)。

このページでは2番目の場合について詳しく記述し、Arch Linux でよく使われるカーネルパラメータの一覧を示します。

設定

ノート:

カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。

ここでは Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO のそれぞれの場合に quietsplash パラメータを加える方法を説明します。

Syslinux

  • メニューが表示されたら Tab を押してパラメータを文字列の最後に加える:
linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img quiet splash
Enter を押して加えたパラメータを使って起動します。
  • 再起動後も変更を持続させるには、/boot/syslinux/syslinux.cfg を開き、パラメータを APPEND 行に加えます:
APPEND root=/dev/sda3 quiet splash

Syslinux の設定について、詳しくは Syslinux を見て下さい。

systemd-boot

  • メニューが表示されたら e を押して一番末尾にパラメータを追加してください:
initrd=\initramfs-linux.img root=/dev/sda2 quiet splash
Enter を押すと編集したパラメータで起動が開始されます。
ノート: メニューのタイムアウト値を設定していない場合、起動時 systemd-boot のメニューが表示されるまで Space を押し続ける必要があります。
  • 再起動後も変更を永続的に適用するには、/boot/loader/entries/arch.conf (ビギナーズガイドの指示通りに EFI System Partition と設定ファイルを設定した場合) を編集して options 行に以下を追加してください:
options root=/dev/sda2 quiet splash

systemd-boot に関する詳細は systemd-boot の記事を見て下さい。

GRUB

  • メニューが表示されたら e を押しパラメータを linux 行の後ろに加えます:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash
b を押して加えたパラメータを使って起動します。
  • 再起動後も変更を持続させるには、/boot/grub/grub.cfg を開いて上と同じ行を編集することもできますが、初心者におすすめの方法は:
/etc/default/grub を開きカーネルオプションを GRUB_CMDLINE_LINUX_DEFAULT 行に追加:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
そして grub.cfg ファイルを自動生成します:
# grub-mkconfig -o /boot/grub/grub.cfg

GRUB の設定について、詳しくは GRUB を見て下さい。

GRUB Legacy

  • メニューが表示されたら e を押しパラメータを kernel 行の後ろに加えます:
kernel /boot/vmlinuz-linux root=/dev/sda3 quiet splash
b を押して加えたパラメータを使って起動します。
  • 再起動後も変更を持続させるには、/boot/grub/menu.lst を開いて上と同じように kernel 行にパラメータを追加します。

GRUB Legacy の設定について詳しくは GRUB Legacy を見て下さい。

LILO

  • パラメータを /etc/lilo.conf に追加します:
image=/boot/vmlinuz-linux
        ...
        quiet splash

LILO の設定については LILO により多くの情報があります。

rEFInd

  • 再起動後も変更を適用するには、/boot/EFI/arch/refind_linux.conf を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば:
"Boot to X"   "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro rootfstype=ext4 quiet splash
  • rEFInd で OS の自動検知を無効にしていて、代わりに /boot/EFI/refind/refind.conf で OS を定義して OS をロードしている場合、以下のように編集することができます:
menuentry "Arch" {
	loader /EFI/arch/vmlinuz-arch.efi
	options "quiet splash ro root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff"

rEFInd でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい

  1. Configuring the rEFInd Bootmanager
  2. Methods of Booting Linux

EFISTUB/efibootmgr

EFISTUB#ブートマネージャを使わずに直接起動する を見て下さい。

cmdline をハイジャック

ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている /proc/cmdline を上書きすることです。/proc/cmdline は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。

まず、使用したいカーネルパラメータを記述したファイルを作成してください:

/root/cmdline
root=/dev/disk/by-label/ROOT ro console=tty1 logo.nologo debug

次に、バインドマウントを使ってパラメータを上書きします:

# mount -n --bind -o ro /root/cmdline /proc/cmdline

-n オプションは /etc/mtab へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。cat /proc/cmdline を実行することでカーネルパラメータが変更されたか確認できます。

パラメータ一覧

パラメータは parameterparameter=value という形式です。全てのパラメータは大文字・小文字を区別します。

ノート: リストの全てのオプションが使えるとは限りません。ほとんどのパラメータはサブシステムと連携していて、カーネルをサブシステムと一緒に動作するよう設定した時にだけ働きます。また、特定のハードウェアに依存しているパラメータもあります。
パラメータ 説明
root= Root ファイルシステム。
ro 起動時に root デバイスを読み込み専用でマウント (デフォルト1)。
rw 起動時に root デバイスを読み書き可能でマウント。
initrd= initial ramdisk の場所を指定。
init= init プロセスで /sbin/init (Arch では systemd にリンクされています) の代わりに指定したバイナリを実行する。
init=/bin/sh シェルで起動。
systemd.unit=
systemd.unit=multi-user 指定したランレベルで起動。
systemd.unit=rescue シングルユーザーモード (root) で起動
nomodeset Kernel Mode Setting を無効にする
zswap.enabled Zswap を有効化。
video=<videosetting> フレームバッファのデフォルトビデオを上書き。

1 ブートローダーによって rwro のどちらも設定されていないときは mkinitcpio はデフォルトの値として ro を使用します。ブートローダは使用する値を設定することがあります。例えば GRUB はデフォルトで rw を使用します (FS#36275 を参照)。

全てのオプションの一覧は、カーネルのドキュメントを見て下さい。

関連項目