2026年8月26日

クアッドブート with rEFInd (その 4/5): Artix Linux のインストール

Linux ×2、FreeBSD ×2 クアッドブート (with rEFInd) の第 4 回です。前回の Zorin OS に引き続き、今回は Artix Linux をインストールします。

なお本稿ではクアッドブートを実現することが目的なので、OS のインストールは最小限にとどめ、より進んだ設定などは別の機会にやりたいと思います。

前回までのおさらい

ESP (nvme0n1p1) にはすでに rEFInd がインストールされています。また Zorin OS、Artix Linux、FreeBSD (×2) のうち、すでに Zorin OS が nvme0n1p2、p3 にインストールされている状態です。今回は Artix Linux をインストールし、rEFInd にエントリーを追加します。

インストール先のパーティションは次の 2 ヵ所です:

パーティション用途ディスクラベルファイルシステム備考
/dev/nvme0n1p4

/boot

artix-boot

ext4

暗号化しない

/dev/nvme0n1p5

/

artix-root

ext4

LUKS 暗号化

/boot 用のパーティションは、暗号化してしまうと rEFInd から読み出せなくなってしまうので暗号化しません。また、スワップに関しては、スワップ用のパーティションは作らず、スワップファイルで対応しようと思います。

インストールメディアの作成方法はその 1 の記事を参照してください。

Artix Linux のインストール

(なんとなくは聞いていたけど) Arch Linux には GUI のインストーラーが用意されていないらしく、そこから派生した Artix Linux も同じくらしく、ほぼほぼ手動でコマンドを打ち込んでいかなくてはなりません。

参考資料

インストールにあたり、次の資料を参考にしました。

インストーラの起動・ライブ環境へのログイン

Artix Linux のインストールメディアから起動すると、図 1 のような画面になります。全体を通して GUI で設定できるのはここだけでした。ここでタイムゾーンの設定などをしてもいいと思いますが、後からでもできるみたいなので、ここは単に「From Stick/HDD artix.x86_64」を選んで先に進みます。

図 1
図 1

「artix-live login:」とログインプロンプトが表示されたら、ライブ環境にログインします。ユーザー名は「root」、パスワードは「artix」です。

パーティション設定

パーティションはその 2 の記事で作成済みですが、Artix Linux を単独でインストールするならここで cfdisk というツールを使って作成することもできるみたいです (未確認)。

とにかく何らかの手段でパーティションの作成が済んでいるとして、次に SSD のデバイス名を知りたいので、lsblk コマンドで調べると、

# lsblk
...
nvme0n1      259:0    0 953.9G  0 disk
...

/dev/nvme0n1 らしいとわかります (もし違っていたら、この先は適当に読み替えてください)。

次に、ルートパーティション (ここでは冒頭の表にもあるとおり、nvme0n1p5 です) の暗号化を設定します。nvme0n1p5 を上書きするぞといわれるので、問題なければ大文字で「YES」と入力します。

# cryptsetup luksFormat /dev/nvme0n1p5

WARNING!
========
This will overwrite data on /dev/nvme0n1p5 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES

パスフレーズの入力を求められるので、2 回入力します。ここで入力したパスフレーズは、OS 起動時にこのパーティションをマウントする際に必要となります。

Enter passphrase for /dev/nvme0n1p5:
Verify passphrase:

ブートパーティションとルートパーティションをそれぞれフォーマットします。ルートパーティションのフォーマットの際は、早速先ほどのパスフレーズの入力を求められます。

# cryptsetup luksOpen /dev/nvme0n1p5 root
Enter passphrase for /dev/nvme0n1p5:

# mkfs.ext4 -L artix-boot /dev/nvme0n1p4
# mkfs.ext4 -L artix-root /dev/mapper/root

この時点でのパーティション情報は次のようになっていました。

# lsblk -f
NAME          FSTYPE      FSVER LABEL           UUID
nvme0n1
├─nvme0n1p1 vfat                              ...        ← EFI システムパーティション
├─nvme0n1p2 ext4                              ...        ← Zorin OS の /boot
├─nvme0n1p3 crypto_LUKS                       ...        ← Zorin OS の /
├─nvme0n1p4 ext4              artix-boot      ...        ← Artix Linux の /boot
├─nvme0n1p5 crypto_LUKS                       ...        ← Artix Linux の /
│ └─root   ext4              artix-root      ...
...

で、これらのパーティションをファイルシステムにマウントします。

# mount /dev/mapper/root /mnt
# mkdir /mnt/boot
# mount /dev/nvme0n1p4 /mnt/boot

ネットワーク接続

何らかの手段でインターネットに接続します。ここでは無線 LAN で接続する手順を説明します。

まず、ip link コマンドで Wi-Fi インターフェース名を確認すると、その出力から wlan0 であることがわかります。で、wlan0 を有効化します。

# ip link set wlan0 up

