本記事には広告(アフィリエイトリンク)が含まれます。

Linuxとは何か — 初ログインと環境確認

Linuxエンジニア養成講座 第4回|全36回・フェーズ2「Linux基礎」の初回です。
前回までに学んだこと: エンジニアの仕事の全体像と学び方(第1回)、作業記録と報連相(第2回)、セキュリティ意識の基本(第3回)。
今回学ぶこと: Linuxとは何か、検証環境への初ログイン、基本的な環境確認コマンド。

フェーズ1では座学が3回続きました。今回からフェーズ2に入り、いよいよ検証環境のLinuxサーバーに初めてログインします。ここからは実機を触りながら学んでいきます。

この回の学習目標

  • Linuxカーネルとディストリビューションの違いを説明できる
  • AlmaLinuxがRHEL系である理由と位置づけを説明できる
  • VMコンソールからalma-mainにログインできる
  • hostname、cat /etc/os-release、ip a、df -hの4つのコマンドで環境を確認できる
  • NIC名とMACアドレスの対応関係を確認できる
Linux養成講座全36回の4フェーズ構成図。フェーズ1「エンジニアのいろは」(第1〜3回)は完了、フェーズ2「Linux基礎」(第4〜15回)の第4回が現在地。フェーズ3「ネットワークとインフラ基盤」(第16〜27回)、フェーズ4「サーバー構築と運用」(第28〜36回)が続く。

図: 本講座の4フェーズ構成。フェーズ1の座学を終え、今回からフェーズ2「Linux基礎」に入ります。

検証環境について

この講座では、仮想マシン(VM)上に構築したAlmaLinux 9.6(Minimal Install)を検証環境として使用します。講座全体で使うVMは以下の3台です。

VM名役割必要になる回
alma-mainメインの練習用サーバー。ほぼすべてのコマンド実行をこの上で行う第4回(今回)〜
alma-proxyプロキシサーバー(Squid)。企業ネットワークを模擬するために筆者が用意したVM第7回〜(後述)
alma-sub通信先・転送先。SSH接続先やログ転送先として使う2台目第17回〜

今はalma-mainの1台だけあれば大丈夫です。第4〜6回はalma-mainのみで進められます。

alma-proxyについて: 企業のサーバーは直接インターネットに出られないことがほとんどで、プロキシサーバーを経由して外部と通信します。筆者は個人の検証環境でこの企業ネットワークを再現するために alma-proxy(Squid)を用意しています。第7回以降、パッケージのインストール(dnf install)で外部からファイルを取得する際にプロキシが必要になります。

  • 企業環境で学習している方: 社内のプロキシサーバーが既にあるはずです。alma-proxyを用意する必要はありません。dnf.conf には社内プロキシのアドレスを設定してください
  • 自宅など個人環境で学習している方: VMから直接インターネットに接続できる場合、プロキシ設定なしでも dnf install は動作します。企業環境の模擬を体験したい場合は、筆者と同様にalma-proxyを構築してください

alma-subは第17回まで不要です。

alma-mainに必要な最低限の要件は以下のとおりです。

  • OS: AlmaLinux 9.6(Minimal Install)
  • スペック目安: 2vCPU / 4GB RAM / ディスク100GB(検証用に追加10GB×2があると第25回のLVM演習で使える)
  • ネットワーク: ホストPCと同じネットワークに接続し、SSHでログインできる状態
  • ユーザー: root と一般ユーザー(この講座では developer という名前を使用)。一般ユーザーにsudo権限を付与しておく

仮想化ソフトは何でも構いません。筆者はWindows 11のHyper-Vを使っていますが、VirtualBox、VMware Workstation、UTMなどでも同様に学習できます。本文中の操作手順はLinux側のコマンドが中心であり、仮想化ソフトに依存しません。仮想化ソフト固有の操作(スナップショットの取得、コンソール画面の開き方など)は、お使いのソフトのマニュアルを参照してください。筆者の環境(Hyper-V)での具体的な手順は、参考として併記します。

なぜLinuxを学ぶのか

ふだん使っているWebサービスは、どんなOSの上で動いていると思いますか。少し考えてから読み進めてください。

Linuxはインターネットの裏側で動いている

検索エンジン、動画配信、SNS、ネットショッピング ―― これらを動かしているサーバーの大半はLinuxで稼働しています。AWS、Azure、Google Cloudといったクラウドサービスでも、利用されるインスタンスの多くはLinuxです。

