Rocky Linux 8 を VirtualBox に最小インストールする

# Rocky Linux 8 を VirtualBox にインストールする
2021年12月31日でメンテナンスサポートが終了した **CentOS 8** の代替 OS として、 **Rocky Linux 8** を VirtualBox に最小インストールする手順を確認します。

Rockey Linux 8 の予定されている**サポート期間は2029年5月31日まで**。 [^download]

7.x と 8.x のバージョン比較やコマンドラインでの仮想マシン作成手順などは「[CentOS 8 の最小インストール (VirtualBox) - Qiita](https://qiita.com/bezeklik/items/17580112c194b41d1d8a)」を参照してください。

[^download]: <q cite="https://rockylinux.org/ja/download"><strong>サポート終了予定日:</strong>2029年5月31日</q> - <cite>[ダウンロード | Rocky Linux](https://rockylinux.org/ja/download)</cite>

## 作業環境
* macOS Monterey 12.2.1
* VirtualBox 6.1.32

## ISO ファイルのダウンロード
### 公式サーバー
公式サイトからは Minimal、 DVD、 Boot、 Torrent、 Checksum がそれぞれダウンロード可能です。
https://rockylinux.org/download/

### ミラーサーバー
ただ、公式サイト rockylinux.org のサーバーはアメリカ合衆国にあるので、日本からはネットワークが近い国内のミラーサーバーを利用した方が短い時間でダウンロードできます。
https://ftp.iij.ad.jp/pub/linux/rocky/8/isos/x86_64/
https://ftp.riken.jp/Linux/rocky/8/isos/x86_64/

### 応答時間 (RTT) の確認
minimal.iso でも容量が 2GB もあるので、先にダウンロードサーバーの応答時間を ping コマンドで確認します。
```zsh
items=(
download.rockylinux.org
ftp.iij.ad.jp
ftp.riken.jp
)
for item in "${items[@]}" ; do ping -q -c 5 ${item} | grep round-trip ; done
```
```
round-trip min/avg/max/stddev = 117.546/119.387/124.131/2.487 ms
round-trip min/avg/max/stddev = 7.264/9.416/14.743/2.715 ms
round-trip min/avg/max/stddev = 9.663/18.522/29.212/6.732 ms
```
`round-trip` の `avg` を確認します。

上記の例ではそれぞれ `119.387`, `9.416`, `18.522` なので、今回の実行環境とタイミングでは ftp.iij.ad.jp がレイテンシが小さいようです。

### ダウンロード
```zsh
curl --remote-name https://ftp.iij.ad.jp/pub/linux/rocky/8/isos/x86_64/Rocky-8.5-x86_64-minimal.iso
```
帯域制御されていて axel コマンドなどで**分割ダウンロードしてもダウンロード時間は短くならない**ので、素直に curl コマンドでダウンロードした方が早く終わります。

### ファイルの整合性の確認
ファイルサイズが大きいので、正しく ISO ファイルがダウンロードできたかを確認します。

#### オリジナルの確認
公式サーバーの ockylinux.org 上にある CHECKSUM ファイルで、正しいファイルサイズとハッシュ値を確認します。
```zsh
curl --silent https://download.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM | grep 'minimal.iso'
```
```
# Rocky-8.5-x86_64-minimal.iso: 2126512128 bytes
SHA256 (Rocky-8.5-x86_64-minimal.iso) = 4eb2ae6b06876205f2209e4504110fe4115b37540c21ecfbbc0ebc11084cb779
```
CHECKSUM ファイルには boot.iso と dvd1.iso の情報も記載されているので `minimal.iso` で grep しています。

ファイルサイズは `2126512128` バイトで、ハッシュ値は `4eb2ae6b06876205f2209e4504110fe4115b37540c21ecfbbc0ebc11084cb779` が正しい値のようです。

#### ダウンロードファイルの確認
```zsh
FILESIZE=$(curl --silent https://download.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM | awk '/minimal.iso:/{print $3}')
CHECKSUM=$(curl --silent https://download.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM | awk '/minimal.iso)/{print $4}')
diff --ignore-all-space --report-identical-files <(wc -c < Rocky-8.5-x86_64-minimal.iso) <(echo $FILESIZE)
shasum --algorithm 256 --check <<< "${CHECKSUM} *Rocky-8.5-x86_64-minimal.iso"
```
```
Files /dev/fd/11 and /dev/fd/12 are identical
Rocky-8.5-x86_64-minimal.iso: OK
```
CHECKSUM ファイルの内容を加工して変数に代入し、ダウンロードした ISO ファイルのファイルサイズを diff コマンドで、ハッシュ値を shasum コマンドで検証します。

それぞれ「identical」「OK」と出力されれば問題ないはずです。

## 仮想マシンの作成 (VirtualBox)
ISO ファイルのダウンロードが完了したら VirtualBox で仮想マシンを作成します。

### 仮想マシンの作成
以下のいずれかの操作で仮想マシンを新規作成するダイアログが表示されます。
* メニューから「<kbd><samp>仮想マシン</samp></kbd>」 > 「<kbd><samp>新規... (⌘N)</samp></kbd>」を選択する
* <kbd><kbd class="key">⌘</kbd> + <kbd class="key">N</kbd></kbd> キーを押下する
* 「<kbd><samp>新規(N)</samp></kbd>」ボタンを押下する

#### 名前とオペレーティイングシステム
![スクリーンショット 2022-04-21 17.27.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/b4dc5113-9dba-c8eb-8012-bc7117796986.png)
「名前:」欄に「Linux」の文字列が入力されると、「タイプ:」欄に「Linux」が、「バージョン:」欄に「Linux 2.6 / 3.x / 4.x (64-bit)」が自動的に変更されます。

「バージョン:」を「Red Hat (64-bit)」に変更し、「続き」ボタンを押下します。

#### メモリーサイズ
![スクリーンショット 2022-04-21 17.28.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/d3cc60de-1894-0f06-ef86-d2e378357f48.png)
メモリーサイズは「1024」がデフォルトで指定されています。必要に応じて調整し、「続き」ボタンを押下します。

なお、「[標準的な RHEL インストールの実行](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation)」の「A.4. ディスクおよびメモリーの要件」に記載されている「表A.1 最小 RAM 要件」では「推奨される最小RAM」は「1.5 GiB」と記載されていますが、1024MBのままでも問題なくインストールすることができました。

#### ハードディスク
![スクリーンショット 2022-04-21 17.28.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/e42c3bf2-f1fe-7efb-cce8-4c2ab64aaa5d.png)
デフォルトで「仮想ハーディスクを作成する」が選択されているので、そのまま「作成」ボタンを押下します。

#### ハードディスクのファイルタイプ
![スクリーンショット 2022-04-21 17.28.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/d31fe7e2-51ec-85ba-3eeb-e3e1c6c64b41.png)
デフォルトで「VDI (VirtualBox Dsk Image)」が選択されているので、そのまま「続き」ボタンを押下します。

#### 物理ハードディスクにあるストレージ
![スクリーンショット 2022-04-21 17.28.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/e005cced-9161-f4f2-fa37-34049c38b73d.png)
デフォルトで「可変サイズ」が選択されているので、そのまま「続き」ボタンを押下します。

#### ファイルの場所とサイズ
![スクリーンショット 2022-04-21 17.29.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/b56c07b2-8b0a-7904-a10b-ef4c6a584b96.png)
デフォルトで「8.00 GB」が設定されています。任意のサイズを指定して、「作成」ボタンを押下します。
これで仮想マシンが作成されました。

なお、ディスク容量を後から追加しようとするとかなり面倒です。実際に容量を食うまでは仮想ハードディスクファイルのファイルサイズは増えないので、最初から余裕を持った値を指定しておいた方が良いでしょう。
ちなみに、今回の最小インストール直後の vdi ファイルのファイルサイズは約 2.18 GB です。

### 仮想マシンの設定
このままでもインストールは可能ですが、仮想マシンの設定を少し調整します。

以下のいずれかの操作で作成した仮想マシンの設定ダイアログを表示します。
* 作成した仮想マシンを選択した後、メニューから「<kbd><samp>仮想マシン</samp></kbd>」 > 「<kbd><samp>設定... (⌘S)</samp></kbd>」を選択する
* 作成した仮想マシンを選択した後、<kbd><kbd class="key">⌘</kbd> + <kbd class="key">S</kbd></kbd> キーを押下する
* 作成した仮想マシンを右クリックして「<kbd><samp>選択... (⌘S)</samp></kbd>」を選択する

#### システム（マザーボード）
「<kbd><samp>システム</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 18.43.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/0ae3d1fb-5c42-3e05-1442-90128d48151d.png)
以下の設定をデフォルトから変更します。
* 「起動順序:」の中の「フロッピー」のチェックを外します。
* 「チップセット:」を「ICH9」に変更します。
* 「拡張機能:」の「EFIを有効化(一部のOSのみ)」をチェック済みにします。

#### ディスプレイ
「<kbd><samp>ディスプレイ</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 19.01.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/7fe4dad5-eaef-9c02-c01b-79b9687422bd.png)
「表示倍率:」がデフォルトの「100%」だと小さく表示されてしまうので「200%」に設定します。

