Ubuntuでカーネルをアップグレードした後、ネットワークが切断された

Ubuntuでネットワークの問題を解決した方法

目次

新しいカーネルを自動インストールした後、Ubuntu 24.04でイーサネットネットワークが失われたという問題が発生しました。この面倒な問題は私にとって2度目だったので、同じ問題に直面している他の人々の助けになるよう、ここに解決策を記録しています。

ネットワークの問題を解決するためのコマンド

以下に、私のネットワーク接続を復元したコマンドを紹介します。まず、uname -rコマンドでカーネルのバージョンを確認してください(例:6.14.0-37-genericのように表示されます)。その後、以下のコマンド内のバージョン番号を自分の実際のカーネルバージョンに置き換えてください:

# ネットワークインターフェースとIPアドレスを確認
ifconfig

# カーネルバージョンを確認
uname -r

# パッケージリストを更新し、システムをアップグレード
sudo apt update
sudo apt upgrade

# 上記で確認したバージョン用のカーネルのエクストラモジュールをインストール
# 6.14.0-37-genericを実際のカーネルバージョンに置き換えてください
sudo apt install linux-modules-extra-6.14.0-37-generic

# 新しいカーネルモジュールを含むinitramfsを再構築
sudo update-initramfs -u

# おすすめのプロプライエタリドライバをインストール(主にNVIDIAグラフィック用)
sudo ubuntu-drivers autoinstall

# 変更を反映するために再起動
sudo reboot

問題と解決策の理解

Ubuntuが定期的なシステムアップデートの過程で新しいカーネルバージョンに自動的にアップグレードする際、ネットワークドライバが新しいカーネルのブートファイルシステムに正しく含まれていないことがあります。これは特に、Ubuntu 24.04のカーネルアップグレード後によく見られ、特に特定のネットワークハードウェア(追加のカーネルモジュールが必要なハードウェア)を持つシステムで発生しやすいです。

この問題が起こる理由

  1. カーネルモジュールはバージョンに依存: 各カーネルバージョンには独自のドライバモジュールが必要です。
  2. initramfsが不完全な場合: ブート時に読み込まれる初期RAMファイルシステム(initramfs)が、すべての必要なネットワークドライバを含んでいない場合があります。
  3. エクストラモジュールパッケージが欠落: 新しいカーネルバージョン用のlinux-modules-extraパッケージが自動的にインストールされていない場合があります。

解決策の動作原理

上述のコマンドは以下のようにして問題を解決します:

  1. カーネルエクストラモジュールのインストール: linux-modules-extra-<version>-genericパッケージには、ベースのカーネルパッケージには含まれていない多くのネットワークドライバが含まれています。これらのモジュールがないと、ネットワークハードウェアが認識されません。

  2. initramfsの再構築: update-initramfs -uコマンドにより、必要なすべてのカーネルモジュール(ネットワークドライバを含む)がinitramfsにパッケージ化されます。これは重要です。initramfsはルートファイルシステムがマウントされる前まで読み込まれており、ネットワークインターフェースなどの重要なハードウェアのドライバが必要です。

  3. プロプライエタリドライバのインストール: ubuntu-drivers autoinstallコマンドは主にグラフィックドライバ(特にNVIDIA)を処理しますが、ネットワーク問題を直接解決するわけではありません。ただし、カーネルアップグレードにより複数のドライバが失われた場合、すべてのプロプライエタリドライバが正しくインストールされていることを確認できます。

  4. 再起動: これにより、正しく構成されたinitramfsとともに新しいカーネルが読み込まれ、ネットワーク接続が復元されます。

再起動後、ネットワークは復元されるはずです。ifconfigまたはip aコマンドを再度実行して、割り当てられたIPアドレスを持つネットワークインターフェースが表示されていることを確認してください。Ubuntuのバージョンを確認して互換性を確認する必要がある場合は、Ubuntuのバージョンを確認する方法がいくつかあります。

サーバーを使用しており、ネットワーク接続を復元した後にネットワーク設定を構成する必要がある場合は、Ubuntu Serverで静的IPアドレスを変更する方法ガイドがさらにネットワーク構成に役立つかもしれません。

非常に良いボラト!

有用なリンク