インフラエンジニアとしてサーバーを扱う以上、Linuxは避けて通れない技術です。第1回でインフラエンジニアの仕事の全体像を学びましたが、その業務の大部分はLinuxサーバーの構築・運用・トラブルシューティングで占められています。

無料で使えるサーバーOS — オープンソースという仕組み

Linuxの大きな特徴は、オープンソースであることです。ソースコード(プログラムの設計図)が公開されており、誰でも無料で利用・改変・再配布できます。

Windows Serverにはライセンス費用がかかりますが、Linux(の多くのディストリビューション)はライセンスコストがゼロです。サーバーを10台でも100台でも追加費用なしで構築できるため、企業にとってコスト面での優位性があります。

もう1つの利点は軽量性です。LinuxはGUI(グラフィカルな画面)なしで動作でき、コマンドライン(CUI)だけでサーバーを管理します。この講座で使う検証環境(Minimal Install)では、OS起動直後のメモリ使用量は約500MB程度です(free -h コマンドで確認できます)。必要なリソースが少ないぶん、サーバーの処理能力をアプリケーションに回せます。

さらに、CUI操作が基本であるため、スクリプトや構成管理ツール(Ansible等)による自動化との相性が良いという特徴もあります。

ディストリビューションとは何か — AlmaLinuxの立ち位置

「Linux」と一口に言っても、その中身は1つではありません。Linuxには「カーネル」と「ディストリビューション」という2つの概念があります。

カーネルはOSの中核部分です。CPU、メモリ、ディスク、ネットワークといったハードウェアを制御するプログラムで、1991年にLinus Torvalds氏が開発を開始しました。カーネルだけでは人間が操作できないため、シェル(コマンドを入力する画面)、コマンド群、パッケージマネージャーなどを組み合わせて「使える状態」にしたものがディストリビューションです。

車に例えると、カーネルはエンジン、ディストリビューションは完成した車です。同じエンジン(Linuxカーネル)を使っていても、車種(ディストリビューション)によって特徴が異なります。

ディストリビューションは大きく2つの系統に分かれます。

Linuxディストリビューションの系統図。Linuxカーネルを根元に、左側にRHEL系(RHEL→CentOS→AlmaLinux/Rocky Linux)、右側にDebian系(Debian→Ubuntu)が分岐。AlmaLinuxが黄色で強調され「この講座で使用」と示されている。

図: Linuxディストリビューションの2大系統。この講座ではRHEL系のAlmaLinuxを使用します。

  • RHEL系: Red Hat Enterprise Linux(RHEL)を源流とする系統。企業のサーバー用途で広く採用されている。AlmaLinux、Rocky Linux、CentOS(開発終了)などが含まれる
  • Debian系: Debianを源流とする系統。Ubuntuが代表的で、クラウド環境や開発用途で人気が高い

この講座で使うAlmaLinuxはRHEL系のディストリビューションです。RHELのソースコードをリビルド(再構築)し、RHELとバイナリ互換を維持しています。RHELは商用サポート契約が必要ですが、AlmaLinuxは無料で同等の機能と安定性を利用できます。

AlmaLinuxが生まれた背景には、CentOSの方針変更があります。2020年12月、Red Hat社はCentOS 8のサポートを2021年末で打ち切り、CentOS Streamというローリングリリース版に移行すると発表しました。CentOSは本番環境で広く採用されていたため、その代替としてAlmaLinux OS Foundation(CloudLinux社が設立)がAlmaLinuxを、Rocky Enterprise Software FoundationがRocky Linuxをそれぞれ開発しています。

この講座で使用しているAlmaLinux 9.6(コードネーム: Sage Margay)のサポート期限は2032年6月1日です。長期にわたって安定した環境で学習を進められます。

VMコンソールからalma-mainにログインする

ここからは実機操作に入ります。事前に構築済みの仮想マシン「alma-main」に、VMコンソールからログインします。

スナップショットを取る(SP1_initial)

操作を始める前に、仮想マシンの現在の状態をスナップショットとして保存します。スナップショットは、ある時点のVM状態をまるごと保存する機能です。操作を間違えた場合にこの時点まで戻せるため、検証環境では作業前にスナップショットを取る習慣をつけてください。

お使いの仮想化ソフトのスナップショット機能を使って、構築済みの全VMの状態を「SP1_initial」という名前で保存してください。すべてのVMのスナップショットを取っておくことで、講座全体の原点復帰が可能になります。

