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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎パラメータ一覧: 情報を更新)
(他言語へのリンクを追加)
 
(3人の利用者による、間の11版が非表示)
2行目: 2行目:
 
[[en:Kernel parameters]]
 
[[en:Kernel parameters]]
 
[[es:Kernel parameters]]
 
[[es:Kernel parameters]]
  +
[[pt:Kernel parameters]]
  +
[[ru:Kernel parameters]]
 
[[zh-hans:Kernel parameters]]
 
[[zh-hans:Kernel parameters]]
 
カーネルにオプションを渡してその動作を制御するには、3つの方法があります。
 
カーネルにオプションを渡してその動作を制御するには、3つの方法があります。
8行目: 10行目:
 
# カーネルを起動するとき-コマンドラインパラメータを使う (通常はブートローダを使う)。
 
# カーネルを起動するとき-コマンドラインパラメータを使う (通常はブートローダを使う)。
 
# 実行時に {{ic|/proc/sys/}} にあるファイルを通して実行する。(参照 [[sysctl]]) と {{ic|/sys/}} があります。
 
# 実行時に {{ic|/proc/sys/}} にあるファイルを通して実行する。(参照 [[sysctl]]) と {{ic|/sys/}} があります。
  +
  +
{{Note|ロード可能なモジュールのオプションは {{ic|/etc/modprobe.d/}} にある ''.conf'' ファイルで設定することができます。[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う]] を見て下さい。}}
   
 
この3つの方式では、設定可能なオプションの有無、名称、指定方法が異なります。このページでは 2 番目の方法 (カーネルコマンドラインパラメータ) についてのみ説明し、Arch Linux で最もよく使われるカーネルパラメータの一覧を示します。
 
この3つの方式では、設定可能なオプションの有無、名称、指定方法が異なります。このページでは 2 番目の方法 (カーネルコマンドラインパラメータ) についてのみ説明し、Arch Linux で最もよく使われるカーネルパラメータの一覧を示します。
16行目: 20行目:
   
 
{{Note|すべてのカーネルパラメータは大文字と小文字を区別します}}
 
{{Note|すべてのカーネルパラメータは大文字と小文字を区別します}}
 
{{Tip|ロード可能なモジュールのオプションは {{ic|/etc/modprobe.d/}} にある ''.conf'' ファイルで設定することができます。[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う]] を見て下さい。}}
 
   
 
==設定==
 
==設定==
34行目: 36行目:
 
*メニューが表示されたら {{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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img '''quiet splash'''}}
   
 
:{{ic|Enter}} を押して加えたパラメータを使って起動します。
 
:{{ic|Enter}} を押して加えたパラメータを使って起動します。
40行目: 42行目:
 
*再起動後も変更を持続させるには、{{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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw '''quiet splash'''}}
   
 
Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。
 
Syslinux の設定について、詳しくは [[Syslinux]] を見て下さい。
48行目: 50行目:
 
*メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください:
 
*メニューが表示されたら {{ic|e}} を押して一番末尾にパラメータを追加してください:
   
:{{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 ''quiet splash''}}
+
: {{bc|1=initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw '''quiet splash'''}}
   
 
:{{ic|Enter}} を押すと編集したパラメータで起動が開始されます。
 
:{{ic|Enter}} を押すと編集したパラメータで起動が開始されます。
59行目: 61行目:
 
*再起動後も変更を永続的に適用するには、{{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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw '''quiet splash'''}}
   
 
systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。
 
systemd-boot に関する詳細は [[systemd-boot]] の記事を見て下さい。
71行目: 73行目:
 
:{{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}} 行に追加:
87行目: 89行目:
 
*メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|kernel}} 行の後ろに加えます:
 
*メニューが表示されたら {{ic|e}} を押しパラメータを {{ic|kernel}} 行の後ろに加えます:
   
:{{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}}
+
: {{bc|1=kernel /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw '''quiet splash'''}}
   
 
:{{ic|b}} を押して加えたパラメータを使って起動します。
 
:{{ic|b}} を押して加えたパラメータを使って起動します。
108行目: 110行目:
 
===rEFInd===
 
===rEFInd===
   
  +
