This article was machine-translated from the Japanese version.
Documenting the installation procedure for Arch Linux
Note that an overview of Arch Linux and comparisons with other OSes are omitted
ISO Installation
Download iso, sig, and b2sums.txt from the download page, and verify with the following commands
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
Creating USB Installation Media
Confirming USB Drive Name
Find the USB drive name with the following command, and confirm it is not mounted using lsblk
ls -l /dev/disk/by-id/usb-*
Also, record the drive path at this time
$ 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
Reformatting
If the USB was previously used as an installation media for another OS, delete the ISO 9660 filesystem signature with the following command
sudo wipefs --all $MYDRIVE
Writing the ISO File
sudo su -
cat archlinux-x86_64.iso > /dev/disk/by-id/usb-USB_SanDisk_3.2Gen1_01014dec9e899c24c9a933abd583c7db91b06dc2501e61ce2ea209f7b695be8ac04c00000000000000000000289980daff12780081558107712e850b-0\:0
sync
Preparing for Installation
Insert the media created in Creating USB Installation Media into the device you want to install on, and boot
Keyboard Layout Configuration
Since I am a Dvorak user, change the settings accordingly
loadkeys dvorak
Internet Connection Setup
This time, connect to a wireless network using iwctl
iwctl
[iwd]# device list
[iwd]# station {device_name} scan
[iwd]# station {device_name} get-networks
[iwd]# station {device_name} connect SSID
[iwd]# exit
Confirm the connection with the following command
ping archlinux.jp
System Clock Update
timedatectl status
Partition Setup
Here, installation to /dev/nvme0n1 is assumed
Drive Formatting
sudo nvme format /dev/nvme0n1 --ses=2
--ses=2 means Secure Erase, but some drives do not support this
If the output of the following command contains Not Supported, it is not supported, so specify --ses=1 instead
sudo nvme id-ctrl -H /dev/nvme0 | grep "Crypto Erase"
Whether --ses=1 is supported can also be confirmed with the following command
sudo nvme id-ctrl -H /dev/nvme0 | grep "Format NVM"
Partition Configuration
Here, UEFI/GPT usage is assumed
Create partitions interactively with the following command
gdisk /dev/nvme0n1
I could not record the log because I was working on a different terminal, so refer to GPT fdisk - ArchWiki for detailed creation methods
Here, we proceed assuming the following partitions were set up
/dev/nvme0n1p1- For
/boot - 1 GB
- For
/dev/nvme0n1p2- For swap
- Same capacity as memory
- More capacity than usual is allocated for hibernation
/dev/nvme0n1p3- For
/ - All remaining capacity
- For
Formatting Partitions
Format each of the three partitions
mkfs.fat -F 32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
Mounting File Systems
Mount or enable the created volumes
mount /dev/nvme0n1p3 /mnt
swapon /dev/nvme0n1p2
mount --mkdir /dev/nvme0n1p1 /mnt/boot
Installation
Selecting Package Mirrors
Edit /etc/pacman.d/mirrorlist and move geographically close mirrors to the top
Installing Essential Packages
pacstrap -K /mnt base linux linux-firmware sudo neovim
Generating fstab
genfstab -U /mnt >> /mnt/etc/fstab
chroot
arch-chroot /mnt
Timezone Configuration
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
Localization
First, edit /etc/locale.gen with neovim etc. and uncomment en_US.UTF-8 UTF-8 and ja_JP.UTF-8 UTF-8
Then, run the following
locale-gen
After that, create /etc/locale.conf and append the following content
LANG=en_US.UTF-8
Keymap Change
Create /etc/vconsole.conf and append the following content
KEYMAP=dvorak
Network Configuration
Hostname Setup
Create /etc/hostname and append your desired hostname
Network Setup
Here, connection to wireless LAN wlan0 is assumed
Enabling Network Interface
ip link show dev
Among the displayed <BROADCAST,MULTICAST,UP,LOWER_UP>, if UP is shown, it is enabled
Connecting to Wireless LAN
Here, iwd is used
iwctl
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect {SSID}
[iwd]# station wlan0 show
Also, enable the DHCP client
/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
systemctl restart iwd
Domain Name Resolution
iwd uses systemd-resolved or resolvconf for domain name resolution
Here, systemd-resolved is selected
systemctl start systemd-resolved
systemctl enable systemd-resolved
Connection Confirmation
ping 9.9.9.9
ping archlinux.org
Root Password Setup
passwd
Bootloader Installation
Here, EFI boot stub usage is assumed
First, install efibootmgr
pacman -S efibootmgr
Then, create a boot entry with the following command
efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=/dev/nvme0n1p3 rw initrd=\initramfs-linux.img'
Reboot
Exit the chroot environment with exit, then reboot with reboot
If the installation completed correctly, Arch Linux will boot