筆者の検証環境(Hyper-V)の場合

  1. Hyper-Vマネージャーを開く(Windowsキー → 「Hyper-V」と入力して起動)
  2. 中央ペインの仮想マシン一覧から「alma-main」を右クリック
  3. 「チェックポイント」をクリック
  4. 作成されたチェックポイントを右クリック → 「名前の変更」で「SP1_initial」と入力

VMコンソールの開き方

仮想化ソフトのコンソール機能でVMの画面を開きます。VMが停止中の場合は起動してください。

筆者の検証環境(Hyper-V)の場合

  1. Hyper-Vマネージャーの中央ペインで「alma-main」を右クリック → 「接続」
  2. 仮想マシン接続ウィンドウが開く。VMが停止中の場合は「起動」ボタンをクリック
  3. OSが起動するまで待つ(数十秒程度)

多くの仮想化ソフトのコンソール画面では、ホストPC側からのクリップボード共有が制限されます。つまり、ホストPC側でコピーしたテキストをVM側に貼り付けることができません。コマンドは手入力になります。この不便さは第5回でSSH接続に切り替えることで解消します。今回はコマンドを正確に手入力する練習と割り切ってください。

ログイン画面の読み方

VMが起動すると、コンソールに以下のようなログインプロンプトが表示されます。

AlmaLinux 9.6 (Sage Margay)
Kernel 5.14.0-570.12.1.el9_6.x86_64 on an x86_64

alma-main login: _

  • 1行目: ディストリビューション名とバージョン
  • 2行目: カーネルバージョンとCPUアーキテクチャ
  • 3行目: ホスト名 + login: プロンプト

login: の後にユーザー名を入力してEnterを押すと、Password: と表示されます。パスワードを入力してEnterを押してください。入力中のパスワードは画面に表示されません。これはセキュリティ上の仕様であり、入力自体は受け付けています。

今回はrootユーザーでログインします。第3回で学んだ最小権限の原則からすると、通常はrootでの作業は避けるべきです。しかし、現時点ではまだユーザー管理を学んでいないため、検証環境に限ってrootを使用します。第10回「ユーザーとグループ管理」で一般ユーザーの作成と権限設定を学んだ後、作業用ユーザーでの運用に切り替えます。

ログインに成功すると、以下のプロンプトが表示されます。

[root@alma-main ~]#

  • root: ログイン中のユーザー名
  • @alma-main: ホスト名
  • ~: 現在のディレクトリ(~ はホームディレクトリを意味する)
  • #: rootユーザーであることを示す記号(一般ユーザーの場合は $

この #$ の違いは重要です。プロンプトの記号を見れば、今の自分がroot権限を持っているかどうかが一目で分かります。

はじめてのコマンド体験

ログインできたところで、この検証環境がどのような状態なのかを確認するコマンドを4つ実行します。「サーバーにログインしたら、まず環境を確認する」という習慣は、現場で最も基本的な動作の1つです。

コマンドの使い方を知りたいときは、コマンドに --help オプションを付けて実行すると簡易的な説明が表示されます。例えば hostname --helpdf --help と入力してみてください。より詳しいマニュアルを表示する man コマンドは第7回で導入します。

hostname — この機械は誰か

最初に確認するのは、自分が今どのサーバーにログインしているか、です。

alma-mainで実行します。以降のコマンドもすべてalma-main上で実行します。

実行コマンド:

# hostname

実行結果:

alma-main

hostname コマンドは、このサーバーのホスト名を表示します。結果は alma-main です。検証環境のメインサーバーにログインしていることが確認できました。

「ホスト名を確認するだけ」と思われるかもしれませんが、複数のサーバーを扱うようになると、この確認が事故を防ぎます。

現場ヒヤリハット: ホスト名を確認しなかった結果

あるエンジニアが複数のターミナルウィンドウを開いて作業していました。検証環境でテスト用のデータを削除するつもりが、hostnameを確認せずにコマンドを実行し、実際には本番サーバーに接続しているウィンドウで操作していました。本番データが削除され、復旧に数時間を要しました。

第3回で学んだ「検証環境と本番環境の区別」の実例です。サーバーにログインしたら、コマンドを実行する前に必ず hostname で接続先を確認してください。

cat /etc/os-release — このOSは何か

次に、このサーバーで動いているOSの情報を確認します。

実行コマンド:

# cat /etc/os-release

実行結果:

NAME="AlmaLinux"
VERSION="9.6 (Sage Margay)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.6"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.6 (Sage Margay)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.6"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.6"
SUPPORT_END=2032-06-01

