「引き継ぎドキュメントがなくて、目の前のLinuxサーバーが何者なのか分からない」
サーバーの運用引き継ぎやトラブル対応で、OSの種類やバージョンが分からず困った経験はないでしょうか。
この記事では、LinuxのOSバージョンやカーネル情報を確認するコマンドを、用途別に整理して解説します。
uname、/etc/os-release、hostnamectl の3つを押さえれば、RHEL系・Debian系を問わず、目の前のサーバーの正体をすぐに特定できます。VPS・クラウド・WSL2環境でも同じコマンドが使えます。この記事のポイント
・/etc/os-release が最も汎用的。ディストリビューション名・バージョン両方を確認できる
・uname -r でカーネルバージョン、hostnamectl でOS+仮想化情報も同時確認できる
・lscpu でCPUのアーキテクチャ(x86_64/aarch64)とコア数を把握できる
・引き継ぎ・障害対応・パッケージ選択でOS情報の確認は必須作業
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜOSバージョンの確認が必要なのか
Linuxはディストリビューションごとにパッケージ管理やサービス管理の仕組みが異なります。CentOS 7とRHEL 9ではsystemdの挙動も違えば、使えるコマンドも違います。OSのバージョンが分からないまま作業を始めると、こんなトラブルに直面します。
・パッケージインストールの失敗:yumなのかdnfなのか、aptなのか分からない
・サポート切れに気づかない:CentOS 6やUbuntu 18.04はすでにEOL(サポート終了)
・設定ファイルのパスが違う:ディストリビューションやバージョンで配置が変わる
・セキュリティパッチの適用漏れ:脆弱性情報はOS・バージョン単位で公開される
・アーキテクチャの誤認:x86_64向けバイナリをARM(aarch64)サーバーにインストールしようとして失敗する
VPS・AWS EC2・WSL2といった環境でも、見た目は同じターミナルでも内部のOS・カーネル・CPUアーキテクチャはまったく異なります。「まずOSの正体を確認する」ことがサーバー作業の第一歩です。
基本の確認方法(この3つで9割カバーできる)
1. /etc/os-release ファイルを確認する(最も汎用的)
systemdを採用している現代のLinuxディストリビューションには、ほぼ確実に/etc/os-release が存在します。RHEL系(RHEL・CentOS Stream・Rocky Linux・AlmaLinux)でもDebian系(Ubuntu・Debian)でも共通で使えるため、最初に確認すべきファイルです。# OS情報を表示する cat /etc/os-release
NAME="Rocky Linux" VERSION="9.3 (Blue Onyx)" ID="rocky" ID_LIKE="rhel centos fedora" VERSION_ID="9.3" PLATFORM_ID="platform:el9" PRETTY_NAME="Rocky Linux 9.3 (Blue Onyx)"
・VERSION_ID:バージョン番号(スクリプトで比較に使いやすい)
・ID_LIKE:互換性のあるディストリビューション(rhel系かどうかの判定に使える)
スクリプト内で特定の値だけ取得したい場合は、sourceコマンドで変数として読み込めます。
# シェルスクリプトでバージョンIDを取得する source /etc/os-release echo $VERSION_ID
2. hostnamectl コマンドで確認する(OS+カーネル+アーキテクチャを一括表示)
hostnamectl は、ホスト名の設定コマンドですが、OS情報も一覧表示してくれます。ディストリビューション名、カーネルバージョン、アーキテクチャ(x86_64等)がまとめて確認できるので、サーバーの全体像を素早く把握したいときに便利です。# OS情報を一括表示する hostnamectl
Static hostname: web-server01 Icon name: computer-vm Chassis: vm Machine ID: a1b2c3d4e5f6... Boot ID: f6e5d4c3b2a1... Virtualization: kvm Operating System: AlmaLinux 9.3 (Shamrock Pampas Cat) CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos Kernel: Linux 5.14.0-362.8.1.el9_3.x86_64 Architecture: x86-64
・Chassis:物理サーバーかVM(仮想マシン)かを示す。クラウドやVPSでは「vm」になる
・Virtualization:仮想化方式(kvm / xen / vmware / wsl など)
・Operating System:ディストリビューション名とバージョン
・Kernel:カーネルバージョン(uname -r と同じ情報)
・Architecture:CPUアーキテクチャ
「Virtualization: kvm」のように、仮想環境かどうかも表示されます。クラウド環境(AWS EC2やAzure VM)でも仮想化方式が分かるため、インフラ構成の把握に役立ちます。WSL2環境では「Virtualization: wsl」と表示されることがあります。
3. uname コマンドでカーネル情報を確認する
uname はカーネル(OSの中核部分)の情報を表示するコマンドです。ディストリビューション名は表示されませんが、カーネルバージョンやアーキテクチャの確認に使います。# すべてのカーネル情報を表示する uname -a
Linux web-server01 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Oct 5 14:00:00 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
・Linux:システム名(カーネル名)
・web-server01:ホスト名
・5.14.0-362.8.1.el9_3.x86_64:カーネルのリリース番号
・#1 SMP PREEMPT_DYNAMIC...:カーネルのコンパイル日時
・x86_64:マシンタイプ(64bitアーキテクチャ)
・GNU/Linux:OS名
WSL2環境で実行すると、カーネルバージョンの部分に「microsoft-standard-WSL2」という文字列が含まれます。WSL2上で動いているかどうかの判定にも使えます。
# WSL2上での uname -r 出力例 uname -r 5.15.153.1-microsoft-standard-WSL2
・-s:システム名を表示する(デフォルト)
・-n:ホスト名を表示する
・-r:カーネルのリリース番号を表示する
・-v:カーネルのコンパイル日時を表示する
・-m:マシンタイプを表示する(x86_64 / aarch64 等)
・-p:プロセッサタイプを表示する
・-a:すべての情報を表示する
ディストリビューション別の確認ファイル
/etc/os-release が存在しない古いOSでは、ディストリビューション固有のリリースファイルを確認します。| ディストリビューション | 確認ファイル |
|---|---|
| RHEL / CentOS / Rocky / Alma | /etc/redhat-release |
| Fedora | /etc/fedora-release |
| Ubuntu | /etc/lsb-release |
| Debian | /etc/debian_version |
| SUSE | /etc/SuSE-release |
ディストリビューションが不明な場合は、findコマンドでリリースファイルを検索できます。
# /etc配下のリリースファイルを検索する find /etc -name "*release" -type f
応用:さらに詳しく確認する方法
1. 32bit / 64bit(アーキテクチャ)を判別する
サーバーが32bit(i686)か64bit(x86_64)か、あるいはARM系(aarch64)かを確認する方法です。パッケージのインストール時に、対応するアーキテクチャを選ぶ必要があります。AWSのGravitonインスタンスやRaspberry Piなど、ARM系サーバーの普及に伴い、アーキテクチャの確認は以前より重要になっています。# アーキテクチャを確認する(3つの方法) uname -m arch getconf LONG_BIT
・getconf LONG_BIT:「64」または「32」と数値で返る(スクリプトで判定しやすい)
シェルスクリプトでアーキテクチャを判定して処理を分岐したい場合は次のように書きます。
#!/bin/bash # アーキテクチャごとに異なるパッケージをダウンロードする例 ARCH=aarch64 if [ "" = "x86_64" ]; then echo "x86_64向けパッケージをダウンロードします" elif [ "" = "aarch64" ]; then echo "ARM64向けパッケージをダウンロードします" else echo "未対応のアーキテクチャです: " fi
2. カーネルバージョンの詳細を確認する
/proc/version ファイルには、カーネルのバージョンに加えて、コンパイルに使われたGCCのバージョンなどの詳細情報が記録されています。# カーネルの詳細情報を表示する cat /proc/version
Linux version 5.14.0-362.8.1.el9_3.x86_64 (mockbuild@iad1-prod-build001.bld.equ.rockylinux.org) (gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3), GNU ld version 2.35.2-42.el9) #1 SMP PREEMPT_DYNAMIC Thu Oct 5 14:00:00 UTC 2023
3. lscpu でCPU構成を確認する
lscpu(list CPU)は、CPUのアーキテクチャ・コア数・スレッド数・クロック速度などを一覧表示するコマンドです。「このサーバーは何コアか?」「x86_64かaarch64か?」をまとめて確認できます。# CPUの構成情報を表示する lscpu
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 CPU MHz: 2400.000
・CPU(s):Linuxが認識している論理CPU数(コア×スレッド)。NginxやApacheのワーカープロセス数の設定目安になる
・Thread(s) per core:ハイパースレッディングが有効なら2、無効なら1
・Core(s) per socket:物理コア数
AWSのGraviton(ARM系)インスタンスやRaspberry Piでは、Architecture が aarch64 と表示されます。ARMアーキテクチャのサーバーにx86_64向けのバイナリをインストールしようとすると失敗するため、事前の確認が重要です。
4. 初期調査をワンライナーでまとめる
初めて触るサーバーにログインしたとき、あるいはトラブル対応の最初に、OS・カーネル・CPUを素早く把握するワンライナーです。# OS情報・カーネル・CPU情報を順番に確認する hostnamectl && uname -r && lscpu | grep -E "Architecture|CPU\(s\)|Thread|Core"
5. lsb_release コマンドで確認する
LSB(Linux Standard Base)に準拠したディストリビューションでは、lsb_release コマンドが使えます。Ubuntuではデフォルトでインストールされていることが多いですが、RHEL系では redhat-lsb-core パッケージの追加インストールが必要です。# LSB情報を表示する lsb_release -a
6. クラウド環境(AWS EC2 / Azure)での確認の注意点
クラウド上のインスタンスでは、AMI(Amazonマシンイメージ)やカスタムイメージから作成されたサーバーがあり、/etc/os-release の内容がカスタマイズされている場合があります。AWS EC2のAmazon Linuxを使っている場合は、以下のように表示されます。
# Amazon Linux 2023の場合 cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Amazon Linux 2023.6.20241212"
ID_LIKE フィールドで「fedora」と表示されるので、パッケージ管理はdnfを使います。トラブルシュート:OSバージョンが確認できない場合
「/etc/os-release: No such file or directory」と表示される場合
/etc/os-release はsystemd世代(RHEL 7以降・Ubuntu 16.04以降・Debian 8以降)で導入されたファイルです。それより古いOSでは存在しません。この場合は、以下の順番で確認してください。
・RHEL / CentOS 6以前:
cat /etc/redhat-release・Debian 7以前:
cat /etc/debian_version・ディストリビューション不明:
find /etc -name "*release" -type f・最終手段:
cat /proc/version(カーネル文字列からディストリビューションを推測)「hostnamectl: command not found」と表示される場合
hostnamectl はsystemdに含まれるコマンドです。SysVinit時代のOS(CentOS 6以前など)や、一部のコンテナ環境(Docker軽量イメージ等)には存在しません。uname -a と cat /etc/redhat-release で代替してください。「lscpu: command not found」と表示される場合
lscpu は util-linux パッケージに含まれています。最小構成でインストールしたコンテナ環境では含まれていないことがあります。以下でインストールできます。# Ubuntu / Debian系の場合 sudo apt install -y util-linux # RHEL / AlmaLinux / Rocky Linux系の場合 sudo dnf install -y util-linux
/etc/issue ファイルに情報がない場合
CentOS 7以降では、/etc/issue にはカーネルバージョンのプレースホルダ(\r 等)しか書かれていないことがあります。ログインコンソール向けの表示ファイルなので、OSバージョンの確認には /etc/os-release を使ってください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| ディストリビューション名とバージョンを確認する | cat /etc/os-release |
| OS・カーネル・アーキテクチャを一括表示する | hostnamectl |
| カーネルの全情報を表示する | uname -a |
| カーネルのリリース番号だけ確認する | uname -r |
| アーキテクチャ(x86_64/aarch64/32bit)を確認する | uname -m |
| CPUのコア数・アーキテクチャを確認する | lscpu |
| カーネルの詳細情報を確認する | cat /proc/version |
| RHEL系のバージョンを確認する(古いOS) | cat /etc/redhat-release |
| リリースファイルを検索する | find /etc -name "*release" -type f |
Linuxのバージョン確認コマンドを使いこなして、サーバー管理の基本を身につけたいですか?
OSバージョンの正確な把握は、パッケージ管理・脆弱性対応・システム設計の基盤です。現場の知識を体系的に学びましょう。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます