Ubuntuでカーネルアップデート後にNVIDIAドライバーが読み込まれない問題を解決する方法

Ubuntuカーネルのアップデートによって、NVIDIAシステムが正常に起動しても、プロプライエタリドライバがロードされなくなる場合があります。目に見える症状は様々でnvidia-smi、ドライバとの通信ができないというメッセージが表示されたり、CUDAアプリケーションがGPUを認識しなくなったり、デスクトップがソフトウェアレンダリングに切り替わったり、あるいはmodprobe nvidia起動自体が失敗したりすることがあります。現実的な解決策は、すべてを一度に再インストールするのではなく、どのレイヤーで問題が発生したかを特定することです。

このリファレンスでは、Ubuntu にパッケージ化された NVIDIA ドライバーと Canonical の最新のガイダンスに焦点を当てています。2026 年 10 月現在、Ubuntu はubuntu-driversほとんどのシステムに対してツールまたは追加ドライバー アプリケーションの使用を推奨しており、利用可能な場合はプリコンパイル済みで署名済みのカーネル モジュールの使用を推奨しています。NVIDIA の Ubuntu ドキュメントも Ubuntu 22.04、24.04、および 26.04 をサポートしていますが、新しいブランチではパッケージ名が異なるため、お使いのマシンで実際に提供されていない限り、例からブランチ番号をコピーしないでください。

クイック診断チェックリスト

チェック指示それはあなたに何を伝えているのか
カーネルを実行中uname -r対応するNVIDIAモジュールを必要とする、正確なカーネルABI。
ドライバーの状態nvidia-smiユーザー空間がロードされたNVIDIAカーネルモジュールと通信できるかどうか。
ロードされたモジュールlsmod | grep -E 'nvidia|nouveau'現在、そのGPUをNVIDIAとNouveauのどちらが所有しているか。
おすすめパッケージsudo ubuntu-drivers listUbuntuがハードウェアに適していると判断したドライバのブランチ。
セキュアブートmokutil --sb-state署名されていないサードパーティ製カーネルモジュールを拒否できるかどうか。
カーネルログsudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module'APIの不一致、署名拒否、またはプローブの失敗に関する有用な手がかり。
Ubuntuターミナルに、uname -rコマンドの実行結果、失敗したnvidia-smiコマンド、およびlsmodコマンドで返されたNVIDIAモジュールがないことが表示されています。
アップデート後の典型的な不具合パターン:新しいカーネルは実行されているが、NVIDIAモジュールがロードされていない。お使いのシステムにおけるカーネルお​​よびドライバの正確なバージョンは異なる場合があります。

1. 問題が現在のカーネルで発生したことを確認してください。

まず、実行中のカーネルと現在のNVIDIAの状態を記録します。

uname -r
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'

nvidia-smiが失敗し、nvidiaにモジュールが表示されない場合lsmod、障害は CUDA またはデスクトップ アプリケーション レイヤーより下位のレベルで発生しています。 がnvidia-smi報告された場合Failed to initialize NVML: Driver/library version mismatch、Canonical はこれを、ドライバの更新後に発生することが多いユーザー空間/カーネル モジュールの不一致として文書化しています。新しいモジュールが既にインストールされている場合は、再起動で解決する可能性があります。

GRUBから古いカーネルを選択でき、そこでドライバが動作するのであれば、新しいカーネルには使用可能なNVIDIAモジュールが欠けているという強い証拠となります。古いカーネルは一時的な代替手段としては有効ですが、最終的な解決策ではありません。なぜなら、現在のカーネルとドライバスタックが互換性を持つ必要があるからです。

2. Ubuntuにどのドライバブランチを推奨するか尋ねる

標準的なUbuntuデスクトップまたはワークステーションでは、ブランチを推測するのではなく、Ubuntu独自のドライバ選択ロジックを使用してください。

sudo apt update
sudo ubuntu-drivers list