cat はファイルの内容を表示するコマンドです。/etc/os-release はOSの情報が記録されたファイルで、すべてのLinuxディストリビューションに存在します。

出力から読み取れる主な情報は以下のとおりです。

  • PRETTY_NAME: 表示用の正式名称 — AlmaLinux 9.6 (Sage Margay)
  • ID_LIKE="rhel centos fedora": RHEL系のディストリビューションであることを示す
  • VERSION_ID="9.6": バージョン番号
  • SUPPORT_END=2032-06-01: サポート終了日

障害対応やベンダーへの問い合わせ時に「OSの種類とバージョン」は必ず聞かれる情報です。このコマンドを覚えておけば即座に回答できます。

ip a — ネットワークインターフェースを確認する

サーバーのIPアドレスとネットワークインターフェース(NIC)の状態を確認します。

実行コマンド:

# ip a

実行結果:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:01:63:34 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.121/24 brd 192.168.1.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:01:63:35 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.1/24 brd 10.0.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4e48:b804:2646:376f/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:01:63:36 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/24 brd 10.0.1.255 scope global noprefixroute eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::89bf:9cf5:3d34:f528/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:01:63:3d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.1/24 brd 10.0.2.255 scope global noprefixroute eth3
       valid_lft forever preferred_lft forever
    inet6 fe80::77cc:73f5:6d05:1ec5/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

出力が長いですが、今の段階で注目するのは以下の3点です。

  • lo: ループバックインターフェース。自分自身への通信に使う特殊なインターフェースで、IPアドレスは 127.0.0.1 固定。今は「そういうものがある」程度の理解で構いません
  • eth0eth3: ネットワークインターフェース(NIC)。この検証環境には4つのNICが接続されています
  • inet の行: そのNICに割り当てられたIPアドレス。eth0は 192.168.1.121、eth1は 10.0.1.1 など

eth0がホストPCや外部ネットワークとの接続用、eth1〜eth3が内部検証用です。IPアドレスやサブネットマスク(/24)の詳細は第16回「ネットワーク基礎」で扱います。

なお、NIC名は仮想化ソフトやOS設定によって異なります。物理サーバーやVMware環境では ens192、VirtualBoxでは enp0s3 のように異なる命名規則になることがあります。この検証環境では eth0eth3 のように連番になっています。

df -h — ディスクの使用状況を確認する

サーバーのディスク使用状況を確認します。

実行コマンド:

# df -h

実行結果:

ファイルシス               サイズ  使用  残り 使用% マウント位置
devtmpfs                     4.0M     0  4.0M    0% /dev
tmpfs                        2.0G     0  2.0G    0% /dev/shm
tmpfs                        783M  8.5M  774M    2% /run
efivarfs                     128M   33K  128M    1% /sys/firmware/efi/efivars
/dev/mapper/almalinux-root    64G  2.1G   62G    4% /
/dev/sda2                    960M  199M  762M   21% /boot
/dev/sda1                    599M  7.1M  592M    2% /boot/efi
/dev/mapper/almalinux-home    31G  254M   31G    1% /home
tmpfs                        392M     0  392M    0% /run/user/0

df はdisk freeの略で、ディスクの使用状況を表示するコマンドです。-h オプションを付けると、GBやMBなど人間が読みやすい単位で表示されます。

ヘッダーが日本語で表示されているのは、このサーバーの言語設定が日本語(LANG=ja_JP.UTF-8)になっているためです。英語環境のサーバーでは「Filesystem」「Size」「Used」「Avail」「Use%」「Mounted on」と表示されます。

今の段階で注目する行は以下の3つです。

  • /(ルート): OS全体が入っている場所。64GB中2.1GB使用で、使用率は4%
  • /home: ユーザーのホームディレクトリ。31GB中254MB使用
  • /boot: OS起動に必要なファイルが格納されている場所

devtmpfstmpfs はメモリ上の仮想ファイルシステムです。今は無視して構いません。ファイルシステムの詳細は第6回「ファイルシステムとディレクトリ構造」で学びます。

ディスクの使用率はサーバー運用における重要な監視項目です。使用率が100%に達するとサーバーが正常に動作しなくなるため、定期的な確認が欠かせません。

もう1つ、メモリの使用状況も確認しておきます。

実行コマンド:

# free -h

実行結果:

               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       514Mi       3.3Gi        11Mi       229Mi       3.3Gi
Swap:          3.9Gi          0B       3.9Gi

free -h はメモリの使用状況を表示するコマンドです。Mem: の行を見ると、合計3.8GBのメモリのうち約500MBが使用されています。Minimal Installではこの程度の消費量です。available(実際に使える空きメモリ)が3.3GBあるので、十分な余裕があります。