#### ストレージ
「<kbd><samp>ストレージ</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 18.47.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/24f077eb-9cb8-7388-f60e-3608f701fe4f.png)
以下の手順で ISO ファイルをマウントします。
1. 「ストレージデバイス」の「コントローラー: ID」の「空」をクリックして選択します。
2. 「属性」の「光学ドライブ:」の CD アイコンをクリックして、「ディスクファイルを選択...」をクリックします。
3. ダウンロードした Rocky-8.5-x86_64-minimal.iso を選択して「開く」ボタンを押下します。

#### オーディオ
「<kbd><samp>オーディオ</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 18.52.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/7f29f8fe-5d2a-b4e4-b024-ebd9035ac106.png)
「オーディオを有効化」のチェックを外します。

#### ネットワーク
「<kbd><samp>ネットワーク</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 18.54.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/ccc71d05-c28f-0c44-fc96-27c00bec3d37.png)
以下の手順でホストオンリーアダプターを追加します。
1. 「アダプター2」タブをクリックします。
2. 「ネットワークアダプターを有効化」をチェック済みにします。
3. 「割り当て:」を「ホストオンリーアダプター」に設定します。

#### ポート（USB)
「<kbd><samp>ポート</samp></kbd>」タブをクリックします。
![スクリーンショット 2022-04-21 18.57.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/dd0a3542-38f8-1578-e454-5103f5f60016.png)
以下の手順で USB を無効化します。
1. 「<kbd><samp>USB</samp></kbd>」タブをクリックします。
2. 「<kbd><samp>USBコントローラーを有効化</samp></kbd>」のチェックを外します。
3. 「OK」ボタンを押下して設定ダイアログを閉じます。

