ChromebookでAlmaLinux

# 1. 前提条件
Linux環境（Crostini）が使えるようになっていること

* 参考情報
    * [Chromebook で Linux をセットアップする \- Chromebook ヘルプ](https://support.google.com/chromebook/answer/9145439?hl=ja)
    * [Chromebook Crostini の構造を簡単に辿る \#Linux \- Qiita](https://qiita.com/mksh/items/7d244230597a34a10c98)
    * [Chromebook Linux環境 備忘録 \#ChromeOS \- Qiita](https://qiita.com/kizitorashiro/items/ccec4d02c2550832214f)
    * [ChromebookにDebian以外の環境を作り，初期設定までする \#archLinux \- Qiita](https://qiita.com/alpaca-honke/items/86c03b59eef7aed47004)

# 2. 導入
Chromebookで順当にLinux環境を構築するとCrostiniが使えるようになり、デフォルトでLXD上にてLinux環境（Debian、2024/06/14時点で12 bookworm）がインストールされる。このLXDに新たにAlmaLinuxを追加し、RHEL系のLinux環境を作るところがゴールとなる。

LXDの詳解は省く（というか初めて触ったので分からない）として、概略としてはコンテナ環境でありDocker同様イメージサーバを指定しておくとコマンド一発で新たな仮想環境を手に入れることができる。

ところが、2024/06/14現在、Chromebookの標準でLinux環境を構築した際に入るLXDのイメージサーバである「https://images.linuxcontainers.org 」からイメージをダウンロードできない状態となっている。正確に表現すると、LXD経由でこのイメージサーバにアクセスできなくなっている。

すごくざっくり説明すると、何やら内部で揉め事があったらしく(参考：[Important notice for LXD users \(image server\) \- News \- Linux Containers Forum](https://discuss.linuxcontainers.org/t/important-notice-for-lxd-users-image-server/18479/9))上記リポジトリは廃止されるとのことだった。後継の「Incus」を使うのが良さそうではあるものの、ChromebookではデフォルトでLXDとなっているため使用するのは難しい（デフォルトのLinux環境内にIncusを入れることは可能）。今回は、上記と同等のイメージサーバを指定してからコマンドを実行する手法を取ったため、その手順を記載する。

# 3. インストール手順
`Ctrl + Alt + T` でcroshを起動し、以下コマンドを実行する。

```shell_session
crosh> vsh termina
(termina) chronos@localhost ~ $ lxc remote add canonical https://images.lxd.canonical.com --protocol=simplestreams
(termina) chronos@localhost ~ $ lxc image list canonical:almalinux/8/amd64
+----------------------+--------------+--------+-----------------------------------+--------------+-----------------+----------+-------------------------------+
|        ALIAS         | FINGERPRINT  | PUBLIC |            DESCRIPTION            | ARCHITECTURE |      TYPE       |   SIZE   |          UPLOAD DATE          |
+----------------------+--------------+--------+-----------------------------------+--------------+-----------------+----------+-------------------------------+
| almalinux/8 (3 more) | 92237f70692f | yes    | AlmaLinux 8 amd64 (20240613_0011) | x86_64       | VIRTUAL-MACHINE | 836.56MB | Jun 13, 2024 at 12:00am (UTC) |
+----------------------+--------------+--------+-----------------------------------+--------------+-----------------+----------+-------------------------------+
| almalinux/8 (3 more) | ebd4b6127697 | yes    | AlmaLinux 8 amd64 (20240613_0011) | x86_64       | CONTAINER       | 128.92MB | Jun 13, 2024 at 12:00am (UTC) |
+----------------------+--------------+--------+-----------------------------------+--------------+-----------------+----------+-------------------------------+
```

上記手順では、「https://images.lxd.canonical.com 」を「canonical」の名称で登録している。「canonical」の部分は任意の名前で良い。

続いて、以下の通りコマンドを実行することでAlmaLinuxをインストールすることができる。`almalinux8`はホスト名なので好きなものを設定する。

```shell_session
(termina) chronos@localhost ~ $ lxc launch canonical:almalinux/8/amd64 almalinux8
Creating the instance
Instance name is: almalinux8           
Starting almalinux8
(termina) chronos@localhost ~ $ lxc list
+------------+---------+------------------------+-----------------------------------------------+-----------+-----------+
|    NAME    |  STATE  |          IPV4          |                     IPV6                      |   TYPE    | SNAPSHOTS |
+------------+---------+------------------------+-----------------------------------------------+-----------+-----------+
| almalinux8 | RUNNING | 100.115.92.204 (eth0)  | 2400:2412:1cc4:c200:216:3eff:fe2f:4c5a (eth0) | CONTAINER | 0         |
+------------+---------+------------------------+-----------------------------------------------+-----------+-----------+
| penguin    | RUNNING | 192.168.39.1 (virbr1)  | 2400:2412:1cc4:c200:216:3eff:fe82:dcf (eth0)  | CONTAINER | 0         |
|            |         | 192.168.122.1 (virbr0) |                                               |           |           |
|            |         | 172.17.0.1 (docker0)   |                                               |           |           |
|            |         | 100.115.92.205 (eth0)  |                                               |           |           |
+------------+---------+------------------------+-----------------------------------------------+-----------+-----------+
```

接続し確認する。

```shell_session
(termina) chronos@localhost ~ $ lxc exec almalinux8 bash
[root@almalinux8 ~]# whoami
root
[root@almalinux8 ~]# hostname
almalinux8
```

無事インストールできた。このAlmaLinux8の上げ落としは以下コマンドとなる。

```shell_session
(termina) chronos@localhost ~ $ lxc start almalinux8
(termina) chronos@localhost ~ $ lxc stop almalinux8
```

要らなくなったら以下で削除できる。

```shell_session
(termina) chronos@localhost ~ $ lxc delete almalinux8
```