テクノロジーガイド

カーネル起動パラメータの変更とトラブルシューティング

1 min read システム管理 更新されました 22 Oct 2025
カーネル起動パラメータの変更方法と安全な手順
カーネル起動パラメータの変更方法と安全な手順

起動時のカーネルパラメータは、一時的にGrubの編集で変更してテストできます。問題が解決したら /etc/default/grub を編集して sudo update-grub で永続化します。GPUやドライバ障害などでXが起動しない場合は nomodesetblacklist=モジュール名pfix-nox などを試してください。

パソコンの起動時に表示されるスクリーンショット(Grubやスプラッシュ画面の例)

概要

カーネルの起動パラメータは、ブートローダーの設定ファイルにテキストとして保存され、カーネルが初期化(init)時に読み取ります。起動時の問題解決、新機能のテスト、ドライバの切り替え、機能の一時無効化などで頻繁に使います。ここでは、現在のパラメータ確認、Grubでの一時編集、永続化、代表的な例(GPUトラブル対応)と安全な作業手順を説明します。

現在の起動パラメータを確認する

起動時にカーネルへ渡されたパラメータは /proc/cmdline に記録されています。端末で次を実行して確認できます。

cat /proc/cmdline

通常はデフォルトで「quiet splash」が表示され、Grubメニューは隠れていることが多いです。

Grubメニューやブートローダーの選択画面の写真

起動中に一時的にパラメータを編集する(Grub)

  1. コンピュータを再起動します。
  2. スプラッシュ画面が出たら「Shift」キーを押し続けます(ディストリビューションや設定で異なることがあります)。
  3. Grubメニューが表示されたら、編集したいカーネルを矢印で選びます。複数のカーネルバージョンが表示される場合があります。
  4. 選択した項目で「e」キーを押すと、そのエントリの設定が編集できます。

注意: 初心者は念のため既存の安定したカーネルを残してから作業してください。問題が発生しても元に戻せるよう、動作中のカーネルは保持しておきます。

Grubエントリ編集画面の例(Linux行の編集)

実際の編集方法

編集画面で、Linux という語で始まる行にカーソルを移動します。矢印キーで移動し、行末に新しいパラメータをスペースで区切って追加します。たとえば既存が quiet splash ならその後に追加します。カーネルは読めない(無効な)トークンを無視することが多いため、誤記があっても致命的にならない場合がありますが、慎重に入力してください。

Linux行にパラメータを追加するスクリーンショット

編集後、追加した設定で一時的に起動するには「Ctrl+x」または画面に示されたキーで起動します。この変更は「一度だけ」の適用です。再起動すると元の設定に戻ります。

代表的なパラメータ例と用途(GPUトラブルのケース)

問題: GPUドライバ更新によりXサーバが起動しない。

対処例:

  • nomodeset — カーネルのモード設定を無効化して、ユーザ空間のドライバに頼らないで起動する。グラフィックモード設定の問題を回避する際に有効。
  • blacklist=module名 — 指定したモジュールを起動時に読み込まないようにする。問題のあるモジュールをブロックするために使う(例: blacklist=nouveau)。
  • pfix-nox — Xを起動させずコンソールで起動する。GUIで起動できないときにコンソールに入り修正やドライバの再インストールを行う。
  • pfix=xorgwizard — X設定ウィザードを起動してドライバや解像度の選択の手助けを行う(ディストリビューションによっては非対応の場合あり)。

編集してブートし、問題が解決するか確認します。効果がある場合は後述の永続化を行います。

永続化する(Grub設定を書き換える)

テストで問題が解決したなら、変更を恒久化します。端末で好きなエディタを使い、/etc/default/grub を編集します。

例(geditを使う):

sudo gedit /etc/default/grub

ファイル内の GRUB_CMDLINE_LINUX_DEFAULT 行を探し、引用符内に新しいパラメータを追加します(スペースで区切る)。編集後は保存し、以下を実行して設定を反映します。

sudo update-grub

これで再起動しても新しいパラメータが適用されます。

/etc/default/grub をテキストエディタで編集している様子の写真

重要: GRUB_CMDLINE_LINUXGRUB_CMDLINE_LINUX_DEFAULT は意味が異なる場合があります。ディストリビューションや用途に応じてどちらに追加するか確認してください。

他のブートローダーについて

このガイドは主にGrubに関するものです。他のブートローダー(LILO、Syslinux、systemd-boot(旧Gummiboot)、efibootmgr など)は設定方法が異なります。使用しているブートローダーが異なる場合は、そのドキュメントを参照してください。

安全な作業のためのミニ手順(SOP)

  1. 重要データをバックアップする(可能ならスナップショットや外部バックアップ)。
  2. 現在の設定を記録する: cat /proc/cmdline と /etc/default/grub のバックアップ。
  3. Grubの一時編集で問題を再現・検証する。
  4. うまくいったら /etc/default/grub を編集して sudo update-grub を実行。
  5. 再起動して最終確認。問題があれば元の設定に戻す。

ロール別チェックリスト

初心者:

  • 安定カーネルを残す。
  • 重要なコマンドはコピーしておく。
  • まずは一時変更でテストする。

中級管理者:

  • /etc/default/grub のバックアップを取り、差分を記録する。
  • 失敗時のブート可能なレスキューメディアを用意する。

上級管理者:

  • 複数マシンへ適用する前にステージング環境で検証する。
  • カスタムinitramfsやSecure Bootの影響を確認する。

トラブルシューティングとよくある失敗例

  • 誤記や重複したトークンを入れると無視されることが多く、直接の致命的失敗にはつながりにくいが、意図した効果が出ない。
  • Secure Bootが有効だと、モジュールのブラックリストや署名されていないドライバにより起動が制限される場合がある。
  • 組み込み向けや特殊なディストリでは、pfix-* パラメータが未実装の場合がある。

対処:

  • ブートログ(journalctl -b や /var/log/syslog)で起動時メッセージを確認する。
  • セーフモードやリカバリーモードで起動してログを調査する。

検証手順(テストケース)

  1. 変更前に cat /proc/cmdline を保存。
  2. Grubで一時変更を行い再起動。
  3. 問題が再現しないことを確認する(Xが起動する、サービスが動作する等)。
  4. 永続化後に再起動して同様の確認を行う。

受け入れ基準:

  • システムが通常通り起動する。
  • 問題が報告されていたエラーが再発しない。
  • ログに致命的なエラーが記録されていない。

1行用語集

  • カーネル起動パラメータ: ブート時にカーネルへ渡すテキストオプション。
  • Grub: 多くのLinuxで使われるブートローダー。
  • initramfs: 初期RAMファイルシステム、初期化処理で使われる。

まとめ

カーネル起動パラメータの編集は、問題解決やテストに強力で安全な手法です。まずはGrubの一時編集で試し、効果があれば /etc/default/grub を修正して sudo update-grub で永続化してください。常にバックアップを取り、レスキューメディアを用意することを忘れないでください。

重要: ブートローダーやディストリビューションによって細かい挙動が異なります。特殊な環境では個別のドキュメントを参照してください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Debian 11 に Podman をインストールして使う
コンテナ

Debian 11 に Podman をインストールして使う

Apt-pinning入門:Debianで複数リポジトリを管理
Linux

Apt-pinning入門:Debianで複数リポジトリを管理

OptiScalerでFSR 4を全対応ゲームに導入する方法
ゲーム

OptiScalerでFSR 4を全対応ゲームに導入する方法

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法
ネットワーク

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法

AndroidでSDカードのインストールエラーを修正する方法
トラブルシューティング

AndroidでSDカードのインストールエラーを修正する方法

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定
Linux ネットワーク

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定