「カーネルパラメータ」の版間の差分
(→パラメータ一覧: 情報を更新) |
(→パラメータ一覧: 英語版と同期) |
||
167行目: | 167行目: | ||
| init= || Initプロセスとして {{ic|/sbin/init}} の代わりに指定されたバイナリを実行します。{{pkg|systemd-sysvcompat}} パッケージは {{ic|/sbin/init}} を {{ic|/usr/lib/systemd/systemd}} にシンボリックリンクし [[systemd]] を使用します。シェルを起動するには、{{ic|/bin/sh}} に設定します。 |
| init= || Initプロセスとして {{ic|/sbin/init}} の代わりに指定されたバイナリを実行します。{{pkg|systemd-sysvcompat}} パッケージは {{ic|/sbin/init}} を {{ic|/usr/lib/systemd/systemd}} にシンボリックリンクし [[systemd]] を使用します。シェルを起動するには、{{ic|/bin/sh}} に設定します。 |
||
|- |
|- |
||
+ | | lsm || [[AppArmor]]、[[SELinux]]、[[TOMOYO]] を有効にするために使用する Linux セキュリティモジュールの初期化順序を設定します。 |
||
− | | init=/bin/sh || シェルでブートします |
||
|- |
|- |
||
| systemd.unit= || [[systemd#Targets|指定されたターゲット]]で起動します |
| systemd.unit= || [[systemd#Targets|指定されたターゲット]]で起動します |
2022年1月18日 (火) 17:01時点における版
カーネルにオプションを渡してその動作を制御するには、3つの方法があります。
- カーネルを構築するとき、カーネルの
config
ファイルで。詳しくは カーネル#コンパイルを見てください。 - カーネルを起動するとき-コマンドラインパラメータを使う (通常はブートローダを使う)。
- 実行時に
/proc/sys/
にあるファイルを通して実行する。(参照 sysctl) と/sys/
があります。
この3つの方式では、設定可能なオプションの有無、名称、指定方法が異なります。このページでは 2 番目の方法 (カーネルコマンドラインパラメータ) についてのみ説明し、Arch Linux で最もよく使われるカーネルパラメータの一覧を示します。
ほとんどのパラメータはサブシステムに関連しており、カーネルがそれらのサブシステムを組み込んで設定されている場合にのみ機能します。また、それらが関連するハードウェアの存在にも依存します。
カーネルコマンドラインパラメータは parameter
または parameter=value
というフォーマットで表されます。
目次
設定
カーネルパラメータを設定するには、ブートメニューが出た時にそのメニューを編集して一時的にセットするのと、ブートローダの設定ファイルを修正する方法があります。
ここでは 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
を押しパラメータを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 でカーネルパラメータを設定する方法についての詳しい情報は以下を見て下さい
EFISTUB/efibootmgr
EFISTUB#ブートマネージャを使わずに直接起動する を見て下さい。
dracut
dracut はカーネルパラメータを initramfs に埋め込むことができるので、ブートローダの設定から省略することができます。dracut#カーネルコマンドラインオプション を参照してください。
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= | ルートファイルシステム カーネルがサポートしているデバイス名のフォーマットについては init/do_mounts.c を参照してください。 initramfs と udev を使用した場合、 より多くの名前形式がサポートされています |
rootflags= | ルートファイルシステムのマウントオプション。リマウント(つまり systemd-remount-fs.service(8) によって)適用できないオプションを設定するのに便利です。例えば、XFS ルートボリュームの discard オプションなどです。
|
ro | 起動時にルートファイルシステムを読み取り専用でマウントします (デフォルト1) |
rw | 起動時にルートデバイスを読み書き可能でマウント |
initrd= | initial ramdisk の場所を指定。 UEFI ブートローダー や EFISTUB ではファイルパスの区切り文字としてバックスラッシュ (\ ) を使用するしなければなりません
|
init= | Initプロセスとして /sbin/init の代わりに指定されたバイナリを実行します。systemd-sysvcompat パッケージは /sbin/init を /usr/lib/systemd/systemd にシンボリックリンクし systemd を使用します。シェルを起動するには、/bin/sh に設定します。
|
lsm | AppArmor、SELinux、TOMOYO を有効にするために使用する Linux セキュリティモジュールの初期化順序を設定します。 |
systemd.unit= | 指定されたターゲットで起動します |
resume= | ハイバネートのために使うスワップデバイスを指定します |
nomodeset | Kernel Mode Setting を無効化します |
zswap.enabled | Zswapを有効化します |
panic= | カーネルパニックが発生した際に自動的に再起動する時間を指定します |
debug | カーネルでデバッグを有効化します (イベントログレベル). |
mem= | 指定された量のメモリを強制的に使います |
maxcpus= | SMPカーネルが起動時に使用するプロセッサーの最大値を指定します |
selinux= | SELinuxを有効もしくは無効にします |
netdev= | ネットワークデバイスのパラメータを指定します |
video= | フレームバッファビデオのデフォルトを上書きします |
1 ブートローダーによって rw
と ro
のどちらも設定されていないときは mkinitcpio はデフォルトの値として ro
を使用します。ブートローダは使用する値を設定することがあります。例えば GRUB はデフォルトで rw
を使用します (FS#36275 を参照)。