カーネル実行時の管理とトラブルシューティング

Linuxカーネルの動作をリアルタイムに把握し、必要に応じてカーネルモジュールの操作やハードウェアの問題に対応する技術は、上級管理者への第一歩です。


目次

🧠 カーネルの情報確認

現在実行中のカーネルバージョンを確認

uname -r

カーネルモジュールの依存関係の管理

depmod               # モジュール依存ファイル modules.dep を生成
cat /lib/modules/$(uname -r)/modules.dep

🔧 カーネルモジュールの操作

モジュールの一覧を表示

lsmod

モジュールの読み込み

modprobe <モジュール名>      # 推奨(依存モジュールも自動で読み込み)
insmod ./foo.ko # 直接バイナリファイルから読み込む

モジュールのアンロード

rmmod <モジュール名>         # モジュールが使われていなければ削除可能

モジュールの詳細情報を取得

modinfo <モジュール名>

⚙ モジュール設定とパラメータの制御

モジュールのパラメータ設定

cat /sys/module/<モジュール名>/parameters/

永続的な設定ファイル(起動時設定)

/etc/modprobe.d/<ファイル>.conf
# 例:snd-hda-intelモジュールに index=1 を渡す
options snd-hda-intel index=1

📂 カーネル設定と制御ファイル

/proc/sys/kernel/ の内容を確認・変更

cat /proc/sys/kernel/hostname
sudo sysctl -w kernel.hostname=myhost

永続化設定:

/etc/sysctl.conf
/etc/sysctl.d/*.conf

🧬 sysfs(/sys)によるシステム状態の確認

ls /sys/module/
ls /sys/class/net/
cat /sys/class/net/eth0/address

sysfs は動的に変化するカーネル内部情報へのインターフェースです。


🔍 ハードウェアとカーネルメッセージの調査

起動やデバイス情報

dmesg               # カーネルの初期化ログやデバイスログ
journalctl -k # systemd管理下のカーネルログ
lspci # PCIデバイス一覧
lsusb # USBデバイス一覧
lsdev # 利用中のデバイス(旧式)

⚡ udev によるデバイス管理とルール設定

udev は、デバイスの検出と /dev/ 以下のデバイスファイルの作成を動的に行います。

udev のリアルタイム監視

udevadm monitor      # udev イベントの監視

udev ルールの場所

/etc/udev/rules.d/        # 管理者設定
/lib/udev/rules.d/ # パッケージ提供

ルール例

# USBメモリを特定の名前でマウント
SUBSYSTEM=="block", ATTRS{idVendor}=="abcd", NAME="usb_custom"

反映方法:

sudo udevadm control --reload-rules

💥 カーネルダンプの取得(クラッシュ対応)

kdumpkexec を使ったクラッシュ後のメモリダンプ

kdump:カーネルクラッシュ時に別のカーネルで起動し、ダンプを取得

  • CentOS/RedHat では kdump パッケージを有効化
  • /etc/kdump.conf で保存先や対象を設定
  • systemctlで起動:
sudo systemctl enable kdump
sudo systemctl start kdump

kexec:リブートせずに別のカーネルを即時起動

kexec -l /boot/vmlinuz-xxx --initrd=/boot/initramfs-xxx.img --command-line="root=/dev/sdX1"
kexec -e # 実行して即再起動(シャットダウンプロセス省略)

⚠️ 本番環境での利用は慎重に。診断用途に向いています。


🔚 まとめ

項目コマンド・ファイル
カーネルバージョン確認uname -r
モジュール管理lsmod, modprobe, rmmod, modinfo, depmod
設定ファイル/etc/modprobe.d/, /etc/sysctl.conf, /sys/module/
udev管理udevadm, /etc/udev/rules.d/
デバイス情報dmesg, lspci, lsusb, journalctl -k
ダンプ取得kdump, kexec

💡 補足アドバイス

  • トラブルが発生したらまず dmesgjournalctl -k をチェック。
  • 不要なモジュールの読み込みはセキュリティリスクにもなり得るため、 blacklist 設定も活用しましょう。
  • udevルールのデバッグには udevadm test /sys/class/... が便利です。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次