【LinuC 201試験】2.01 システムの起動とLinuxカーネルのまとめ②|Linux初学者向け解説【カーネルコンパイル・udev】

※本ページはプロモーションが含まれています

こんにちは!いつもブログを読んでいただき、ありがとうございます。

前回の記事では、LinuC 201試験の最初の重要テーマである「システムの起動(ブートプロセス)」についてまとめました。まだご覧になっていない方は、流れを理解するために、ぜひ前回の記事からチェックしてみてください。

👉 【前回記事】 2.01 システムの起動とLinuxカーネルのまとめ①

今回は、その続きとなる後半パートです。テーマは「カーネルのコンパイル」と「トラブルシューティング」です。

「コンパイル」と聞くと、少し難しそうに感じるかもしれません。でも、手順とコマンドの意味さえ整理できれば、恐れることはありません!試験でも頻出のポイントですので、一つずつ丁寧に一緒に確認していきましょう。

📌 今回は後半の2つのサブテーマを解説します!

📌 この記事で扱う範囲

  • ブートプロセスとGRUB ← 前回の記事で
  • システム起動のカスタマイズ ← 前回の記事で
  • Linuxカーネルの構成要素 ← 前回の記事で
  • Linuxカーネルのコンパイル → 今日はココ!
  • カーネル実行時における管理とトラブルシューティング → 今日はココ!

2.01.4 Linuxカーネルのコンパイル

なぜカーネルを再構築(コンパイル)するのか?

通常はディストリビューション標準のカーネルをそのまま使いますが、以下のような理由から、自分でソースコードをコンパイル(ビルド)することができます。新しいカーネルをコンパイルすることを「カーネルの再構築」といいます。

  • 不要な機能を削除して、システムを軽量化したい
  • 最新のカーネル機能をいち早く試したい
  • 特定ハードウェア用のパッチを適用したい

カーネルを再構築する場合、カーネルモジュールもあわせてコンパイルし直す必要があります。

コンパイルの手順(6ステップ)

試験では「順番」が問われることもあるため、流れをイメージしておきましょう。

① カーネルの設定  (make menuconfig 等)
      ↓
② カーネルのビルド(make bzImage)
      ↓
③ モジュールのビルド    (make modules)
      ↓
④ モジュールのインストール(make modules_install)
      ↓
⑤ カーネルのインストール  (make install)
      ↓
⑥ ブートローダーの設定更新(grub2-mkconfig 等)

重要!make ターゲット一覧

試験対策として最も重要なのが make コマンドのターゲット(引数)です。それぞれの役割をしっかり区別して覚えておきましょう。

① 設定に関するターゲット

ターゲット説明
make configテキストベースで一問一答形式で設定(修正が大変なため現在はほぼ使われない)
make menuconfig★最重要 CUI(テキスト画面)でメニュー形式の設定。実務でも試験でもよく出る
make xconfigGUIで設定(Qtベース)
make gconfigGUIで設定(GTK+ベース)
make oldconfig現在の設定ファイル(.config)を引き継ぎ、新機能の設定のみ問い合わせる

② ビルド・インストールに関するターゲット

ターゲット説明
make bzImage★主流 圧縮されたカーネルイメージを作成
make modulesカーネルモジュールをビルド
make modules_installビルドしたモジュールを /lib/modules/ 配下にインストール
make installカーネル本体などをシステムにインストール

③ クリーン(掃除)に関するターゲット

ビルドをやり直す際などに使います。強さの違いを覚えておきましょう。

ターゲット削除範囲強さ
make cleanビルドで生成されたオブジェクトファイル等(.config以外)
make mrproperclean の範囲 + 設定ファイル(.config)も削除
make distcleanmrproper の範囲 + patchが作成したファイルも削除

ここがポイント! clean < mrproper < distclean の順に削除範囲が広がります。 試験では「設定ファイルも含めて初期化したい場合は?」→ mrproper または distclean という問われ方が典型的です!


💡 独学での実機演習に不安がある方へ

カーネルのコンパイルや設定変更は、失敗するとOSが起動しなくなるリスクがあります。「自分のPCで試すのは怖い…」という方も多いのではないでしょうか。

安全な環境で実機操作を学びたい、プロの講師に質問しながら確実にスキルを身につけたい場合は、スクールを活用するのも賢い選択肢です。

