LinuCレベル2 201試験の例題と解説
主題2.01システムの起動とLinuxカーネル
2.01.5カーネル実行時における管理とトラブルシューティング
LinuCレベル2 201試験の出題範囲から「2.01.5 カーネル実行時における管理とトラブルシューティング」についての例題を解いてみます。
このテーマは、実行中のLinuxカーネルの状態確認やトラブルシュートに関する内容が含まれます。各コマンドやファイルなどを実機で操作し、理解を深めるのがおすすめの学習方法です。
例題
Linuxシステムにおけるudevの役割に関する記述として、最も適切なものはどれですか?
- ハードウェアのファームウェアを更新し、デバイスドライバを自動的にインストールする。
- カーネルモジュールの依存関係を解決し、起動時に必要なモジュールをロードする。
- 動的に変化するデバイス情報を検知し、/devディレクトリにデバイスノードを作成する。
- ユーザーがシステムにログインする際に、必要な環境変数を設定する。
解答と解説
正解は、「3. 動的に変化するデバイス情報を検知し、/devディレクトリにデバイスノードを作成する。」です。
udevは、Linuxシステム上でハードウェアデバイスの抜き差しといったイベントを動的に検知し、その情報に基づいて/devディレクトリに適切なデバイスノードを作成、削除、および命名します。これにより、ユーザーやアプリケーションがデバイスにアクセスするための統一されたインターフェースが提供されます。
その他の選択肢は、正しくは以下となります。
ファームウェアの更新やドライバのインストールは、通常、fwupdやパッケージマネージャーなどの別のツールが担当します。
カーネルモジュールの依存関係の解決やロードは、modprobeやdepmodなどのユーティリティ、またはsystemdの初期化プロセスが担当します。
ユーザーの環境変数の設定は、.bashrcや.profile、/etc/profileなどのシェル設定ファイルによって管理されます。
udevadm infoコマンドでは認識済みのデバイス情報を表示でき、以下の例ではストレージ内に作成されたパーティション(/dev/sda1)の情報を表示しています。
[root@localhost ~]# ls -l /dev/sda1
brw-rw----. 1 root disk 8, 1 Sep 2 00:47 /dev/sda1
[root@localhost ~]# udevadm info -n /dev/sda1
P: /devices/pci0000:00/0000:00:0d.0/ata3/host2/target2:0:0/2:0:0:0/block/sda/sda1
M: sda1
R: 1
U: block
T: partition
D: b 8:1
N: sda1
L: 0
S: disk/by-id/scsi-0ATA_VBOX_HARDDISK_VB1d073ef1-22873471-part1
S: disk/by-path/pci-0000:00:0d.0-ata-1-part1
S: disk/by-id/scsi-SATA_VBOX_HARDDISK_VB1d073ef1-22873471-part1
S: disk/by-id/ata-VBOX_HARDDISK_VB1d073ef1-22873471-part1
S: disk/by-uuid/d6f31b2e-2fe5-4212-8ac3-08d52bc5873c
S: disk/by-partuuid/efc10fc1-01
S: disk/by-id/scsi-1ATA_VBOX_HARDDISK_VB1d073ef1-22873471-part1
S: disk/by-path/pci-0000:00:0d.0-ata-1.0-part1
(以下、省略)なお、udevに関しては以下で詳細を確認できます。
udev
https://wiki.gentoo.org/wiki/Udev/ja
https://docs.oracle.com/cd/F22978_01/udev/udev-AbouttheUdevDeviceManager.html
udevadmコマンド
https://www.man7.org/linux/man-pages/man8/udevadm.8.html
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 ゼウスITトレーニングセンター)