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のカーネルアップグレード後によく見られ、特に特定のネットワークハードウェア(追加のカーネルモジュールが必要なハードウェア)を持つシステムで発生しやすいです。
この問題が起こる理由
- カーネルモジュールはバージョンに依存: 各カーネルバージョンには独自のドライバモジュールが必要です。
- initramfsが不完全な場合: ブート時に読み込まれる初期RAMファイルシステム(initramfs)が、すべての必要なネットワークドライバを含んでいない場合があります。
- エクストラモジュールパッケージが欠落: 新しいカーネルバージョン用の
linux-modules-extraパッケージが自動的にインストールされていない場合があります。
解決策の動作原理
上述のコマンドは以下のようにして問題を解決します:
-
カーネルエクストラモジュールのインストール:
linux-modules-extra-<version>-genericパッケージには、ベースのカーネルパッケージには含まれていない多くのネットワークドライバが含まれています。これらのモジュールがないと、ネットワークハードウェアが認識されません。 -
initramfsの再構築:
update-initramfs -uコマンドにより、必要なすべてのカーネルモジュール(ネットワークドライバを含む)がinitramfsにパッケージ化されます。これは重要です。initramfsはルートファイルシステムがマウントされる前まで読み込まれており、ネットワークインターフェースなどの重要なハードウェアのドライバが必要です。 -
プロプライエタリドライバのインストール:
ubuntu-drivers autoinstallコマンドは主にグラフィックドライバ(特にNVIDIA)を処理しますが、ネットワーク問題を直接解決するわけではありません。ただし、カーネルアップグレードにより複数のドライバが失われた場合、すべてのプロプライエタリドライバが正しくインストールされていることを確認できます。 -
再起動: これにより、正しく構成されたinitramfsとともに新しいカーネルが読み込まれ、ネットワーク接続が復元されます。
再起動後、ネットワークは復元されるはずです。ifconfigまたはip aコマンドを再度実行して、割り当てられたIPアドレスを持つネットワークインターフェースが表示されていることを確認してください。Ubuntuのバージョンを確認して互換性を確認する必要がある場合は、Ubuntuのバージョンを確認する方法がいくつかあります。
サーバーを使用しており、ネットワーク接続を復元した後にネットワーク設定を構成する必要がある場合は、Ubuntu Serverで静的IPアドレスを変更する方法ガイドがさらにネットワーク構成に役立つかもしれません。
