OSのインストール
インストーラーの起動
インストールメディアから起動し、GRUB画面にて [Install XXX 10.X] を選択します。なお、本記事ではEFIシステムにインストールすることを前提とします。
インストール言語の選択
インストール言語を選択します。任意の言語及びキーマップを選択して [続行] をクリックします。本記事ではインストール言語に日本語を設定したものとして記載します。
インストール概要画面に遷移します。この画面にてインストールに必要な設定を進めていきます。
ホスト名の設定
インストール概要画面から [ネットワークとホスト名] をクリックします。
[ホスト名] に任意のホスト名を入力し、[適用] をクリックします。
管理者アカウントの作成
RHEL9系あたりからrootアカウントが標準で無効化され、代わりに1つ以上の管理者アカウントを作成してsudoで操作するのが一般的となった模様です。
インストール概要画面から [ユーザーの作成] をクリックします。
任意でユーザー名やパスワードを設定し、[ユーザーアカウントに管理者権限を付与する(wheelグループに加える)] にチェックを入れて作成してください。
(オプション)パーティション設定
パーティション設定は何も指定しない場合に自動設定されてしまいます。後から変更するのは難しいため、この時点できちんと設定しておきましょう。例として何も指定がなかった場合に私が設定する内容を紹介します。
インストール概要画面から [インストール先] をクリックします。
[ストレージの設定] で [カスタム] を選択した状態で [完了] をクリックします。
手動パーティション設定画面に遷移しますので、以下の様にパーティションを構成します。
画面左下付近にある + で新規作成、- で選択したパーティションを削除できます。
- マウントポイント:
/boot/efi- 要求される容量:
512 MiB - デバイスタイプ:
標準パーティション 暗号化なし - ファイルシステム:
EFI System Partition
- 要求される容量:
- マウントポイント:
/boot- 要求される容量:
1024 MiB - デバイスタイプ:
標準パーティション 暗号化なし - ファイルシステム:
xfs
- 要求される容量:
- マウントポイント:
/- 要求される容量:
全て※サイズの欄を空にすると自動で空き領域が全て割り当てられます - デバイスタイプ:
LVM 暗号化なし - ボリュームグループ:
vg1 - 名前:
root - ファイルシステム:
xfs
- 要求される容量:
設定が完了したら、[完了] をクリックします。
なお、例ではスワップ領域が作成されていないため警告が出ます。ファイル形式でのスワップ領域設定を後ほど行うためにあえて設定していません。無視して完了してください。
[!NOTE]
任意に設定を行う場合は以下の公式ドキュメントを参考にしてください。
手動パーティションの設定
(オプション)パッケージのインストール
何も選択しない場合、インストールメディアによって自動で各種パッケージがインストールされます。例として何も指定がなかった場合に私が設定する内容を紹介します。
インストール概要画面から [ソフトウェアの選択] をクリックします。
[ベース環境] は 最小限のインストール、[選択した環境用のその他のソフトウェア] では 標準 にのみチェックを入れて、 [完了] をクリックします。
インストール後の各種設定
ネットワーク設定
# 接続名の一覧を列挙
nmcli connection show
# OS起動時に自動でNICを有効化
nmcli connection modify <接続名> connection.autoconnect yes
# 固定IPを設定(デフォルトはDHCP)
nmcli connection modify <接続名> ipv4.addresses <v4アドレス/ネットマスク>
nmcli connection modify <接続名> ipv4.gateway <v4ゲートウェイアドレス>
nmcli connection modify <接続名> ipv4.dns <DNS1,DNS2,...>
nmcli connection modify <接続名> ipv4.method manual
# NICの有効化
nmcli connection up <接続名>
設定後、PING疎通確認やSSH接続などができるかを確認してください。
(オプション)NIC名をethXに変更する
ハイパーバイザーとしてVMwareなどを使用していると、NIC名が標準のethXではなくensXやenoXといった変な名前に設定されている場合があります。通常は問題ありませんが、まれにNIC名がethXであることを前提としたシステムがあるため、その場合は以下のようにして変更します。
# デバイス命名規則をethXにする
grubby --update-kernel=ALL --args="net.ifnames=0 biosdevname=0"
# 接続名の一覧を列挙
nmcli connection show
# 接続名及び紐付けデバイスを変更
nmcli connection modify <変更前の接続名 ens0など> connection.interface-name <変更後の接続名 eth0など>
nmcli connection modify <変更前の接続名 ens0など> connection.id <変更後の接続名 eth0など>
# 反映のため再起動
reboot
[!CAUTION]
この作業によりNICがつながらなくなることがあります。本作業はネットワークを経由しないアクセス(仮想コンソール接続やディスプレイ接続)を確保した上で行ってください。
(RHELのみ)サブスクリプションの適用
RHELの場合、パッケージマネージャーを利用するにはサブスクリプションの適用が必要です。
subscription-manager register
[!NOTE]
上記コマンドではアカウントに紐付くサブスクリプションの中から適切なものが自動で適用されます。任意のサブスクリプションを適用する場合は以下の公式ドキュメントを参考にしてパラメーターを渡してください。
サブスクリプションマネージャーを使用したシステムの登録
(仮想マシンの場合)ゲストツールのインストール
Hyper-V
OSに組み込み済みのため、作業は不要です。
参考: https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/supported-centos-and-red-hat-enterprise-linux-virtual-machines-on-hyper-v#rhelcentos-10x-series
VMware ESXi
dnf install -y open-vm-tools
Nutanix AHV
未確認
(オプション)ファイル方式によるスワップ領域の設定
スワップ領域をパーティションとして設定しなかった場合は、ファイル方式による設定が必要です。私個人としてはファイル形式にした方が後からの変更が楽なため、この方式を採用しています。
# スワップファイルの作成
# 例: 128MB * 64 = 8GB
dd if=/dev/zero of=/swap.img bs=128M count=64
# スワップファイルをスワップ領域としてマーク
chmod 600 /swap.img
mkswap /swap.img
swapon /swap.img
cp -p /etc/fstab /etc/fstab.default
echo '/swap.img swap swap defaults 0 0' >> /etc/fstab
# スワップ領域が設定されているか確認
swapon -s
[!NOTE]
スワップサイズは搭載メモリ量によって推奨値が変わります。詳細は以下の公式ドキュメントを参考にしてください。
手動パーティションの設定
スワップサイズ変更手順
# スワップファイルをマウントしないようにして再起動
sed -i '/swap\.img/d' /etc/fstab
reboot
# スワップファイルの再作成
# 例: 128MB * 32 = 4GB
rm -f /swap.img
dd if=/dev/zero of=/swap.img bs=128M count=32
# 再作成したスワップファイルをスワップ領域としてマーク
chmod 600 /swap.img
mkswap /swap.img
swapon /swap.img
echo '/swap.img swap swap defaults 0 0' >> /etc/fstab
# スワップ領域が設定されているか確認
swapon -s
(オプション)ファイアウォールをデフォルト全通過に設定する
ファイアウォールサービスを無効にしてしまえばそれまでですが、そうすると必要になった際に面倒です。ひとまず全てを通過させるゾーンを割り当てておき、後からルールを追加して制御するといった運用が良いかと思います。
# Trustedゾーン(デフォルト全許可)を設定する
firewall-cmd --set-default-zone=trusted
firewall-cmd --get-active-zones
ファイアウォールルールを追加・削除する
# 例: 192.168.1.1のクライアントからのTCP:80(http)アクセスを許可し、それ以外のIPからのアクセスはは全て拒否する。
firewall-cmd --permanent --zone=trusted --add-rich-rule='rule priority="1" family="ipv4" source address="192.168.1.1" port protocol="tcp" port="80" accept'
firewall-cmd --permanent --zone=trusted --add-rich-rule='rule priority="1" family="ipv4" port protocol="tcp" port="80" drop'
# 設定の反映と内容確認
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all
# 例: 上記で追加したルールを削除する。
firewall-cmd --permanent --zone=trusted --remove-rich-rule='rule priority="1" family="ipv4" source address="192.168.1.1" port protocol="tcp" port="80" accept'
firewall-cmd --permanent --zone=trusted --remove-rich-rule='rule priority="1" family="ipv4" port protocol="tcp" port="80" drop'
# 設定の反映と内容確認
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all
[!NOTE]
firewalldの詳細は以下の公式ドキュメントを参考にしてください。
firewalld.org:Documentation
(オプション)SELinuxを無効化する
本来は有効にしておくべきなのでしょうが、システムによっては意図しない挙動となるため無効にします。
# SELinuxを無効化
cp -p /etc/selinux/config /etc/selinux/config.default
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 設定の反映のため再起動
reboot
# 現在の状態を確認
getenforce
(オプション)時刻同期先サーバーを設定する
標準では各ディストリビューションが推奨するNTPサーバが設定されていますが、なるべく近いNTPサーバーに向けた方が良いです。
# 時刻同期先サーバーを再設定
cp -p /etc/chrony.conf /etc/chrony.conf.default
sed -i '/^pool/d' /etc/chrony.conf
sed -i '/Please consider joining the pool/a pool <NTPサーバー> iburst' /etc/chrony.conf
# 設定変更の適用
systemctl restart chronyd
# 設定確認
chronyc sources
[!NOTE]
近いNTPサーバーが存在しない場合、日本国内であればntp.jst.mfeed.ad.jpおよびntp.nict.jpに設定しておくと良いでしょう。
(オプション)パッケージの追加インスト-ル
最小インストールでは入らないのですが、無いと不便なパッケージをインストールします。
dnf install -y traceroute bind-utils






