Linux でカーネルパラメータが設定されているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux でカーネルパラメータが設定されているかどうかを確認する方法を学びます。Linux システムの動作を理解し管理するために重要なカーネル設定を表示および検証するさまざまな方法を探ります。

まず、sysctl -a コマンドを使用して利用可能なすべてのカーネルパラメータをリストアップします。次に、これらのパラメータが /proc/sys 仮想ファイルシステム内でどのようにファイルとして表されるか、および cat コマンドを使用して特定のパラメータを確認する方法を学びます。最後に、永続的な設定に使用される /etc/sysctl.conf ファイルを調べることで、カーネルパラメータの設定を検証します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/echo -.-> lab-558867{{"Linux でカーネルパラメータが設定されているかどうかを確認する方法"}} linux/help -.-> lab-558867{{"Linux でカーネルパラメータが設定されているかどうかを確認する方法"}} linux/cat -.-> lab-558867{{"Linux でカーネルパラメータが設定されているかどうかを確認する方法"}} end

sysctl -a でパラメータをリストアップする

このステップでは、sysctl コマンドを使用してカーネルパラメータを表示する方法を探ります。カーネルは Linux オペレーティングシステムの核心であり、システムリソースを管理し、重要なサービスを提供します。カーネルパラメータは、カーネルの動作を制御する設定です。

sysctl コマンドを使用すると、実行時にこれらのカーネルパラメータを表示および変更できます。利用可能なすべてのカーネルパラメータの完全なリストを表示するには、-a オプションを使用できます。

ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンから開くことができます。

次のコマンドを入力し、Enter キーを押します。

sysctl -a

このコマンドは、それぞれが特定のカーネル設定を表す長いパラメータのリストを出力します。出力形式は通常 parameter_name = value です。

たとえば、次のような行が表示されることがあります。

kernel.hostname = your-hostname
kernel.ostype = Linux
kernel.osrelease = 5.15.0-*-generic
net.ipv4.ip_forward = 0
vm.swappiness = 60

現時点ですべてのパラメータを理解する必要はありません。目的は、潜在的に調査および変更できる膨大な数の設定を確認することです。

この出力をスクロールすると圧倒されるかもしれません。次のステップでは、特定のパラメータを表示する方法を学びます。

Continue をクリックして続行します。

/proc/sys で特定のパラメータを確認する

前のステップで、sysctl -a がすべてのカーネルパラメータをリストアップする方法を見ました。これらのパラメータは単なる抽象的な設定ではなく、多くの場合 /proc/sys ディレクトリ内のファイルとして表されます。

/proc ファイルシステムは、プロセスに関する情報やその他のシステム情報を提供する仮想ファイルシステムです。/proc/sys サブディレクトリには、sysctl -a で見たカーネルパラメータに対応するファイルが格納されています。

特定のパラメータ、たとえば kernel.hostname を見てみましょう。/proc/sys ファイルシステムでは、これは /proc/sys/kernel/hostname ファイルに対応します。

cat コマンドを使用してこのファイルの内容を表示すると、kernel.hostname パラメータの現在の値が表示されます。

ターミナルに次のコマンドを入力し、Enter キーを押します。

cat /proc/sys/kernel/hostname

LabEx 環境のホスト名が表示されるはずです。これはおそらく your-hostname またはそれに似たものです。

your-hostname

もう 1 つ試してみましょう。net.ipv4.ip_forward パラメータは、システムが IPv4 パケットを転送するかどうかを制御します。これに対応するファイルは /proc/sys/net/ipv4/ip_forward です。

次のコマンドを入力し、Enter キーを押します。

cat /proc/sys/net/ipv4/ip_forward

出力は 0(転送が無効)または 1(転送が有効)になります。

0

これは、/proc/sys 内の対応するファイルを読み取ることで、カーネルパラメータの現在の値を調べることができることを示しています。適切な権限を持ってこれらのファイルに書き込むことでパラメータを変更することもできますが、一般的には sysctl コマンドを使用する方が、実行時にカーネルパラメータを変更するための好ましい、より安全な方法です。

Continue をクリックして次のステップに進みます。

cat /etc/sysctl.conf で設定を確認する

前のステップでは、sysctl -a を使用して、また /proc/sys 内のファイルを調べることでカーネルパラメータを表示する方法を学びました。これらの方法は 現在の 値を表示しますが、必ずしもシステム起動時に設定される値を表示するわけではありません。

システム全体のカーネルパラメータ設定は、多くの場合 /etc/sysctl.conf ファイルで行われます。このファイルはシステムの起動プロセス中に読み込まれ、その中で指定されたパラメータが適用されます。

cat コマンドを使用して /etc/sysctl.conf ファイルの内容を表示し、何らかのカーネルパラメータがそこで設定されているかどうかを確認しましょう。

ターミナルに次のコマンドを入力し、Enter キーを押します。

cat /etc/sysctl.conf

設定ファイルの内容が表示されます。このファイルは、sysctl -a の出力と同様に、単純な parameter_name = value 形式を使用しています。# で始まる行はコメントであり、無視されます。

#
## /etc/sysctl.conf - Configuration file for setting system variables
#

## For more information, see sysctl.conf(5) and sysctl(8)

## Uncomment the next two lines to enable IPv4 forwarding
#net.ipv4.ip_forward=1

## Uncomment the next line to enable IPv6 forwarding
#net.ipv6.conf.all.forwarding=1

## ... (other configurations)

この例では、net.ipv4.ip_forwardnet.ipv6.conf.all.forwarding のコメントアウトされた行が見られます。これらの行の # を削除してコメントを解除すると、これらのパラメータは起動時に 1(有効)に設定されます。

/etc/sysctl.conf ファイルは、カーネルパラメータに永続的な変更を加える主要な場所です。sysctl を介して直接行った変更、または /proc/sys に書き込むことによる変更は通常一時的であり、再起動後に失われます。ただし、/etc/sysctl.conf または /etc/sysctl.d/ 内のファイルにも追加されている場合は除きます。

Continue をクリックしてこの実験を完了します。

まとめ

この実験では、Linux でカーネルパラメータが設定されているかどうかを確認する方法を学びました。まず、sysctl -a コマンドを使って利用可能なすべてのカーネルパラメータをリストアップし、これらの設定がカーネルの動作を制御することを理解しました。これにより、多数の設定可能なパラメータについて包括的な概要を把握することができました。

次に、これらのカーネルパラメータは多くの場合 /proc/sys 仮想ファイルシステム内のファイルとして表されることを発見しました。これにより、/proc/sys 内の対応するファイルを調べることで、特定のパラメータの値を確認することができます。最後に、一般的に永続的なカーネルパラメータ値を設定するために使用される /etc/sysctl.conf ファイルを調べることで、カーネルパラメータの設定を検証する方法を学びました。