ProxmoxにArch LinuxのVMをたてるまで

# 筆者について

- もうすぐ卒業の高校３年生（これはもうそろそろ変えないと）

# 本編

今年最初のチャレンジでした。ProxmoxにArch LinuxのVMを建てました。また、Cosmic Desktopもインストールしましたので、そこまでの変遷を記したいと思っています。ちなみに、今回は`aarch64`もほぼ同じ手順でUTMにインストールしましたので、その手順も記載しておきます。

## Archbootのダウンロード

まずは必要なものから準備！Archbootをダウンロードします。

https://archboot.com/#image-types

好きなサーバーの適切なアーキテクチャを選択し`iso>archboot-{ver}-arch1-1-x86_64.iso`をダウンロードします。

## VMの設定

基本的にはお好みのままです。Proxmoxの場合、BIOSの設定をUEFIに変更してください。また、ISOの起動をした時のブートメニューからUEFI Firmwareの設定からSecure BootをOffにしてください。

## いざ、インストール

さて、ここからはISOを起動してインストールしていきましょう。そのまま、Archbootから起動してください。下の画面まで来たら`Ctl+C`でインストーラーを中断しましょう。バンバンコマンドを入力していきましょう。

![Screenshot 2025-01-01 at 21.59.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/155bc23d-4936-2714-9170-2377a83e3696.png)

### 1-1. キーボードレイアウトの設定

デフォルトはUSキーボードです。JIS配列の人は変更しましょう。

```bash
loadkeys jp106
```

### 1-2. 起動モードの確認

UEFIモードで起動はしていますが、一同確認しておきましょう。下のコマンドを実行してNot foundならBIOSモードで起動してるのでUEFIモードで起動するようにしてください。

```bash
ls /sys/firmware/efi/efivars
```

### 1-3.ネットワーク接続の確認

VirtoIOで接続していますので、する必要はないですが、一応のため、、、。

```bash
ip link
ping google.com
```

### 1-4. パーティションの作成

`fdisk`を使ってパーティションを切ります。構成は以下のようにしています。

| Boot領域 | Swap領域 | Root領域 |
|:-------:|:-------:|:--------:|
|512 MB   |512 MB   |残り全て   |

まずは、fdiskでインストール先のディスク番号を確認していきます。

```bash
lsblk

# Proxmoxの時は以下のことが多い
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   8G    1 disk

# Proxmoxの時は以下のことが多い
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vda      8:0    0   8G    1 disk
```

それぞれ、fdiskでパーティションを切っていきましょう。

```bash
fdisk /dev/sda # インストールするディスクに合わせて変更してください。
```

以下のように入力してしてパーティションを切っていきましょう。

1. `n` (新しいパーティションの作成)
2. `p` （Primaryの作成なので`p`）
3. `ENTER`（パーティション番号はそのまま、もしくは、各自に合わせてEFI、Swap、Rootが1、2、3になるようにしてください。）
4. `ENTER` (開始セクタはデフォルトのまま)
5. `+512MB` OR `ENTER`　（EFI領域とSwap領域は前者、Root領域は後者）（LinuxのRoot領域の作成時はここで終わり）
6. `t`（パーティションタイプの指定）
7. `ef` OR `82` （EFI領域を作成するときは前者、Swap領域を作るときは後者）

あとは、フォーマットしていきましょう。

```bash
# EFI領域
mkfs.fat -F 32 /dev/sda1

# Swap領域
mkswap /dev/sda2

# Root領域
mkfs.ext4 /dev/sda3
```

### 1-5. ファイルシステムのマウント

```bash
mount /dev/sda3 /mnt
mount --mkdir /dev/sda1 /mnt/boot
swapon /dev/sda2
```

### 1-6. パッケージのインストール

`/etc/pacman.d/mirrorlist`を編集します。好きなサイトを選択してください。

```bash
nano /etc/pacman.d/mirrorlist
```

インストールしましょう。

```bash
pacstrap -K /mnt base linux linux-firmware
```

### 2-1. `fstab`の設定

```bash
genfstab -U /mnt >> /mnt/etc/fstab
```

### 2-2. `chroot`に入る

システムの設定に移ります。

```bash
arch-chroot /mnt
```

### 2-3. パッケージのインストール

ここで何個かパッケージをインストールしておきます。

```bash
pacman -S nano vi networkmanager sudo
```

### 2-4. タイムゾーンの設定

タイムゾーンが間違っている場合は設定してください。

```bash
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
```

### 2-5. ローカリゼーション

```bash
nano /etc/locale.gen

# 以下の２つをアンコメント
+ en_US.UTF-8 UTF-8
+ ja_JP.UTF-8 UTF-8
# 保存して終了

locale-gen

nano /etc/locale.conf

# 以下を記載
LANG=en_US.UTF-8
```

### 2-6. ネットワーク設定

ホストネームの設定

```bash
nano /etc/hostname
# 適当に設定
```

```bash
nano /etc/resolv.conf

+ nameserver 8.8.8.8
```

ついでに、`NetworkManager`を起動するように設定しておきます。

```bash
systemctl enable NetworkManager.service
```

### 2-7. ユーザー設定

まずは、Rootのパスワードを設定します。

```bash
passwd
```

次に、デフォルトのユーザーを作成しておきます。`user`は適宜置き換えてください。

```bash
useradd -m -g wheel user
passwd user
visudo

# 以下の行をアンコメント
+ %wheel ALL=(ALL:ALL) AL
```

ちなみに、`vi`で文字を削除するときは`x`で消し、`:wq`で保存します。

### 2-8. ブートローダーのインストール

UEFIブートローダーのインストールをします。

```bash
pacman -S grub efibootmgr

# Proxmoxのとき
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub

# aarch64のとき
grub-install --target=arm64-efi --efi-directory=/boot/efi --bootloader-id=grub

grub-mkconfig -o /boot/grub/grub.cfg
```

### 2-9. インストールしたOSから起動

```bash
exit

umount /mnt -R

shutdown -h now
```

## おまけ編

ほぼ終わっているのですが、デスクトップ環境を使いたい人向けに一応Cosmicのインストール方法と起動設定だけ下に書いておきます。

```bash
sudo pacman -S cosmic # 必要なものは全部インストール

sudo systemctl enable cosmic-greeter

sudo systemctl start cosmic-greeter
```

# 最後に

今回初めてArchをインストールしたのですが、コマンドに使い慣れたのか結構簡単にインストールできるようになりました。今後は他のArch系のインストールもしていきたいと思います。

# 参考文献

https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89

https://qiita.com/honeniq/items/394e6a613ad22030204f#1-11-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88

https://qiita.com/honeniq/items/eed06c6b436db215b0b0#3-8-%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC

https://qiita.com/daikichi298/items/7aec4ca220f8b1169cbd#os%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

https://zenn.dev/ytjvdcm/articles/0efb9112468de3#%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%89%B2%E5%BD%93

https://wiki.archlinux.jp/index.php/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A

https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9#.E3.83.96.E3.83.BC.E3.83.88.E3.83.AD.E3.83.BC.E3.83.80.E3.83.BC