NIC名とMACアドレスの対応を確認する

なぜNIC名の対応確認が必要か

この検証環境ではalma-mainに4つのNIC(eth0〜eth3)を接続しています。それぞれ異なる仮想スイッチに接続されており、用途も異なります。

Linux上で表示されるNIC名(eth0、eth1…)と、仮想化ソフト側でどの仮想ネットワークに接続されているかの対応関係を把握しておかないと、「eth0のIPアドレスを変更したつもりが、実際には別のNICだった」という事故が起こりえます。

この対応関係を確認するために使うのがMACアドレスです。MACアドレスはNIC1枚ごとに割り当てられた固有の識別子で、Linux側からも仮想化ソフト側からも確認できます。両方で同じMACアドレスを持つNICが同一のインターフェースです。

仮想化ソフト側でMACアドレスを確認する

仮想化ソフトのVM設定画面から、各ネットワークアダプターのMACアドレスと接続先の仮想ネットワークを確認します。各ネットワークアダプターについて、MACアドレスと接続先ネットワーク名の組み合わせを控えてください。

筆者の検証環境(Hyper-V)の場合

  1. Hyper-Vマネージャーで「alma-main」を右クリック → 「設定」
  2. 左ペインの「ネットワーク アダプター」を選択(複数あるので順番に確認する)
  3. 「詳細な機能」を展開 → 「MACアドレス」欄に表示される値をメモする
  4. 同時に、そのネットワークアダプターがどの仮想スイッチに接続されているかも確認する


ip linkコマンドで照合する

Linux側でMACアドレスを確認します。alma-mainのコンソールに戻って以下を実行してください。

実行コマンド:

# ip link show

実行結果:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:5d:01:63:34 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:5d:01:63:35 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:5d:01:63:36 brd ff:ff:ff:ff:ff:ff
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:15:5d:01:63:3d brd ff:ff:ff:ff:ff:ff

ip link show はNICの物理的な情報を表示するコマンドです。link/ether の後に続く値がMACアドレスです。

MACアドレスの先頭3オクテットはOUI(Organizationally Unique Identifier)と呼ばれ、NICの製造元(仮想環境の場合はハイパーバイザーの種類)を判別できます。この検証環境ではプレフィックスが 00:15:5d(Microsoft/Hyper-V)ですが、VirtualBoxなら 08:00:27、VMwareなら 00:0C:29 のように仮想化ソフトごとに異なります。

仮想化ソフト側で確認したMACアドレスと突き合わせると、以下の対応関係になります。

eth0〜eth3の役割を整理する

alma-mainのNIC構成図。eth0(192.168.1.121)はExternal Switchに接続し管理・インターネット用。eth1(10.0.1.1)はInternal Switchに接続しサーバー間通信用。eth2(10.0.1.2)はInternal Switchに接続しボンディング検証用(第21回)。eth3(10.0.2.1)はInternal Switchに接続しVLAN検証用(第22回)。

図: alma-mainの4つのNICと仮想スイッチの接続構成。eth0が外部接続、eth1〜eth3が内部接続です。eth2とeth3は今後の演習で使用します。

各NICの対応関係を表にまとめます。

NIC名 MACアドレス IPアドレス 接続先スイッチ 用途
eth0 00:15:5d:01:63:34 192.168.1.121/24 External Switch 管理・インターネット接続
eth1 00:15:5d:01:63:35 10.0.1.1/24 Internal Switch 内部検証用
eth2 00:15:5d:01:63:36 10.0.1.2/24 Internal Switch 内部検証用
eth3 00:15:5d:01:63:3d 10.0.2.1/24 Internal Switch VLAN演習専用

  • eth0: External Switch(外部スイッチ)に接続。ホストPCと同じネットワーク上にあり、インターネットに接続できる。第5回ではこのIPアドレス(192.168.1.121)を使ってSSH接続する
  • eth1・eth2: Internal Switch(内部スイッチ)に接続。VM同士の通信に使う検証用NIC。第21回「ボンディング/チーミング」でこの2枚を束ねる演習を行う
  • eth3: Internal Switchに接続しているが、別のサブネット(10.0.2.0/24)を使用。第22回「VLAN」の演習用に温存している

今の時点ですべてを覚える必要はありません。「NICが4つあり、用途ごとに分かれている」ことと、「MACアドレスで対応関係を確認できる」ことを押さえておいてください。