## Rocky Linux 8 のインストール
以下のいずれかの操作で仮想マシンを起動します。
* 設定した仮想マシンを選択した後、メニューから「<kbd><samp>仮想マシン</samp></kbd>」 > 「<kbd><samp>起動</samp></kbd>」 > 「<kbd><samp>通常起動</samp></kbd>」を選択する
* 設定した仮想マシンを選択した後、「<kbd><samp>起動(T)</samp></kbd>」アイコンを押下する
* 設定した仮想マシンを右クリックして「<kbd><samp>起動</samp></kbd>」 > 「<kbd><samp>通常起動</samp></kbd>」を選択する
* 設定した仮想マシンをダブルクリックする

### 起動メニューと起動オプションの追加
起動メニューの画面と操作は UEFI と BIOS で異なります。
仮想マシンの設定で、「システム」「マザーボード」の「拡張機能:」の「EFIを有効化(一部のOSのみ)」にチェックを入れた場合は UEFI として起動し、未チェックの場合は BIOS として起動します。

#### UEFI
起動メニューが表示されたら60秒以内に <kbd>e</kbd> キーを押下します。
![VirtualBox_Rocky Linux 8.5_21_04_2022_19_29_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/7b4b0b42-82ff-27a3-37a2-d8fe094f7d72.png)

コマンドラインが表示されたら、起動オプションを追加します。
![VirtualBox_Rocky Linux 8.5_21_04_2022_19_22_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/fb358bfd-18b1-dc89-0167-6d71375df96f.png)
カーソルで `linuxefi` の行末に移動し、 ` inst.resolution=1024x768` を追記して <kbd><kbd>Ctrl</kbd> + <kbd>x</kbd></kbd> を押下します。
`=` は <kbd>^</kbd> で入力できます。
`inst.` は省略可能ですが、将来的に必須になる可能性があります。

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/performing_a_standard_rhel_installation/index

