Arch Linux
のインストール手順を記録する
なお、Arch Linuxの概要や、他のOSとの比較等は省略する
ISOインストール
ダウンロードページからiso、sig、b2sums.txtをダウンロードし、以下のコマンドで検証
b2sum -c b2sums.txt
gpg --auto-key-locate clear,wkd -v --locate-external-key pierre@archlinux.org
gpg --verify archlinux-x86_64.iso.sig archlinux-2025.12.01-x86_64.iso
USBインストールメディア作成
USBドライブ名確認
以下のコマンドでUSBドライブの名前を調べ、それらがマウントされていないことを lsblk で確認
ls -l /dev/disk/by-id/usb-*
また、この時にドライブのパスを記録
$ ls -l /dev/disk/by-id/usb-*
lrwxrwxrwx 1 root root 9 Dec 3 20:43 /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Dec 3 20:43 /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 3 20:43 /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0:0-part2 -> ../../sda2
$ export MYDRIVE=/dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0:0
再フォーマット
以前そのUSBを他のOSのインストールメディアをして使用していた場合、以下のコマンドでISO 9660ファイルシステムシグネチャを削除
sudo wipefs --all $MYDRIVE
ISOファイル書き込み
sudo su -
cat archlinux-x86_64.iso > /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0\:0
sync
インストールの準備
USBインストールメディア作成 で作成したメディアをインストールしたいデバイスに挿し、起動
キーボードレイアウト設定
自分はDrorakユーザのため、そのように設定を変更
loadkeys dvorak
インターネット接続設定
今回はiwctl を用いて無線ネットワークに接続
iwctl
[iwd]# device list
[iwd]# station {device_name} scan
[iwd]# station {device_name} get-networks
[iwd]# station {device_name} connect SSID
[iwd]# exit
以下のコマンドで接続を確認
ping archlinux.jp
システムクロック更新
timedatectl status
パーティション設定
ここでは /dev/nvme0n1 にインストールすることを前提として話を進める
ドライブのフォーマット
sudo nvme format /dev/nvme0n1 --ses=2
--ses=2 は Secure Erase の意味だが、一部のドライブはこれに対応していない
以下のコマンドの出力結果に Not Supported が含まれていれば対応していないため、代わりに --ses=1 を指定
sudo nvme id-ctrl -H /dev/nvme0 | grep "Crypto Erase"
なお --ses=1 に対応しているかは、以下のコマンドで同様に確認が可能
sudo nvme id-ctrl -H /dev/nvme0 | grep "Format NVM"
パーティション設定
ここでは UEFI/GPT の使用を前提として話を進める
以下のコマンドにより対話的に作成
gdisk /dev/nvme0n1
別端末上での作業によりログを記録できなかったため、詳細な作成方法はGPT fdisk - ArchWiki
を参照すること
ここでは以下のパーティションを設定したとして話を進める
/dev/nvme0n1p1/boot用- 1 GB
/dev/nvme0n1p2- スワップ用
- メモリと同容量
- ハイバネーション のため通常よりも容量を多く取っている
/dev/nvme0n1p3/用- 残りの全ての容量
パーティションのフォーマット
3つのパーティションをそれぞれフォーマット
mkfs.fat -F 32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
ファイルシステムのマウント
作成したボリュームをマウントあるいは有効化
mount /dev/nvme0n1p3 /mnt
swapon /dev/nvme0n1p2
mount --mkdir /dev/nvme0n1p1 /mnt/boot
インストール
パッケージのミラーの選択
/etc/pacman.d/mirrorlist を編集し、地理的に近いミラーを上部に移動させる
必須パッケージのインストール
pacstrap -K /mnt base linux linux-firmware sudo neovim
fstabの生成
genfstab -U /mnt >> /mnt/etc/fstab
chroot
arch-chroot /mnt
タイムゾーン設定
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
ローカリゼーション
まず /etc/locale.gen を neovim 等で編集し en_US.UTF-8 UTF-8 と ja_JP.UTF-8 UTF-8 をアンコメント
その後、以下を実行
locale-gen
その後 /etc/locale.conf を作成し、以下の内容を追記
LANG=en_US.UTF-8
キーマップ変更
/etc/vconsole.conf を作成し、以下の内容を追記
KEYMAP=dvorak
ネットワーク設定
ホストネーム設定
/etc/hostname を作成し、任意のホストネームを追記
ネットワーク設定
ここではワイヤレスLAN wlan0 への接続を前提に話を進める
ネットワークインターフェイスの有効化
ip link show dev
表示される <BROADCAST,MULTICAST,UP,LOWER_UP> のうち UP が表示されていれば有効
ワイヤレスLANへ接続
ここでは iwd を利用
iwctl
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect {SSID}
[iwd]# station wlan0 show
また、DHCPクライアントを有効化
/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
systemctl restart iwd
ドメイン名解決
iwd はドメイン名前解決のために systemd-resolved または resolvconf を利用
ここでは systemd-resolved を選択
systemctl start systemd-resolved
systemctl enable systemd-resolved
接続確認
ping 9.9.9.9
ping archlinux.org
ルートパスワード設定
passwd
ブートローダーのインストール
ここではEFI ブートスタブの使用を前提に話を進める
まず efibootmgr をインストール
pacman -S efibootmgr
その後、以下のコマンドによりブートエントリを作成
efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=/dev/nvme0n1p3 rw initrd=\initramfs-linux.img'
再起動
exit によりchroot環境から抜けた後 reboot で再起動
正しくインストールが完了していればArch Linuxが起動する