ミニPCにRocky Linux 9.4をインストールする

著者画像
Toshihiko Arai

はじめに

この記事では、CentOSの後継として開発されたRHEL(Red Hat Enterprise Linux)互換のオープンソースOS「Rocky Linux」をミニPCにインストールして、開発用のローカルサーバーとして使うまでの手順を忘備録として残しておきます。

ミニPC とは

ミニPCは、デフォルトでWindows 11 がインストールされている、2万円から購入できるパソコンです。mac miniのようにお弁当箱型の小型サイズで、ちょっとしたスペースに配置できるので置き場所に困りません。

TRIGKEY ミニPC N100

私が購入したミニPCは、 TRIGKEYというメーカーのもの です。

2万円台の価格にも関わらずメモリ16GB・ストレージ500GB・CPU3.4GHzと、開発用サーバー用途としてはスペック的に申し分ありません。

Rocky Linux の ISO ファイルをダウンロード

こちらのページから Rocky Linux の ISOファイルをダウンロードします。 - https://rockylinux.org/ja-JP/download

開発用のローカルサーバーとして使うため、CUIで良いのですが、CUIだとWiFiドライバーなどがうまくできなかったため、GUIのDVD ISO(v9.4)をダウンロードしました。ミニPCのアーキテクチャは Intel(x86_64) なので、それを選択します。

インストールはUSBメモリ経由で行います。ISOファイルが10GB以上ありますので、USBメモリの容量に注意します。また、USBメモリへの書き込みは、macOSで操作します。

USBメモリのフォーマット

まず、macOSでUSBメモリをフォーマットしておきます。

  1. USBメモリをMacに接続します。
  2. 「ディスクユーティリティ」を開きます。
  3. 左側のリストからUSBメモリを選択し、「消去」をクリックします。
  4. 名前は任意に設定し、フォーマットは「MS-DOS(FAT)」、方式は「マスターブートレコード(MBR)」にします。
  5. 「消去」をクリックしてフォーマットを完了します。

USBデバイスの確認

ターミナルを開き、USBメモリのデバイス名を確認します。

diskutil list

通常、/dev/diskXの形式で表示されます。ここで、XはUSBメモリの番号です。間違えるとデータが消える可能性があるので、必ずUSBメモリのデバイス名を確認してください。

ISOファイルを書き込む

次に、ddコマンドを使ってISOファイルをUSBメモリに書き込みます。

まず、次のコマンドでUSBメモリをアンマウントします(/dev/diskXの部分は実際のデバイス名に置き換えてください)。

diskutil unmountDisk /dev/diskX

ISOファイルを書き込みます。path/to/RockyLinux-9.4-DVD.iso は実際のISOファイルのパスに置き換えてください。

sudo dd if=/path/to/RockyLinux-9.4-DVD.iso of=/dev/diskX bs=4m

ここでも、USBメモリのデバイス名(/dev/diskX)を絶対に間違えないように注意して下さい。 ※ ddコマンドの実行には時間がかかることがあります。

書き込みが完了したら、以下のコマンドで安全に取り出します。

diskutil eject /dev/diskX

Mini PCにUSBメモリを接続してインストール

USBメモリをMini PCに接続し、BIOSまたはUEFI設定でUSBからのブートを有効にします。

  1. Mini PCの電源を入れ、ブートメニューにアクセスします(通常、F12、F2、Escなどのキーを押します)。
  2. USBメモリから起動を選択します。
  3. Rocky Linuxのインストーラが起動したら、インストール手順に従ってインストールします。

ホスト名を設定し、ホスト名でSSHアクセス

Rocky Linuxでホスト名を設定し、ホスト名でSSHアクセスできるようにする手順は以下の通りです。

ホスト名の設定

新しいホスト名を設定します。以下のコマンドでホスト名を変更してください(例として myserver を使用しています)。

sudo hostnamectl set-hostname myserver

ホスト名の確認

設定が正しく行われたか確認するために、以下のコマンドでホスト名を確認します。

hostnamectl

/etc/hostsファイルの更新

localhost からホスト名でアクセスできるようにするため、 /etc/hosts ファイルにホスト名とローカルIPアドレスを追加します。以下のように設定します。

sudo vi /etc/hosts

以下の行を追加または編集します。

127.0.0.1   myserver