#### BIOS
![VirtualBox_Rocky Linux 8.5_21_04_2022_19_08_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/0dc8744d-f865-7c9f-4589-362d83825ad5.png)
起動メニューが表示されたら <kbd>Tab</kbd> キーを押下します。

### 言語の選択
![VirtualBox_Rocky Linux 8.5_21_04_2022_19_44_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/8e63ba58-2ede-3c5d-ea55-48e6e7545e31.png)
日本語を選択する場合は、入力欄に「japanese」と入力すると絞り込まれるので、「日本語」を選択して「続行(C)」ボタンを押下します。
英語を選択する場合は、そのまま「Continue」ボタンを押下します。

### インストール概要
![VirtualBox_Rocky Linux 8_21_04_2022_19_54_57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/7aae6217-9d24-1679-d8f0-2357e93a766d.png)

#### ソフトウェアの選択(S)
「ソフトウェア」の「ソフトウェアの選択(S)」をクリックします。
![VirtualBox_Rocky Linux 8_21_04_2022_19_56_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/55c2610d-cd0f-ba5e-bf88-a411cb03136f.png)
「最小限のインストール」を選択し、左上の「完了 (D)」ボタンを押下します。

#### インストール先(D)
「システム」の「インストール先(D)」をクリックします。
![VirtualBox_Rocky Linux 8_21_04_2022_19_58_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/3def919b-7b5b-b8c6-5654-3329b020a1d3.png)
パーテーションを自動設定する場合は、そのまま左上の「完了 (D)」ボタンを押下します。

#### ネットワークとホスト名(N)
「システム」の「ネットワークとホスト名(N)」をクリックします。

##### enp0s3
![VirtualBox_Rocky Linux 8_21_04_2022_20_01_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/6790cd7b-c66b-284c-80cc-c157dd37484b.png)
1. 右下の「設定(C)...」ボタンを押下します。
2. 「全般」タブをクリックします。
3. 「優先的に自動接続する(A)」にチェックを入れて「保存(S)」ボタンを押下します。

##### enp0s8
![VirtualBox_Rocky Linux 8_21_04_2022_20_03_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/7018e3f5-176f-d09e-09a6-d836256594ff.png)
1. 「Ethernet (enp0s8)」を選択します。
2. 右下の「設定(C)...」ボタンを押下します。
3. 「全般」タブをクリックします。
4. 「優先的に自動接続する(A)」にチェックを入れて「保存(S)」ボタンを押下します。
5. 左上の「完了 (D)」ボタンを押下します。

#### root パスワード(R)
![VirtualBox_Rocky Linux 8_21_04_2022_20_04_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/5be9a01b-b332-1fa0-3ed4-d9df817895eb.png)

#### インストールの開始
右下の「インストールの開始(B)」ボタンを押下します。
![VirtualBox_Rocky Linux 8_21_04_2022_20_12_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/d3b53fe1-6eb1-cf14-60fc-5afd5f9ce9bf.png)
インストールが完了したら、「ACPIシャットダウン」します。

## 仮想マシーンのクローン
毎度 OS インストールをすると大変なので、仮想マシンをクローンしてから使います。

## 仮想マシンの起動
![VirtualBox_Rocky Linux 8_21_04_2022_20_16_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15175/b9390f02-96b4-3daa-1fec-f0f5a879f9b7.png)

### IP アドレスの確認
root ユーザーでログインしてホストオンリーアダプターの IP アドレスを確認します。

#### ip コマンド
```bash
ip -o -4 addr show enp0s8 | awk '{print $4}'
```
```
192.168.56.101/24
```
#### nmcli コマンド
```bash
nmcli device show enp0s8 | awk '/IP4.ADDR/{print $2}'
```
```
192.168.56.101/24
```
ip コマンドで `enp0s8` の IP アドレスを確認し、SSH クライアントで接続を確認します。
コマンドを覚えるのが難しい場合は `ip a | grep 192` とタイプするといいでしょう。

### SSH クライアントから接続
```
ssh root@192.168.56.101
```
iterm2 などの SSH クライアントから接続を確認します。