やってみよう — 環境確認レポートを作る

ここまでに学んだコマンドを使って、以下の項目を紙やメモ帳にまとめてみてください。VMコンソールではコピー&ペーストが制限される場合があるため、手書きで構いません。

  1. hostname を実行して、ホスト名を記録する
  2. cat /etc/os-release を実行して、OS名・バージョン・サポート終了日を記録する
  3. ip a を実行して、eth0のIPアドレスを記録する
  4. df -h を実行して、/(ルート)の使用率を記録する
  5. ip link show を実行して、eth0のMACアドレスを記録する
  6. 仮想化ソフトのVM設定画面でalma-mainのネットワークアダプターのMACアドレスを1つ確認する。ip link show の出力と照合して、どのNIC名に対応するか記録する

記録する情報の例を以下に示します。

--- 環境確認レポート ---
日時: 2026-03-28
ホスト名: alma-main
OS: AlmaLinux 9.6 (Sage Margay)
サポート終了: 2032-06-01
eth0 IP: 192.168.1.121/24
eth0 MAC: 00:15:5d:01:63:34
ルート使用率: 4% (2.1G / 64G)

この「環境確認レポート」は、第2回で学んだ作業記録の実践です。サーバーの基本情報を記録しておくと、障害発生時やベンダーへの問い合わせ時にすぐ参照できます。

なお、各コマンドの詳細な使い方を調べるための man コマンドは、現在 man-pages パッケージが未インストールのため、フルマニュアルが表示されません。第7回「基本コマンド(ファイル操作)」で man-pages を導入した後に使えるようになります。

理解度チェック

以下の文が正しければ○、間違っていれば×と答えてください。

  1. Linuxカーネルとディストリビューションは同じ意味である
  2. AlmaLinuxはRHEL互換のディストリビューションである
  3. プロンプトが # のときはrootユーザー、$ のときは一般ユーザーである
  4. /etc/os-release はAlmaLinuxにのみ存在する特殊なファイルである
  5. df -h-h オプションは、使用量を人間が読みやすい単位で表示する
  6. MACアドレスはNICごとに異なる固有の識別子であり、Linux側と仮想化ソフト側で照合することでNIC名と仮想ネットワークの対応関係を確認できる
  7. サーバーにログインしたら、コマンドを実行する前にhostnameで接続先を確認する必要がある

解答

  1. × — カーネルはOSの中核部分(ハードウェア制御)。ディストリビューションはカーネルにシェル、コマンド、パッケージマネージャー等を加えて「使える状態」にしたもの
  2. — AlmaLinuxはRHELのソースコードをリビルドした互換ディストリビューション
  3. # はroot、$ は一般ユーザーを示す。サーバーにログインしたらプロンプトの記号を確認する習慣をつける
  4. ×/etc/os-release はすべてのLinuxディストリビューションに存在するファイル
  5. -h は human-readable の略で、GB・MBなどの単位で表示する
  6. — MACアドレスはNIC(ネットワークインターフェース)ごとに固有の値を持つ。Linux側の ip link show と仮想化ソフト側の設定画面を照合することで、NIC名と仮想ネットワークの対応を確認できる
  7. — 複数サーバーを扱う現場では、誤って別のサーバーで作業してしまう事故を防ぐため、ログイン直後にhostnameで接続先を確認するのが基本動作

まとめ

今回はLinuxの基本概念を学び、検証環境のalma-mainに初めてログインしました。

  • Linuxとディストリビューション: Linuxカーネルはハードウェアを制御する中核部分。それにコマンドやツールを加えたものがディストリビューション。AlmaLinuxはRHEL互換の無料ディストリビューション
  • ログイン: VMコンソールから接続し、プロンプトの #(root)と $(一般ユーザー)の違いを確認した
  • 環境確認コマンド: hostname(ホスト名)、cat /etc/os-release(OS情報)、ip a(IPアドレス)、df -h(ディスク使用状況)の4つを実行した
  • NIC対応確認: ip link show でMACアドレスを確認し、仮想化ソフト側の設定と照合することで、NIC名と仮想ネットワークの対応関係を把握した

次回の第5回「SSH接続とターミナル操作」では、VMコンソールの代わりにSSHでalma-mainに接続する方法を学びます。コピー&ペーストが使えるようになり、以降の演習の効率が上がります。

シリーズ一覧

フェーズ1: エンジニアのいろは

フェーズ2: Linux基礎

フェーズ3: ネットワークとインフラ基盤

フェーズ4: サーバー構築と運用