他のデバイスからホスト名でアクセスする

他のデバイス(例: macOS)からホスト名 myserver でアクセスするには、DNS設定または /etc/hosts にホスト名とIPアドレスの関連付けが必要です。

sudo vi /etc/hosts

/etc/hosts に以下のように追加します。

[mini PCのIPアドレス] myserver

SSHでホスト名で接続

設定が完了したら、macOSから以下のコマンドでホスト名で接続をテストします。

ssh ユーザー名@myserver

以上で、ホスト名を使ってSSHでアクセスできるようになります。

avahi-daemon で マルチキャストDNS をサポートする

avahi-daemon は mDNS(マルチキャストDNS)をサポートし、LAN内のサーバーへドメインでアクセスできるように名前解決してくれます。ラズパイでは hostname にサーバー名を設定しておくと、デフォルトでホスト名でアクセスできたりします。実はラズパイ(Raspberry Pi OS)はデフォルトで avahi-daemon が設定されて動いていたみたいです。ubuntu-server などの普通のLinuxでは、自分で avahi-daemon をインストールする必要がありますので、その手順を記しておきます。

ホスト名の確認と設定

ホスト名を確認するには、以下のコマンドを使用します。

hostnamectl

もし your-hostname がホスト名でない場合、ホスト名を your-hostname に設定します。

sudo hostnamectl set-hostname your-hostname

その後、/etc/hostname ファイルに正しく設定されているかも確認してください。

mDNS対応のインストール

avahi-daemon をインストールしてmDNS対応を有効にします。

sudo apt update
sudo apt install avahi-daemon
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

Macからのアクセス

以上で your-hostname.local にアクセスできるはずです。sshなどでアクセスしてみましょう

ssh username@your-hostname.local

macOSからRocky LinuxへパスワードなしでSSH接続する方法

SSHでパスワードなしでログインする方法を紹介します。

macOSからRocky Linuxにパスワードなしでログインするには、SSH公開鍵認証を設定します。この場合、秘密鍵の名前はid_rsa_rockyとします。

鍵の生成(必要に応じて)

macOSで、id_rsa_rockyという名前の鍵がまだない場合は生成します。

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_rocky

パスフレーズを求められた場合は、空のままEnterを押すと、パスワードなしでログインできます。

公開鍵をRocky Linuxに転送

次に、公開鍵をRocky Linuxにコピーします。

ssh-copy-id -i ~/.ssh/id_rsa_rocky.pub user@rocky-linux-host

Rocky Linux側での設定確認

公開鍵が正しく配置されていることを確認します。

ログイン後、~/.ssh/authorized_keysに公開鍵が追加されているか確認します。

cat ~/.ssh/authorized_keys

SSHディレクトリとファイルのパーミッションを確認します。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Rocky LinuxのSSH設定ファイル/etc/ssh/sshd_configに以下の設定が含まれているか確認します。

sudo vi /etc/ssh/sshd_config

以下の行を探して確認または修正します:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no

変更した場合はSSHサービスを再起動します:

sudo systemctl restart sshd

macOSでSSH設定を更新

~/.ssh/configに設定を追加して、指定した鍵を使うようにします。

vi ~/.ssh/config

以下の内容を追加します:

Host rocky-linux-host
    HostName rocky-linux-host
    User user
    IdentityFile ~/.ssh/id_rsa_rocky

保存後、ファイルのパーミッションを確認します。

chmod 600 ~/.ssh/config

接続テスト

以下のコマンドで接続をテストします。

ssh rocky-linux-host

問題がなければパスワードなしでログインできます。

SSH設定を変更してディレクトリ権限の制限を緩和する

通常、サーバー側の /home/rocky はディレクトリ権限を700にする必要があります。そうしないと、パスワードを要求されてしまいます。何かの理由でホームディレクトリを700にできない場合、SSHが公開鍵認証を許可するように設定を調整することが可能です。以下の手順で対応してください。

解決方法

SSHの設定で、ディレクトリ権限の厳密なチェックを無効化できます。ただし、これはセキュリティリスクを伴うため注意が必要です。

SSH設定ファイルを編集します。

sudo vi /etc/ssh/sshd_config

次の設定を追加または変更します:

StrictModes no

SSHサービスを再起動します。

sudo systemctl restart sshd

Amazonで探す