ほとんどのデスクトップおよびゲームシステムでは、Canonicalはパッケージではなく通常のUDAドライバの使用を推奨しています-server。コンピューティングサーバーでは、サーバーのガイダンスに従い、ubuntu-drivers list --gpgpu必要に応じて使用してください。システムが以前にNVIDIAのスタンドアロン.runインストーラまたはサードパーティのリポジトリを使用してインストールされていた場合、パッケージソースを混在させると診断が困難になる場合があります。Canonicalは、ドキュメントに記載された方法以外でインストールされたドライバはUbuntuが提供するコンポーネントを上書きし、セキュアブートに干渉する可能性があると明示的に警告しています。

Ubuntuターミナルにubuntu-drivers listとubuntu-drivers devicesが表示され、NVIDIAドライバーが推奨としてマークされています。
別のマシンからバージョンをハードコーディングするのではなく、Ubuntuのドライバ検出機能を使用して、インストールされているGPUに適したブランチを特定してください。

3. 再構築する前にセキュアブートを確認してください

セキュアブートは、NVIDIAモジュールがディスク上に存在しているにもかかわらずロードされない一般的な原因です。その状態を確認してください。

mokutil --sb-state
sudo modprobe nvidia

セキュアブートが有効になっていて、modprobeなどのメッセージが返される場合Key was rejected by service、カーネルはモジュールの信頼性を強制しています。Ubuntuは、サポートされているamd64リリースで、セキュアブートによるカーネルモジュールの検証を長年強制してきました。Canonicalは、署名済みのプリコンパイル済みNVIDIAモジュールが利用可能な場合は、それを使用することを推奨しています。意図的にDKMSを使用する場合、Ubuntuは再起動時にマシンオーナーキー(MOK)を作成して登録することを要求する場合があります。

トラブルシューティングの最初のステップとして、セキュアブートを無効にしないでください。これは管理された環境下での短時間の診断実験にはなりますが、通常は署名付きモジュールをインストールするか、MOKを正しく登録する方がより良い解決策となります。Canonicalは、UEFIセキュアブートのドキュメントで登録フローを説明しています。

UbuntuターミナルでSecureBootが有効になっていることと、modprobe nvidiaがキー拒否メッセージで失敗していることが示されています。
署名拒否は、GPUの欠落ではなく、セキュアブートの信頼性の問題を示しています。ユーザー空間ライブラリを繰り返し再インストールするのではなく、モジュール署名またはMOK登録の問題を解決してください。

4. 実行中のカーネルに対応するNVIDIAモジュールが存在するかどうかを確認します。

Ubuntuのプリコンパイル済みNVIDIAパッケージはカーネルABIに紐づいています。DRIVER_BRANCH以下に示すブランチに置き換えてくださいubuntu-drivers list。

DRIVER_BRANCH=XXX
apt-cache policy linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

パッケージが現在のカーネル用にインストールされている場合は、以下のセキュアブート、Nouveau、およびログのチェックに進んでください。パッケージがインストールされていない場合は、完全に一致するモジュールパッケージをインストールしてください。

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Canonicalは、例えば`/dependencies/`/dependencies/`のようなフレーバーメタパッケージのインストールもサポートしておりlinux-modules-nvidia-${DRIVER_BRANCH}-generic、これにより将来のカーネルアップグレード時に対応するNVIDIAモジュールが取得されます。正確なパッケージ名は、Ubuntuのリリース、カーネルフレーバー、ドライバブランチ、およびサーバー版を使用しているかどうかによって異なるため、確定する前にAPTによって表示される候補を確認してください。

Ubuntuターミナルが、NVIDIAカーネルモジュールパッケージと現在のカーネルヘッダーのapt-cacheポリシーを確認しています。
パッケージポリシーを確認することで、カーネル固有のNVIDIAモジュールが不足している問題と、ユーザー空間ドライバの問題を区別するのに役立ちます。

5. DKMSを使用する場合は、最新のカーネルヘッダーが存在することを確認してください。

DKMSは、実行中のカーネルに合わせてモジュールをビルドします。そのため、対応するカーネルヘッダーが必要です。Canonicalは、カスタムカーネルなど、プリコンパイル済みのモジュールが利用できない場合に、主にDKMSの使用を推奨しています。

sudo apt install linux-headers-$(uname -r)
dkms status

NVIDIA DKMS エントリに現在のカーネルのビルドが成功したと表示されない場合は、ランダムにパッケージを削除する前に、ビルドログを確認してください/var/lib/dkms/。よくある失敗例としては、ヘッダーファイルの欠落、サポートされていないコンパイラ/カーネルの組み合わせ、またはモジュール署名の問題などが挙げられます。前提条件を修正した後、適切な DKMS パッケージを再インストールするか、Ubuntu の自動パスを使用してください。

sudo ubuntu-drivers install --include-dkms

このコマンドは、DKMSが実際に必要な場合にのみ使用してください。Canonicalの最新のデスクトップ向けドキュメントによると、特にセキュアブートを使用する場合は、ほとんどのユーザーにとってプリコンパイル済みのモジュールが推奨されています。

Ubuntuターミナルが、現在実行中のカーネル用のlinux-headersをインストールしています。
DKMSが現在のカーネル向けにNVIDIAモジュールをコンパイルする場合、一致するカーネルヘッダーが必要です。

6. 利用可能な場合は、不足しているプリコンパイル済みモジュールをインストールします。

ステップ4で現在のカーネルにプリコンパイル済みのNVIDIAモジュールが不足していることが示された場合は、明示的にインストールしてAPTにinitramfsを再構築させます。

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

次に、APTが依存関係エラーなしで完了したことを確認してください。dpkg --force-*カーネルモジュール、ユーザー空間ライブラリ、メタパッケージのバージョンが互換性のない状態になる可能性があるため、パッケージのインストールを強制的に行うのは避けてください。

どの分岐を使用すればよいか分からない場合は、より安全な一般的な修理方法は次のとおりです。

sudo ubuntu-drivers install

Canonical社は、ubuntu-drivers追加ドライバーアプリケーションと同じロジックを使用し、デフォルトではセキュアブートで動作することが確認されている、事前にビルドされた署名済みドライバーを選択すると述べています。

Ubuntuターミナルで、現在のカーネル用のlinux-modules-nvidiaパッケージをインストールし、initramfsを更新しています。
カーネル固有のモジュールパッケージをインストールすることで、ドライバブランチは存在するものの、新しいカーネルに対応するNVIDIAモジュールが欠落しているというよくある問題を解決できます。

7. パッケージ変更後に再起動する

ここでは再起動は単なる形式的なものではありません。実行中のカーネルは、APTが既にディスク上のユーザー空間ライブラリをアップグレードしているにもかかわらず、古いNVIDIAモジュールをメモリ上に保持している可能性があります。Canonicalは、アップデート後にNVMLドライバ/ライブラリのバージョン不一致が発生する原因として、この点を具体的に文書化しています。

sudo reboot

再起動後、すぐに再インストールしないでください。まず、次のセクションのコマンドを使用して結果を確認してください。

Ubuntuのターミナル画面に、ubuntu-driversのインストール操作とそれに続くsudo rebootの実行結果が表示されています。
ドライバまたはカーネルモジュールを変更した後は、再起動してカーネルが新しくインストールされたNVIDIAモジュールをロードし、ユーザー空間コンポーネントが同じバージョンに戻るようにしてください。

8. NVIDIAモジュールがロードされていることを確認します。

走る:

nvidia-smi
lsmod | grep nvidia
cat /proc/driver/nvidia/version

修復が成功したことを示す3つの重要な兆候があります。GPUnvidia-smiが一覧表示され、lsmodNVIDIAモジュールが表示され、/proc/driver/nvidia/version実行中のモジュールバージョンが報告されます。CUDAワークロードの場合は、以前にエラーが発生したアプリケーションまたはフレームワークを再度実行してくださいnvidia-smi。これだけではドライバ間の通信が証明されるだけで、環境内のすべてのCUDAライブラリが互換性があることを保証するものではありません。

Ubuntuターミナルに、nvidia-smiコマンドの正常な出力と、lsmodコマンドで一覧表示されたNVIDIAモジュールが表示されます。
正常な最終状態:nvidia-smiがGPUと通信でき、NVIDIAカーネルモジュールがロードされている状態。表示されている値は例であり、必須バージョンではありません。

それでも失敗する場合は、症状に基づいて次のアクションを選択してください。

「ドライバー/ライブラリのバージョン不一致」

まず再起動してください。次に、実行中のカーネルモジュールバージョンとインストール済みのパッケージを比較してください。Canonical社は、更新されたユーザー空間コンポーネントが、メモリにロードされている古いモジュールと一時的に不一致を起こす可能性があると指摘しています。再起動後も不一致が続く場合は、パッケージソースの混在や複数のドライバブランチの有無を確認してください。

「デバイスが見つかりませんでした」と表示され、Nouveauがロードされます。

チェック:

lsmod | grep nouveau

Ubuntuのサーバードキュメントによると、このような状況ではNouveauがNVIDIAの独自ドライバと競合する可能性があるとのことです。Nouveauがロードされていて、独自ドライバを使用する予定がある場合は、Canonicalのドキュメントにあるように、Nouveauをブロックリストに追加してinitramfsを再構築する必要があります。

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot

ディスク上に存在するという理由だけでNouveauをブロックリストに追加しないでください。まず、実際にロードされていること、そしてそれが障害の原因となっていることを確認してください。

modprobe nvidiaキーが拒否されたと表示されます

セキュアブートの手順に戻ってください。可能な限り署名済みのUbuntuモジュールを使用するか、DKMSモジュールのMOK登録を完了してください。同じ未署名モジュールを繰り返し再インストールしても、信頼の判断は変わりません。

新しいカーネルには互換性のあるモジュールパッケージがありません

動作確認済みの古いカーネルを一時的に起動し、システムを最新の状態に保ち、Ubuntuが新しいカーネルに対応するプリコンパイル済みモジュールを提供しているかどうかを確認してください。カスタムカーネルを意図的に使用している場合は、DKMSが適している可能性がありますが、ビルドログを読み、セキュアブートの署名を確認してください。セキュリティアップデートのメンテナンスプランがない限り、古いカーネルを無期限に固定することは避けてください。

助けを求める前に収集すべきコマンド

これらのコマンドは、システムを変更することなく、コンパクトな診断パッケージを提供します。

uname -a
lspci -nnk | grep -A3 -i nvidia
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'
mokutil --sb-state
dkms status
apt-cache policy 'nvidia-driver-*' | sed -n '1,160p'
sudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module' | tail -n 120

Ubuntuのリリースバージョン(lsb_release -aまたは/etc/os-release)、カーネルの正確なバージョン(uname -r)、そしてドライバーがUbuntuパッケージ、NVIDIAのリポジトリ、PPA、またはスタンドアロンインストーラーのいずれを通じてインストールされたかを明記してください。「アップデート後にドライバーが壊れた」という一般的な記述よりも、これらの詳細情報の方が通常は重要です。

実践的な予防策

  • ubuntu-drivers通常のデスクトップシステムでは、Ubuntuのワークフローまたは追加ドライバのワークフローを推奨します。
  • カーネルフレーバーのメタパッケージはインストールしたままにしておくと、今後のカーネルアップデートで対応するNVIDIAモジュールが提供されるようになります。
  • カーネルまたはNVIDIAドライバのアップグレード後は、メモリ内/ディスク上のスタックが混在した状態を継続するのではなく、再起動してください。
  • 新しいカーネルがGPUドライバで起動することを確認するまでは、少なくとも1つは正常に動作することが確認済みのカーネルを用意しておいてください。
  • 意図的に影響を管理しない限り、Ubuntuパッケージ、PPA、NVIDIAのスタンドアロンインストーラー、および複数のリポジトリを混在させることは避けてください。

公式資料

Canonicalの現在の手順は、「UbuntuデスクトップへのNVIDIAドライバーのインストール」および「UbuntuサーバーへのNVIDIAドライバーのインストール」に記載されています。DKMS固有のガイダンスについては、「DKMSパッケージを使用して独自のNVIDIAモジュールを構築する」を参照してください。NVIDIAのベンダードキュメントは、「 Ubuntu用NVIDIAドライバーインストールガイド」で入手できます。

ドライバのブランチ、カーネルABI、パッケージ名はリリースによって異なります。例示されているバージョンを普遍的なものとして扱うのではなく、必ずシステムとAPTによって報告される値を使用してください。

コメントを残す

SLESでZypperリポジトリの更新に失敗したエラー500を修正する

SLESでZypperリポジトリの更新に失敗したエラー500を修正する

SUSE Linux Enterprise Server で HTTP 500 エラーが発生し、Zypper の更新に失敗した場合に診断を行います。障害が発生しているリポジトリを特定し、プロキシと登録状況を確認してから、メタデータを安全に更新します。

Pardusパッケージマネージャー(PETA)と標準APTコマンドライン:現在のPardusが実際に使用しているもの

Pardusパッケージマネージャー(PETA)と標準APTコマンドライン:現在のPardusが実際に使用しているもの

いわゆるPardusパッケージマネージャー「PETA」とAPTを比較し、現在のPardusパッケージツールを明確にし、デスクトップでの使用または管理に適したインターフェースを選択する。

Ubuntuでカーネルアップデート後にNVIDIAドライバーが読み込まれない問題を解決する方法

Ubuntuでカーネルアップデート後にNVIDIAドライバーが読み込まれない問題を解決する方法

Ubuntuカーネルのアップデート後にNVIDIAドライバーの読み込みが停止する問題を解決するには、カーネルモジュール、セキュアブート、DKMS、ヘッダー、Nouveau、およびバージョンの不一致をチェックしてください。

旧型ハードウェアにPardus 23をインストールする方法:ステップバイステップ

旧型ハードウェアにPardus 23をインストールする方法:ステップバイステップ

レガシーBIOS、起動可能なUSBメモリ、安全なパーティション分割、および低スペックハードウェアのインストール後チェック機能を備えた、古い64ビットPCにPardus 23.4 XFCEをインストールします。

Gooroom OSのセキュリティモデル解説:トラステッドブート、OS保護、ブラウザサンドボックス

Gooroom OSのセキュリティモデル解説:トラステッドブート、OS保護、ブラウザサンドボックス

Gooroom OSが信頼済みブート、実行ファイルとOSの保護、ブラウザ制御をどのように多層的に構築しているか、そしてユーザーがサンドボックスに関して確認すべき事項について学びましょう。

メモリ不足のVPSでDebian 12を動作させ、MySQLをダウンさせる際にメモリ不足によるクラッシュを起こさない方法

メモリ不足のVPSでDebian 12を動作させ、MySQLをダウンさせる際にメモリ不足によるクラッシュを起こさない方法

Debian 12のメモリ負荷を診断し、MariaDBまたはMySQLのサイズを適正化し、スワップ領域を慎重に追加し、VPSがそのワークロードを処理できるかどうかを確認します。

Pardus LinuxデスクトップでVPN接続を設定する方法

Pardus LinuxデスクトップでVPN接続を設定する方法

Pardus 25 DesktopでOpenVPN、WireGuard、OpenConnect、またはIPsec VPN接続を設定し、ルーティング、DNS、およびトンネルの状態を確認します。

SLES 15とRHEL 9:エンタープライズサーバーのパフォーマンス比較

SLES 15とRHEL 9:エンタープライズサーバーのパフォーマンス比較

SLES 15とRHEL 9のパフォーマンスに関する事実、カーネルストリーム、TuneDプロファイル、ワークロード変数、および両システムを公平にベンチマークする方法について比較します。

systemdシャットダウン時に再起動時にハングアップするSUSE Linuxサーバーの問題を解決する

systemdシャットダウン時に再起動時にハングアップするSUSE Linuxサーバーの問題を解決する

systemdシャットダウン中にハングアップするSUSE Linuxサーバーを診断して修復する方法を学びましょう。そのためには、停止しているジョブを特定し、前回の起動履歴を確認し、ブロックしているサービスやマウントを修正する必要があります。

Pardus LinuxでWindowsユーザー向けにXFCEパネルをカスタマイズする方法

Pardus LinuxでWindowsユーザー向けにXFCEパネルをカスタマイズする方法

Pardus XFCEを、下部タスクバー、アプリケーションメニュー、お気に入りランチャー、ウィンドウを開くボタン、システムトレイ、時計などを使って、使い慣れた環境のように使えるように設定しましょう。変更すべき箇所とレイアウトのテスト方法を学びます。