wpa_supplicant の設定ファイルを新規作成します。ファイル名は何でもいいですが、ここでは wpa.conf とし、保存先は /tmp とします。ライブ環境での /tmp は RAM 上にあり、パソコンの電源を切るとこのファイルは消えます。

# wpa_passphrase "自分のSSID" "自分のパスフレーズ" > /tmp/wpa.conf

必要に応じて作成したファイルを少し編集します (vi が使えます)。

/tmp/wpa.conf (差分)
+p2p_disabled=1
 network={
         ssid="自分のSSID"
+        scan_ssid=1
         #psk="自分のパスフレーズ"
         psk=自分のパスフレーズを暗号化
 }
  • 1 行目:  これがないと「nl80211: could not set inerface 'p2p-dev-wlan0' up」というエラーになったので、よくわからないけど入れています。
  • 4 行目:  無線 LAN ルーターのアクセスポイントが ANY 接続拒否設定になっている場合に必要な記述です。

ネットに接続し、IP アドレスを動的に取得して、通信を確認します。

# wpa_supplicant -B -i wlan0 -c /tmp/wpa.conf
successfully initialized wpa_supplicant
# dhcpcd wlan0
# ping artixlinux.org

NTP デーモンを起動して RTC と同期させます。

# dinitctl start ntpd

ベースシステムとカーネルのインストール

先ほどマウントしたパーティションにベースシステムやらカーネルやらをインストールします。ちなみに Artix Linux にはバージョン番号というものが存在せず、「ローリングリリース」というリリースモデルに基づいて頻繁にソフトウェアが更新されるスタイルのようです。どういう利点・難点があるのかよくわかっていないので、ここはコンサバに、LTS 版カーネルを選択しました。

# basestrap /mnt base base-devel dinit elogind-dinit cryptsetup
# basestrap /mnt linux-lts linux-firmware

インストール後の諸設定

/etc/fstab を作成します。

# fstabgen -U /mnt >> /mnt/etc/fstab

ライブ環境でマウントしたルートファイルシステムから、仮想的なルート環境に移行します (要は /mnt/boot とか /mnt/etc ではなく /boot や /etc のように本番環境と同様のパスでアクセスできるようになる)。

# artix-chroot /mnt

インストールした本番環境には vi すら用意されていないので、まずはテキストエディタをなにかしらインストールします。簡単な読み書きだけできればいいやと思って Vim にしたら、コンソール環境でのシンタックスハイライトがどぎつかったので、Neovim に変更しました。あとついでに less も入れています。

# pacman -S neovim less

タイムゾーンを設定します。

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

/etc/adjtime を生成するために hwclock を実行します。

# hwclock --systohc

公式 Wiki ではこのあたりでロケールの設定を行っていますが、しばらくコンソール環境での作業がつづくので、ここは飛ばしました。

root のパスワードを設定します。

# passwd

一般ユーザーを追加してパスワードを設定します。

# useradd -m -G wheel miji
# passwd miji

ホスト名を設定します。下の例では「tapioka」にしてます。

# echo "tapioka" > /etc/hostname

で、/etc/hosts に次の 1 行を追加します。

127.0.1.1        tapioka.localdomain  tapioka

公式 Wiki の手順ではこのあとネットワーク関係の設定をいろいろやっていますが、これは OS が無事にインストールできたら行うことにし、本稿では省略します。ここは無線 LAN での接続に必要となりそうなパッケージだけインストールしておきます。

# pacman -S wpa_supplicant dhcpcd

/etc/mkinitcpio.conf に LUKS 暗号化のための設定を追加します (末尾に「encrypt」を追加)。

/etc/mkinitcpio.conf (差分)
-HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystem fsck)
+HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystem fsck encrypt)

変更を反映させます。

# mkinitcpio -P

rEFInd に Artix Linux のエントリーを追加する

前節の続き (artix-chroot コマンドで仮想本番環境に移行した状態) からです。適当なマウントポイントを作って ESP をマウントします。

# mkdir /mnt/efi
# mount /dev/nvme0n1p1 /mnt/efi

Zorin OS をインストールしたときに作った refind.conf に、Artix Linux 用のエントリーを追加します。

/mnt/efi/EFI/refind/refind.conf (差分)
 timeout 0
 textonly
 scanfor manual

 menuentry "Zorin OS" {
     volume zorin-boot
     loader /vmlinuz
     initrd /initrd.img
     options "root=/dev/mapper/nvme0n1p3_crypt rw quiet splash"
 }

+menuentry "Artix Linux" {
+    volume artix-boot
+    loader /vmlinuz-linux-lts
+    initrd /initramfs-linux-lts.img
+    options "cryptdevice=UUID=<nvme0n1p5 の UUID>:root root=/dev/mapper/root rw"
+}

注意点として、14、15 行目を

    loader /boot/vmlinuz-linux-lts
    initrd /boot/initramfs-linux-lts.img