* 目的のメニューエントリで {{ic|+}}、{{ic|F2}}、または {{ic|Insert}} を押し、サブメニューエントリでもう一度押します。文字列の最後にカーネルパラメータを追加します。
*再起動後も変更を適用するには、{{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=root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=\boot\initramfs-linux.img '''quiet splash'''}}
   
  +
: {{ic|Enter}} を押して、これらのパラメータで起動します。
*rEFInd で OS の自動検知を無効にしていて、代わりに {{ic|/boot/EFI/refind/refind.conf}} で OS を定義して OS をロードしている場合、以下のように編集することができます:
 
   
  +
*再起動後も変更を適用するには、{{ic|/boot/EFI/arch/refind_linux.conf}} を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば:
:{{bc|<nowiki>menuentry "Arch" {
 
loader /EFI/arch/vmlinuz-arch.efi
 
options "quiet splash ro root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff"</nowiki>}}
 
   
  +
: {{bc|1="Boot using default options" "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw '''quiet splash'''"}}
rEFInd でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい
 
   
  +
* rEFInd で OS の自動検知を無効にしていて、代わりに {{ic|/boot/EFI/refind/refind.conf}} で OS を定義して OS をロードしている場合、以下のように編集することができます:
#[http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager]
 
  +
#[http://www.rodsbooks.com/refind/linux.html Methods of Booting Linux]
 
  +
: {{bc|<nowiki>
  +
menuentry "Arch Linux" {
  +
...
  +
options "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw </nowiki>'''quiet splash'''<nowiki>"
  +
...
  +
}
  +
</nowiki>}}
  +
  +
rEFInd の構成の詳細については、[[rEFInd]] の記事を参照してください。
   
 
===EFISTUB/efibootmgr===
 
===EFISTUB/efibootmgr===
132行目: 141行目:
   
 
===cmdline をハイジャック===
 
===cmdline をハイジャック===
  +
 
ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている {{ic|/proc/cmdline}} を上書きすることです。{{ic|/proc/cmdline}} は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。
 
ブートローダーにアクセスすることすらできない場合でも、(root 権限があれば) カーネルパラメータを変更してデバッグを有効にできる可能性があります。その方法とは、カーネルパラメータが保存されている {{ic|/proc/cmdline}} を上書きすることです。{{ic|/proc/cmdline}} は root でも書き込むことができないので、バインドマウントを使ってパスをマスクすることでハイジャックします。
   
 
まず、使用したいカーネルパラメータを記述したファイルを作成してください:
 
まず、使用したいカーネルパラメータを記述したファイルを作成してください:
   
{{hc|/root/cmdline|2=root=/dev/disk/by-label/ROOT ro console=tty1 logo.nologo debug}}
+
{{hc|/root/cmdline|2=
  +
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 ro console=tty1 logo.nologo debug
  +
}}
   
 
次に、バインドマウントを使ってパラメータを上書きします:
 
次に、バインドマウントを使ってパラメータを上書きします:
144行目: 156行目:
 
{{ic|-n}} オプションは {{ic|/etc/mtab}} へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。{{ic|cat /proc/cmdline}} を実行することでカーネルパラメータが変更されたか確認できます。
 
{{ic|-n}} オプションは {{ic|/etc/mtab}} へのマウントの追加をスキップするため、root が読み取り専用でマウントされていても機能します。{{ic|cat /proc/cmdline}} を実行することでカーネルパラメータが変更されたか確認できます。
   
==パラメータ一覧==
+
== パラメータ一覧 ==
   
  +
以下のリストは完全ではありません。全てのオプションの一覧は、[https://docs.kernel.org/admin-guide/kernel-parameters.html カーネルのドキュメント]を見て下さい。
パラメータは {{ic|parameter}} か {{ic|1=parameter=value}} という形式です。全てのパラメータは大文字・小文字を区別します。
 
 
{{Note|リストの全てのオプションが使えるとは限りません。ほとんどのパラメータはサブシステムと連携していて、カーネルをサブシステムと一緒に動作するよう設定した時にだけ働きます。また、特定のハードウェアに依存しているパラメータもあります。}}
 
 
以下のリストは完全ではありません。全てのオプションの一覧は、[https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html カーネルのドキュメント]を見て下さい。
 
   
 
{| class="wikitable"
 
{| class="wikitable"
 
!パラメータ!!説明
 
!パラメータ!!説明
 
|-
 
|-
  +
| init || {{ic|/sbin/init}} ではなく指定されたバイナリを init プロセスとして実行します。{{pkg|systemd-sysvcompat}} パッケージは、{{ic|/usr/lib/systemd/systemd}} へのシンボリックリンクを {{ic|/sbin/init}} に作成して [[systemd]] を使用します。{{ic|/bin/sh}} を指定することで、シェルを起動するように設定できます。
| root= || ルートファイルシステム カーネルがサポートしているデバイス名のフォーマットについては [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n192 init/do_mounts.c] を参照してください。 [[initramfs]] と [[udev]] を使用した場合、 [[永続的なブロックデバイスの命名|より多くの名前形式]]がサポートされています
 
|-
 
| rootflags= || ルートファイルシステムのマウントオプション。リマウント(つまり {{man|8|systemd-remount-fs.service}} によって)適用できないオプションを設定するのに便利です。例えば、[[XFS]] ルートボリュームの {{ic|discard}} オプションなどです。
 
 
|-
 
|-
  +
| initrd || 初期 RAM ディスクの場所を指定します。UEFI [[ブートローダー]] や [[EFISTUB]] の場合、パスの区切り文字にはバックスラッシュ ({{ic|\}}) を使用しなければなりません。
| ro || 起動時にルートファイルシステムを読み取り専用でマウントします (デフォルト<sup>1</sup>)
 
 
|-
 
|-
  +
| [[dm-crypt/システム設定#cryptdevice|cryptdevice]] || [[dm-crypt]] で暗号化されたパーティションの場所と[[Wikipedia:device mapper|デバイスマッパー]]名を指定します。
| rw || 起動時にルートデバイスを読み書き可能でマウント
 
 
|-
 
|-
  +
| debug || カーネルのデバッグ (イベントログレベル) を有効化します。
| initrd= || initial ramdisk の場所を指定。 UEFI [[ブートローダー]] や [[EFISTUB]] ではファイルパスの区切り文字としてバックスラッシュ ({{ic|\}}) を使用するしなければなりません
 
 
|-
 
|-
  +
| lsm || Linux セキュリティモジュールの初期化順を設定します。[[AppArmor]]、[[SELinux]]、[[TOMOYO]] を有効化するために使用されます。
| init= || Initプロセスとして {{ic|/sbin/init}} の代わりに指定されたバイナリを実行します。{{pkg|systemd-sysvcompat}} パッケージは {{ic|/sbin/init}} を {{ic|/usr/lib/systemd/systemd}} にシンボリックリンクし [[systemd]] を使用します。シェルを起動するには、{{ic|/bin/sh}} に設定します。
 
 
|-
 
|-
  +
| maxcpus || SMPカーネルが起動時に使用するプロセッサーの最大数を指定します。
| init=/bin/sh || シェルでブートします
 
 
|-
 
|-
| systemd.unit= || [[systemd#Targets|指定されたターゲット]]で起動します
+
| mem || 指定された量のメモリを強制的に使います
 
|-
 
|-
  +
| netdev || ネットワークデバイスのパラメータ。
| resume= || [[サスペンドとハイバネート|ハイバネート]]のために使うスワップデバイスを指定します
 
 
|-
 
|-
| nomodeset || [[Kernel Mode Setting]] を無効化します
+
| nomodeset || [[カーネルモード設定]] を無効化します
 
|-
 
|-
  +
| panic || カーネルパニック時に自動的に再起動するまでの時間。
| zswap.enabled || [[Zswap]]を有効化します
 
 
|-
 
|-
| panic= || カールパニックが発生した際自動的に再起動する時間を指定します
+
| resume || [[ハイバート]]から復帰するとき使用するスワップデバイスを指定します
 
|-
 
|-
| debug || カーネデバッグ有効化します (イベントログレベル).
+
| ro || 起動時にートデバイス読み取り専用でマウントします (デフォト<sup>1</sup>)
 
|-
 
|-
  +
| root || ルートファイルシステム。カーネルのサポートされているデバイス名形式については [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n254 init/do_mounts.c] を見てください。[[initramfs]] と [[udev]] を使用する場合、[[永続的なブロックデバイスの命名|さらに多くのデバイス名形式]]がサポートされていることに注意してください。
| mem= || 指定された量のメモリを強制的に使います
 
 
|-
 
|-
  +
| rootflags || ルートファイルシステムのマウントオプション。再マウント (つまり、{{man|8|systemd-remount-fs.service}}) によって適用できないオプションを設定するときに便利です。例えば、[[XFS]] ルートボリュームの {{ic|discard}} オプションがあります。
| maxcpus= || SMPカーネルが起動時に使用するプロセッサーの最大値を指定します
 
 
|-
 
|-
  +
| rw || 起動時にルートデバイスを読み書き可能でマウントします。
| selinux= || SELinuxを有効もしくは無効にします
 
 
|-
 
|-
  +
| systemd.unit || [[systemd#ターゲット|指定されたターゲット]]を起動します。
| netdev= || ネットワークデバイスのパラメータを指定します
 
 
|-
 
|-
| video= || フレームバッファビデオのデフォルトを上書きします
+
| video || フレームバッファビデオのデフォルトを上書きします
 
|}
 
|}
   
<sup>1</sup> [[ブートローダー]]によって {{ic|rw}} {{ic|ro}} のどちらも設定されていないときは [[mkinitcpio]] はデフォルト値として {{ic|ro}} を使用しますブートローダは使用する値を設定することがあります。えば GRUBデフォルトで {{ic|rw}} を使用します ({{Bug|36275}} を参照)。
+
# {{ic|ro}} {{ic|rw}} もカーネルコマンドラインで明示的に設定されていない場合、カーネル{{ic|rw}} を使用します ({{man|7|bootparam|デバイス固有ではない全般を参照 ブート引数}}) ただし、[[mkinitcpio]] はカーネルのデフォルトをオーバーライドするデフォルト値として {{ic|ro}} を使用します ({{man|8|mkinitcpio|EARLY INIT ENVIRONMENT}} を参照) ブートローダーに、独自に設定されたデフォルトある場合もあります。たとえば、''grub-mkconfig'' は {{ic|rw}} を使用します (リファレンスとして {{Bug|36275}} を参照){{Note|1=mkinitcpio の [[fsck#ブート時間チェック|fsck フック]] ([https://bbs.archlinux.org/viewtopic.php?pid=1303683] を参照) を使う場合、または [[F2FS#一部のオプションで再マウントが不可能|F2FS をルートファイルシステムとして使用する場合]]、{{ic|rw}} が必要です}}
   
 
==関連項目==
 
==関連項目==
   
  +
* [https://docs.kernel.org/admin-guide/kernel-parameters.html "The kernel’s command-line parameters" documentation]
*[[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" ドキュメント]
 

2023年7月20日 (木) 02:53時点における最新版

カーネルにオプションを渡してその動作を制御するには、3つの方法があります。

  1. カーネルを構築するとき、カーネルの config ファイルで。詳しくは カーネル#コンパイルを見てください。
  2. カーネルを起動するとき-コマンドラインパラメータを使う (通常はブートローダを使う)。
  3. 実行時に /proc/sys/ にあるファイルを通して実行する。(参照 sysctl) と /sys/ があります。
ノート: ロード可能なモジュールのオプションは /etc/modprobe.d/ にある .conf ファイルで設定することができます。カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う を見て下さい。

この3つの方式では、設定可能なオプションの有無、名称、指定方法が異なります。このページでは 2 番目の方法 (カーネルコマンドラインパラメータ) についてのみ説明し、Arch Linux で最もよく使われるカーネルパラメータの一覧を示します。

ほとんどのパラメータはサブシステムに関連しており、カーネルがそれらのサブシステムを組み込んで設定されている場合にのみ機能します。また、それらが関連するハードウェアの存在にも依存します。

カーネルコマンドラインパラメータは parameter または parameter=value というフォーマットで表されます。

ノート: すべてのカーネルパラメータは大文字と小文字を区別します

設定

ノート:

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

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

Syslinux

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

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

systemd-boot

  • メニューが表示されたら e を押して一番末尾にパラメータを追加してください:
initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
Enter を押すと編集したパラメータで起動が開始されます。
ノート:
  • メニュータイムアウトの値を設定していない場合、systemd-boot メニューを表示させるために、起動中に Space を押し続ける必要があります。
  • ブートメニューからパラメータを編集できない場合は、/boot/loader/loader.conf を編集して editor 1 を追加して編集可能にする必要があるかもしれません。
  • 再起動後も変更を永続的に適用するには、/boot/loader/entries/arch.conf (ビギナーズガイドの指示通りに EFI System Partition と設定ファイルを設定した場合) を編集して options 行に以下を追加してください:
options root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw 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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw 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

  • 目的のメニューエントリで +F2、または Insert を押し、サブメニューエントリでもう一度押します。文字列の最後にカーネルパラメータを追加します。
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=\boot\initramfs-linux.img quiet splash
Enter を押して、これらのパラメータで起動します。
  • 再起動後も変更を適用するには、/boot/EFI/arch/refind_linux.conf を編集して、パラメータを全ての(もしくは必要な)行に追加してください、例えば:
"Boot using default options"   "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
  • rEFInd で OS の自動検知を無効にしていて、代わりに /boot/EFI/refind/refind.conf で OS を定義して OS をロードしている場合、以下のように編集することができます:
menuentry "Arch Linux" {
	...
	options  "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
	...
}

rEFInd の構成の詳細については、rEFInd の記事を参照してください。

EFISTUB/efibootmgr

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

dracut

dracut はカーネルパラメータを initramfs に埋め込むことができるので、ブートローダの設定から省略することができます。dracut#カーネルコマンドラインオプション を参照してください。

cmdline をハイジャック

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

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

/root/cmdline
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 ro console=tty1 logo.nologo debug

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

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

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

パラメータ一覧

以下のリストは完全ではありません。全てのオプションの一覧は、カーネルのドキュメントを見て下さい。

パラメータ 説明
init /sbin/init ではなく指定されたバイナリを init プロセスとして実行します。systemd-sysvcompat パッケージは、/usr/lib/systemd/systemd へのシンボリックリンクを /sbin/init に作成して systemd を使用します。/bin/sh を指定することで、シェルを起動するように設定できます。
initrd 初期 RAM ディスクの場所を指定します。UEFI ブートローダーEFISTUB の場合、パスの区切り文字にはバックスラッシュ (\) を使用しなければなりません。
cryptdevice dm-crypt で暗号化されたパーティションの場所とデバイスマッパー名を指定します。
debug カーネルのデバッグ (イベントログレベル) を有効化します。
lsm Linux セキュリティモジュールの初期化順を設定します。AppArmorSELinuxTOMOYO を有効化するために使用されます。
maxcpus SMPカーネルが起動時に使用するプロセッサーの最大数を指定します。
mem 指定された量のメモリを強制的に使います
netdev ネットワークデバイスのパラメータ。
nomodeset カーネルモード設定 を無効化します。
panic カーネルパニック時に自動的に再起動するまでの時間。
resume ハイバネートから復帰するときに使用するスワップデバイスを指定します。
ro 起動時にルートデバイスを読み取り専用でマウントします (デフォルト1)。
root ルートファイルシステム。カーネルのサポートされているデバイス名形式については init/do_mounts.c を見てください。initramfsudev を使用する場合、さらに多くのデバイス名形式がサポートされていることに注意してください。
rootflags ルートファイルシステムのマウントオプション。再マウント (つまり、systemd-remount-fs.service(8)) によって適用できないオプションを設定するときに便利です。例えば、XFS ルートボリュームの discard オプションがあります。
rw 起動時にルートデバイスを読み書き可能でマウントします。
systemd.unit 指定されたターゲットを起動します。
video フレームバッファビデオのデフォルト値を上書きします。
  1. rorw もカーネルコマンドラインで明示的に設定されていない場合、カーネルは rw を使用します (bootparam(7) § デバイス固有ではない全般を参照 ブート引数) ただし、mkinitcpio はカーネルのデフォルトをオーバーライドするデフォルト値として ro を使用します (mkinitcpio(8) § EARLY INIT ENVIRONMENT を参照) ブートローダーには、独自に設定されたデフォルトがある場合もあります。たとえば、grub-mkconfigrw を使用します (リファレンスとして FS#36275 を参照)
    ノート: mkinitcpio の fsck フック ([1] を参照) を使う場合、または F2FS をルートファイルシステムとして使用する場合rw が必要です。

関連項目