【PR】▶ Winスクール – 全国教室で実機学習!Linuxサーバー構築講座はこちら


2.01.5 カーネル実行時における管理とトラブルシューティング

カーネルメッセージの確認

システム起動時やデバイス接続時に、カーネルが出力するメッセージを確認することはトラブルシューティングの基本です。

dmesg コマンド

カーネルのリングバッファ(一時的な記録領域)の内容を表示します。

dmesg                   # カーネルメッセージを表示
dmesg -T                # タイムスタンプを人間が読める形式で表示
dmesg | grep -i error   # エラーメッセージのみ抽出

journalctl -k コマンド

systemdを採用しているシステムでは、ジャーナルログからカーネルメッセージを確認できます。

journalctl -k           # カーネルメッセージを表示(-k は --dmesg の短縮形)

ハードウェア情報の確認コマンド

試験範囲には、ハードウェア情報を確認するコマンドも含まれます。

コマンド説明
lspciPCIデバイスの一覧を表示(グラフィックボード・ネットワークカード等)
lsusbUSBデバイスの一覧を表示
lsdevデバイスのリソース情報を表示(procinfo パッケージ)

sysctl によるカーネルパラメータの管理

Linuxでは、/proc ディレクトリ以下のファイルを使って、カーネルの情報を取得したり、カーネルの動作を変更したりできます。これを「カーネルパラメータ」といいます。

sysctl(システムコントロール) は、Linuxカーネルのパラメータを実行中のまま確認・変更できるコマンドです。

sysctl -a                             # すべてのパラメータを表示
sysctl net.ipv4.ip_forward            # 特定のパラメータを確認
sysctl -w net.ipv4.ip_forward=1       # パラメータを一時的に変更(再起動で元に戻る)
sysctl -p                             # 設定ファイルを読み込んで適用

パラメータは /proc/sys/ 以下のファイルとしても参照・変更できます。

# sysctl -w と同じ効果
echo 1 > /proc/sys/net/ipv4/ip_forward

設定を永続化する(再起動しても有効にする)方法:

設定ファイル説明
/etc/sysctl.confカーネルパラメータの設定ファイル
/etc/sysctl.d/個別設定ファイルを置くディレクトリ(こちらが現在の主流)
# /etc/sysctl.conf の設定例
net.ipv4.ip_forward = 1   # IPv4パケット転送を有効化
vm.swappiness = 10        # スワップの使用頻度を下げる

設定ファイルを変更した後は sysctl -p で反映させます。


udevによるデバイス管理

udev は、Linuxにおける「デバイス管理の仕組み」です。

ハードウェアが接続された際に、動的にデバイスファイル(/dev/sdb など)を作成・削除する役割を担っています。

udev ルールファイル

udev の動作はルールファイルでカスタマイズできます。

ディレクトリ説明
/lib/udev/rules.d/パッケージが提供するデフォルトルール
/etc/udev/rules.d/管理者が作成するカスタムルール(優先度高)

覚えておきたいコマンド:udevadm

コマンド説明
udevadm info <デバイスパス>デバイスの詳細情報を表示
udevadm monitorデバイスの接続・切断イベントをリアルタイム監視
udevadm control --reload-rulesルールファイルを再読み込み
udevadm triggerルールを全デバイスに再適用

udevadmはudevに問い合わせ・操作を行うためのコマンドラインツールです。

# 例:ストレージの情報を確認
udevadm info /dev/sda1

# 例:デバイスイベントをリアルタイムで確認
udevadm monitor

【PR】▶ 実務直結のオンライン講座はこちら


まとめ

お疲れ様でした!今回の記事で学んだ内容を振り返りましょう。

サブテーマ重要ポイント
2.01.4 カーネルのコンパイルmake のターゲット一覧(menuconfig・bzImage・mrproper・distclean の違い)
2.01.5 実行時の管理dmesg・lspci・lsusb、sysctl コマンドと /etc/sysctl.conf、udev・udevadm

これで2.01「システムの起動とLinuxカーネル」の全範囲をカバーできました!

LinuC 101・102の勉強法が気になる方はこちらもどうぞ 👉 LinuC 101・102 合格体験記

勉強、大変だと思いますが、焦らず一つずつ積み重ねていきましょう。

皆さんにとって、今日も素敵な1日になりますように!


参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html

コメントを残す

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

CAPTCHA