と書きたくなりがちですが (私だけ?) これはまちがいです。ライブ環境にいるときに /dev/nvme0n1p4 を /mnt/boot にマウントしたので /boot の下にカーネルがあると勘違いしがちですが、実際は /dev/nvme0n1p4 の直下にあり、13 行目でそのパーティションを指定しているので

    loader /vmlinuz-linux-lts
    initrd /initramfs-linux-lts.img

と書くのが正しいです。ちなみに、カーネルのインストール時に LTS ではないほうを選択した場合は、

    loader /vmlinuz-linux
    initrd /initramfs-linux.img

と書きます。

また、16 行目の nvme0n1p5 の UUID を心眼で書き写すのは大変なので、cryptsetup luksUUID コマンドの出力を refind.conf に追記してから編集するとよいと思います (上書き (>) にならないように注意してください)。

# cryptsetup luksUUID /dev/nvme0n1p5 >> refind.conf

で、/mnt 以下をアンマウントして 再起動すれば、Artix Linux が起動するはずです。

# exit
# umount -R /mnt
# cryptsetup close root
# reboot

スワップファイルの作成

無事に Artix Linux が起動したら、スワップファイルを作成します。

まず現状確認から。

$ swapon --show
(なにも出力されない)

ルート権限でスワップファイルを作成します。サイズは 8 GB にしてみました。

# mkswap -U clear --size 8G --file /swapfile
# ls -al /swapfile
-rw------- 1 root root 8589934592 Aug 10 10:36 /swapfile
# swapon /swapfile

/etc/fstab に次の 1 行を追加します。

/etc/fstab
/swapfile none swap defaults 0 0

一応再起動してから、有効になったかを確認します。

$ swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -2

いいんではないでしょうか。

おまけ 1: ライブ環境から本番環境への移行手順まとめ

なにかと機会が多そうな、ライブ環境から本番環境への移行手順をまとめておきます。

パーティションのマウント:

# cryptsetup luksOpen /dev/nvme0n1p5 root
# mount /dev/mapper/root /mnt
# mount /dev/nvme0n1p4 /mnt/boot

(必要に応じて) ネットワーク接続:

# wpa_passphrase "自分のSSID" "自分のパスフレーズ" > /tmp/wpa.conf
# vi /tmp/wpa.conf (必要に応じて編集する)
# wpa_supplicant -B -i wlan0 -c /tmp/wpa.conf
# dhcpcd wlan0

本番環境に移行:

# artix-chroot /mnt

ライブ環境に戻って後始末:

# exit
# umount -R /mnt
# cryptsetup close root

おまけ 2: Aritx Linux のインストールメディアを使って rEFInd をインストールする

本稿では rEFInd はすでにインストール済みであるものとして話を進めました。その rEFInd は前回の記事で Zorin OS からインストールしたものです。じゃあ Zorin OS がなかったらどうなるの?てなことになるかもしれないので、おまけとして書いておきます。rEFInd のインストールは基本的に ZIP ファイルを解凍して中身を ESP にコピーするだけなので、特定の OS やツールに依存することはありません。頑張れば Artix Linux のインストールメディアからもインストールすることができます。以下かいつまんで説明しますが、詳しくは公式サイトの Installing rEFInd Manually Using Linux などを参照してください。

インストールメディアから起動してライブ環境にログインしたら、おまけ 1 を参考にインターネットに接続して artix-chroot します。

で、 rEFInd のダウンロードと解凍を行うためのツールを何かしらインストールします。

# pacman -S wget unzip

rEFInd をダウンロードして解凍します。

# cd /tmp
# wget https://sourceforge.net/projects/refind/files/0.14.2/refind-bin-0.14.2.zip
# unzip refind-bin-0.14.2.zip

ESP を FAT32 でフォーマットして、適当なマウントポイントにマウントします。

# mkfs.fat -F32 /dev/nvme0n1p1
# mkdir -p /mnt/efi
# mount /dev/nvme0n1p1 /mnt/efi

ESP に rEFInd 関連のファイルを置くためのディレクトリを作って、ZIP を展開した中から必要なファイルをコピーします (ここは公式サイトのやり方からちょっと外れているので、気になる方は公式のほうを確認してください)。

# mkdir -p /mnt/efi/EFI/refind/drivers_x64/
# cd /tmp/refind-bin-0.14.2.zip/refind/
# cp refind_x64.efi /mnt/efi/EFI/refind/
# cp drivers_x64/ext4_x64.efi /mnt/efi/EFI/refind/drivers_x64/
# cp -r tools_x64/ /mnt/efi/EFI/refind/tools_x64/

refind_x64.efi をデフォルト/フォールバックブートパス (EFI/BOOT/) にもインストールします。

# mkdir -p /mnt/efi/EFI/BOOT/
# cp refind_x64.efi /mnt/efi/EFI/BOOT/bootx64.efi

参考: Arch Wiki

あとは上のほうで書いたように refind.conf を作成し、ライブ環境に戻って再起動します。

環境によっては UEFI 設定画面でブートエントリーを編集する必要があるかもしれません。その場合は前回の記事を参照してください。

関連記事

広告