「カーネルパラメータ」の版間の差分
(ページの作成:「Category:カーネル en:Kernel parameters es:Kernel parameters zh-CN:Kernel parameters カーネルの挙動を操作するために、カーネルにオ...」) |
Kusakata.bot (トーク | 投稿記録) 細 (文字列「www.archlinuxjp.org」を「www.archlinux.jp」に置換) |
||
(2人の利用者による、間の5版が非表示) | |||
2行目: | 2行目: | ||
[[en:Kernel parameters]] |
[[en:Kernel parameters]] |
||
[[es:Kernel parameters]] |
[[es:Kernel parameters]] |
||
− | [[zh- |
+ | [[zh-hans:Kernel parameters]] |
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります: |
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります: |
||
13行目: | 13行目: | ||
== 設定 == |
== 設定 == |
||
+ | {{Note| |
||
− | {{Note|{{ic|$ cat /proc/cmdline}} を実行することで起動時のパラメータとあなたによって変更がされたかを確認できます。}} |
||
+ | * {{ic|$ cat /proc/cmdline}} を実行することで起動時のパラメータとあなたによって変更がされたかを確認できます。 |
||
+ | * Arch Linux の [https://www.archlinux.jp/download/ インストールメディア] は [[Wikipedia:BIOS|BIOS]] 環境なら [[Syslinux]] を、[[UEFI]] 環境なら [[systemd-boot]] を使います。 |
||
+ | }} |
||
カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。 |
カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。 |
||
− | ここでは [[Syslinux]], [[GRUB]], [[GRUB Legacy]], [[LILO]] に {{ic|quiet}} と {{ic|splash}} パラメータを加える |
+ | ここでは [[Syslinux]], [[systemd-boot]], [[GRUB]], [[GRUB Legacy]], [[LILO]] のそれぞれの場合に {{ic|quiet}} と {{ic|splash}} パラメータを加える方法を説明します。 |
− | + | === Syslinux === |
|
* メニューが表示されたら {{ic|Tab}} を押してパラメータを文字列の最後に加える: |
* メニューが表示されたら {{ic|Tab}} を押してパラメータを文字列の最後に加える: |
||
31行目: | 34行目: | ||
: {{bc|1=APPEND root=/dev/sda3 ''quiet splash''}} |
: {{bc|1=APPEND root=/dev/sda3 ''quiet splash''}} |
||
− | Syslinux の設定について、詳しくは [[Syslinux |
+ | Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。 |
− | + | === systemd-boot === |
|
− | * メニューが表示されたら {{ic|e}} を押しパラメータを |
+ | * メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください: |
+ | |||
+ | : {{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 ''quiet splash''}} |
||
+ | |||
+ | : {{ic|Enter}} を押すと編集したパラメータで起動が開始されます。 |
||
+ | |||
+ | {{Note|メニューのタイムアウト値を設定していない場合、起動時 systemd-boot のメニューが表示されるまで {{ic|Space}} を押し続ける必要があります。}} |
||
+ | |||
+ | * 再起動後も変更を永続的に適用するには、{{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''}} |
||
+ | |||
+ | systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。 |
||
+ | |||
+ | === GRUB === |
||
+ | |||
+ | * メニューが表示されたら {{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''}} |
||
51行目: | 70行目: | ||
:: {{bc|# grub-mkconfig -o /boot/grub/grub.cfg}} |
:: {{bc|# grub-mkconfig -o /boot/grub/grub.cfg}} |
||
− | GRUB の設定について、詳しくは [[GRUB |
+ | GRUB の設定について、詳しくは [[GRUB]] を見て下さい。 |
− | + | === GRUB Legacy === |
|
− | * メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加え |
+ | * メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|linux}} 行の後ろに加えます: |
: {{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}} |
: {{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}} |
||
65行目: | 84行目: | ||
GRUB Legacy の設定について詳しくは [[GRUB Legacy]] を見て下さい。 |
GRUB Legacy の設定について詳しくは [[GRUB Legacy]] を見て下さい。 |
||
− | + | === LILO === |
|
* パラメータを {{ic|/etc/lilo.conf}} に追加します: |
* パラメータを {{ic|/etc/lilo.conf}} に追加します: |
||
76行目: | 95行目: | ||
LILO の設定については [[LILO]] により多くの情報があります。 |
LILO の設定については [[LILO]] により多くの情報があります。 |
||
− | + | === rEFInd === |
|
* 再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば: |
* 再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば: |
||
89行目: | 108行目: | ||
# [http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager] |
# [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 Methods of Booting Linux] |
||
+ | |||
+ | === EFISTUB/efibootmgr === |
||
+ | |||
+ | [[EFISTUB#ブートマネージャを使わずに直接起動する]] を見て下さい。 |
||
+ | |||
+ | === cmdline をハイジャック === |
||
+ | ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている {{ic|/proc/cmdline}} を上書きすることです。{{ic|/proc/cmdline}} は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。 |
||
+ | |||
+ | まず、使用したいカーネルパラメータを記述したファイルを作成してください: |
||
+ | |||
+ | {{hc|/root/cmdline|2=root=/dev/disk/by-label/ROOT ro console=tty1 logo.nologo debug}} |
||
+ | |||
+ | 次に、バインドマウントを使ってパラメータを上書きします: |
||
+ | |||
+ | # mount -n --bind -o ro /root/cmdline /proc/cmdline |
||
+ | |||
+ | {{ic|-n}} オプションは {{ic|/etc/mtab}} へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。{{ic|cat /proc/cmdline}} を実行することでカーネルパラメータが変更されたか確認できます。 |
||
== パラメータ一覧 == |
== パラメータ一覧 == |
||
96行目: | 132行目: | ||
{{Note|リストの全てのオプションが使えるとは限りません。ほとんどのパラメータはサブシステムと連携していて、カーネルをサブシステムと一緒に動作するよう設定した時にだけ働きます。また、特定のハードウェアに依存しているパラメータもあります。}} |
{{Note|リストの全てのオプションが使えるとは限りません。ほとんどのパラメータはサブシステムと連携していて、カーネルをサブシステムと一緒に動作するよう設定した時にだけ働きます。また、特定のハードウェアに依存しているパラメータもあります。}} |
||
− | {| |
+ | {| class="wikitable" |
!パラメータ!!説明 |
!パラメータ!!説明 |
||
|- |
|- |
||
107行目: | 143行目: | ||
|{{ic|1=initrd=}}|| initial ramdisk の場所を指定。 |
|{{ic|1=initrd=}}|| initial ramdisk の場所を指定。 |
||
|- |
|- |
||
− | |{{ic|1=init=}}|| init プロセスで {{ic|/sbin/init}} (Arch では [[ |
+ | |{{ic|1=init=}}|| init プロセスで {{ic|/sbin/init}} (Arch では [[systemd]] にリンクされています) の代わりに指定したバイナリを実行する。 |
|- |
|- |
||
|{{ic|1=init=/bin/sh}}|| シェルで起動。 |
|{{ic|1=init=/bin/sh}}|| シェルで起動。 |
||
117行目: | 153行目: | ||
|{{ic|1=systemd.unit=rescue}}|| シングルユーザーモード (root) で起動 |
|{{ic|1=systemd.unit=rescue}}|| シングルユーザーモード (root) で起動 |
||
|- |
|- |
||
− | |{{ic|nomodeset}}|| [[ |
+ | |{{ic|nomodeset}}|| [[Kernel Mode Setting]] を無効にする |
|- |
|- |
||
| zswap.enabled || [[Zswap]] を有効化。 |
| zswap.enabled || [[Zswap]] を有効化。 |
||
|- |
|- |
||
+ | | video=<videosetting> || フレームバッファのデフォルトビデオを上書き。 |
||
|} |
|} |
||
− | <sup>1</sup> [[ |
+ | <sup>1</sup> [[ブートローダー]]によって {{ic|rw}} と {{ic|ro}} のどちらも設定されていないときは [[mkinitcpio]] はデフォルトの値として {{ic|ro}} を使用します。ブートローダは使用する値を設定することがあります。例えば GRUB はデフォルトで {{ic|rw}} を使用します ({{Bug|36275}} を参照)。 |
全てのオプションの一覧は、[https://www.kernel.org/doc/Documentation/kernel-parameters.txt カーネルのドキュメント]を見て下さい。 |
全てのオプションの一覧は、[https://www.kernel.org/doc/Documentation/kernel-parameters.txt カーネルのドキュメント]を見て下さい。 |
||
132行目: | 169行目: | ||
* [[省電力設定#カーネルパラメータ]] |
* [[省電力設定#カーネルパラメータ]] |
||
* [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/kernel-parameters.txt Linux "Kernel Parameters" ドキュメント] |
2017年9月21日 (木) 09:14時点における版
カーネルの挙動を操作するために、カーネルにオプションを通すタイミングは3回あります:
- カーネルをビルドするとき。
- カーネルを起動するとき(普通、ブートローダから読み込まれた時)。
- 起動中(
/proc
と/sys
にあるファイルを使う)。
このページでは2番目の場合について詳しく記述し、Arch Linux でよく使われるカーネルパラメータの一覧を示します。
目次
設定
カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。
ここでは Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO のそれぞれの場合に quiet
と splash
パラメータを加える方法を説明します。
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
を押すと編集したパラメータで起動が開始されます。
- 再起動後も変更を永続的に適用するには、
/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
を押しパラメータをlinux
行の後ろに加えます:
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 でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい
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
を実行することでカーネルパラメータが変更されたか確認できます。
パラメータ一覧
パラメータは parameter
か parameter=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 ブートローダーによって rw
と ro
のどちらも設定されていないときは mkinitcpio はデフォルトの値として ro
を使用します。ブートローダは使用する値を設定することがあります。例えば GRUB はデフォルトで rw
を使用します (FS#36275 を参照)。
全てのオプションの一覧は、カーネルのドキュメントを見て下さい。