このページの目次
カーネル操作マニュアル
Gentoo でのカスタムカーネルのコンパイル、モジュール管理、DKMS、initramfs の操作について。
ステータス確認
# インストール済みカーネル
# 現在使用しているカーネルの設定
|
# 確認できない場合: カーネルで CONFIG_IKCONFIG_PROC が無効化されている。/boot/config-$(uname -r) を確認
# ロード済みモジュール
|
# カーネルログ
|
# カーネルパラメータ (ランタイム)
カーネルのコンパイル
# ソースコードの場所
# 設定
# 設定の保存/復元
# 既にバックアップがある場合: cp /boot/config-6.6.21-gentoo .config && make olddefconfig
# コンパイル (Gentoo)
# または genkernel を使用 (自動化)
# ディストリビューション提供カーネル (Gentoo, 推奨)
# または emerge gentoo-sources + 手動コンパイル (より柔軟)
DKMS (動的カーネルモジュール)
# ステータス
# 例: mt7927/2.12, 6.6.21-gentoo, x86_64: installed
# モジュールのインストール
# アンインストール/削除
# デバッグ
# 新しいカーネルインストール後の DKMS 自動トリガーメカニズム:
# @module-rebuild は installkernel 時に dkms autoinstall を自動呼び出します
# 確認: eselect kernel list で新しいカーネルが選択されていることを確認、dkms status でステータスを確認
モジュール管理
# 一時的なロード/アンロード
# モジュールパラメータ
# 永続化: echo "options mt7927 param1=value1" > /etc/modprobe.d/mt7927.conf
# ブロックリスト (ロードを阻止)
# echo "blacklist nouveau" > /etc/modprobe.d/blacklist.conf
# echo "blacklist mt7927" > /etc/modprobe.d/blacklist-mt7927.conf
# 自動ロード (起動時)
# echo "mt7927" > /etc/modules-load.d/mt7927.conf
# ロード済みモジュールの全パラメータ
initramfs (dracut)
# initramfs の生成
# initramfs の内容確認
|
# ブート問題のデバッグ
# GRUB コマンドラインに追加: rd.debug rd.shell
# 問題が発生した場合、emergency shell に進入:
# カーネルコマンドライン (GRUB)
# /etc/default/grub:
# GRUB_CMDLINE_LINUX="quiet splash rd.lvm.vg=vg0 resume=/dev/vg0/swap"
カーネルパラメータのチューニング (sysctl)
# 一時的な設定
# 永続化
# /etc/sysctl.conf または /etc/sysctl.d/99-custom.conf:
# net.ipv4.ip_forward = 1
# vm.swappiness = 10
# 一般的なチューニング項目
# net.core.default_qdisc = fq # BBR 対応の qdisc
# net.ipv4.tcp_congestion_control = bbr # TCP 輻輳制御
# vm.swappiness = 1 # スワップを極力使用しない (0 以外で最低値)
# kernel.sysrq = 1 # Magic SysRq を有効化
# fs.inotify.max_user_watches = 524288 # inotify 監視の上限 (IDE/LSP で大量のファイルがある場合)
カーネルのデバッグ
# ブートパラメータ (GRUB コマンドラインで一時的に変更)
# single # シングルユーザーモード (メンテナンス用)
# init=/bin/bash # シェルに直接進入 (init をバイパス)
# ignore_loglevel # すべてのカーネルログを表示
# rd.break=pre-mount # dracut: ルートファイルシステムをマウントする前に停止
# Magic SysRq (カーネルの緊急時対応)
# Alt+SysRq + b → 即時再起動
# Alt+SysRq + s → ディスクの同期
# Alt+SysRq + u # 読み取り専用で再マウント
# Alt+SysRq + e → 全プロセスに SIGTERM を送信
# Alt+SysRq + i → 全プロセスに SIGKILL を送信
# 安全な再起動順序: R E I S U B (または "BUSIER" を逆にしたものを覚える)
# カーネルクラッシュ後の分析
# kdump を有効化し、crash ツールで vmcore を分析
# パフォーマンスの観測
&&