手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 カーネルモジュールの基本設定 – modules-load と modprobe を管理する

関連する記事

Ubuntu 26.04 でカーネルモジュールを扱う場合、今すぐ読み込む操作と、再起動後も自動で読み込む設定を分けて考えます。modprobe は即時読み込み、/etc/modules-load.d/*.conf は起動時の永続読み込みに使います。

この記事では、br_netfilteroverlay を例に、現在の読み込み状態、modprobe/etc/modules-load.d/my.confsystemd-modules-load.service、再起動後確認、戻し方を扱います。

modules-load と modprobe の違い

  • modprobe は、現在稼働中のカーネルへモジュールを読み込むコマンドです。
  • /etc/modules-load.d/*.conf は、起動時に読み込むモジュール名を並べる設定です。
  • modprobe.d は、モジュールのオプションや blacklist などを扱う別の仕組みです。
  • 永続化したい場合は、即時読み込みと起動時読み込みの両方を確認します。

現在の状態を確認する

まず対象モジュールが読み込まれているか確認します。Kubernetes や container runtime の準備では br_netfilteroverlay を確認する場面があります。

lsmod | grep -E 'br_netfilter|overlay' || true
modinfo br_netfilter
modinfo overlay

モジュールを即時読み込みする

modprobe で現在のシステムにモジュールを読み込みます。エラーが出る場合は、モジュール名、カーネル、パッケージ状態を確認します。

sudo modprobe br_netfilter
sudo modprobe overlay
lsmod | grep -E 'br_netfilter|overlay'

永続読み込み設定を作成する

再起動後も読み込むモジュールは /etc/modules-load.d/my.conf に並べます。1 行に 1 モジュール名だけを書きます。

sudo tee /etc/modules-load.d/my.conf >/dev/null <<'EOF'
br_netfilter
overlay
EOF
sudo chmod 0644 /etc/modules-load.d/my.conf

systemd-modules-load を再起動する

設定ファイルを作成したら、systemd-modules-load.service を再起動して読み込みを確認します。

sudo systemctl restart systemd-modules-load.service
systemctl status systemd-modules-load.service --no-pager
lsmod | grep -E 'br_netfilter|overlay'

起動時に読み込まれることを確認する

永続設定は再起動後の確認まで行います。再起動後に lsmod とサービス状態を確認します。

sudo reboot
lsmod | grep -E 'br_netfilter|overlay'
systemctl status systemd-modules-load.service --no-pager
journalctl -b -u systemd-modules-load.service --no-pager

Kubernetes ノードで確認する項目

Kubernetes ノードでは、カーネルモジュールと sysctl の両方を確認します。br_netfilter が読み込まれていないと、bridge 経由のパケット処理に関わる sysctl が存在しないことがあります。

lsmod | grep br_netfilter
sysctl net.bridge.bridge-nf-call-iptables || true
sysctl net.bridge.bridge-nf-call-ip6tables || true

モジュール名の確認

モジュール名はファイル名やパッケージ名と完全に同じとは限りません。modinfofind で存在を確認できます。

modinfo br_netfilter
modinfo overlay
find /lib/modules/$(uname -r) -name '*br_netfilter*' -o -name '*overlay*'

読み込みを解除する

利用中でないモジュールは modprobe -r で解除できます。ただし、他の機能が利用中の場合は解除できません。永続設定からも削除しないと、再起動後に再び読み込まれます。

sudo modprobe -r overlay
sudo modprobe -r br_netfilter
lsmod | grep -E 'br_netfilter|overlay' || true

永続設定を戻す

起動時読み込みをやめる場合は、設定ファイルをバックアップしてから削除または内容を変更し、サービスを再起動します。

sudo cp -a /etc/modules-load.d/my.conf /etc/modules-load.d/my.conf.bak.$(date +%Y%m%d%H%M%S)
sudo rm /etc/modules-load.d/my.conf
sudo systemctl restart systemd-modules-load.service

modprobe.d を使う場面

/etc/modprobe.d/ は、モジュールのオプション指定や blacklist を扱う場合に使います。単に起動時に読み込みたいだけであれば、/etc/modules-load.d/ にモジュール名を置く方が目的に合います。

ls -l /etc/modprobe.d
modprobe --showconfig | grep -E 'br_netfilter|overlay' || true

確認項目

  • 対象モジュール名が modinfo で確認できること。
  • sudo modprobe モジュール名 がエラーなく通ること。
  • /etc/modules-load.d/my.conf に 1 行 1 モジュール名で記載していること。
  • systemd-modules-load.service が失敗していないこと。
  • 再起動後も lsmod で読み込み状態を確認していること。

まとめ

Ubuntu 26.04 のカーネルモジュール管理では、即時読み込みの modprobe と、起動時読み込みの /etc/modules-load.d/*.conf を分けて扱います。Kubernetes やネットワーク機能の前提になるモジュールは、読み込む理由、sysctl との関係、再起動後の状態まで確認しておくことが重要です。

関連する記事
Ubuntu 26.04 カーネルモジュールの基本設定 – modules-load と modprobe を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る