[ 最終更新日:2026-05-27(Wed) 08:51 ]
- 迷いなし!ArchLinuxのインストール
- 1.はじめに
- 2.準備するもの
- 3.インストールディスクから起動
- 4.rootパスワード設定と時刻合わせ
- 5. インストール
- (01)キーボードレイアウトの変更
- (02)ドライブのバーティショニング
- (03)HDDのフォーマットとマウント
- (04)スワップ領域の作成と有効化
- (05)UEFI領域フォーマットとマウント
- (06)mirrorlistの修正
- (07)ArchLinuxのベースシステムを導入
- (08)追加パッケージを導入
- (09)fstab の作成
- (10)chroot環境下で作業
- (11)タイムゾーン、日本語環境、ホストネームなどの設定
- (12)日本語環境の設定
- (13)Linuxイメージの作成
- (14)Grubのインストール
- (15)Grubの設定ファイルの作成
- (16)rootのパスワードの設定
- (17)一般ユーザの追加とそのパスワードの設定
- (18)アドレス(systemd-networkd)の設定と有効化
- (19)各種サービスの有効化
- (20)chrootを抜けて、マウント解除、再起動
- 7.再起動後
- (1) resolv.conf への追記
- (2)システムクロックの更新
迷いなし!ArchLinuxのインストール
1.はじめに
以前書いてあったものが古くなっていたので、全面的に修正しました。ArchWiki の記載には本当に最低限のインストールが書いてありますが、ここではあくまで自分用に、しかも迷わずどんどんインストールできるようにするための覚書です。いっぱい選択肢が書いてあっても迷うだけ。
以下のインストール方法は UEFI 下の、しかも複数ディスクを使った場合です。インストールする前に決めておくのは「ディスクのパーテーションをどのような構成にするか」だけ!後記5(02)を参考にしてください。
2.準備するもの
(01)ネット環境
IPアドレスを振るDHCP環境が必要。無線ネットワークしか存在しない場合にはUSBドングルを使って有線ネットワークに接続するか、iwd を使用して無線ネットワークを確立してください。
(02)インストールディスク
例のごとく最新版をダウンロードし、これをCDやUSBメモリ(USB変換アダプターを使用する場合はSDカードも可)に焼きます。
dd コマンドの活用が一番楽チン。例えば以下のように。
# dd if=saved_directory/filename of=/dev/sdx(target_disk) bs=4096 && sync
3.インストールディスクから起動
- BIOS ( UEFI )の画面で、セキュリティを無効化するとともに、USBメモリから起動するよう、設定すること。
- 表示された画面でしばらく待っていると、 rootでログインされます。なお、直接インストールするPCで操作する場合は、4を飛ばし5に進んでください。
4.rootパスワード設定と時刻合わせ
ここでネットワークが確立されていなければなりませんが、もしも有線LANの環境がなく無線LANを使うしかない、あるいは有線LAN 環境もあるが、無線LANで頑張るという場合の無線LANの設定はこちら。
# passwd
システムクロックを更新します。
# timedatectl set-ntp true
ここまで来たらリモートPCからssh接続します。
$ ssh root@xxx.xxx.xxx.xxx #先ほど設定したパスワードを入力します。
5. インストール
コピペでやってください。
(01)キーボードレイアウトの変更
デフォルトはUSキーボードなので、使用しているキーボードが日本語の場合は、
# loadkeys jp106
(02)ドライブのバーティショニング
この作業だけは慎重にやったほうが良いです。後で変更するのは非常に面倒だからです1
特に/home と /var は使用量が増えますし、書き込みが激しいからです。
以下のように領域を確保しました。
| ディスク名 | 確保した領域 | 容量 | フォーマット | マウントポイント |
|---|---|---|---|---|
| /dev/sda[SSD]124G | /dev/sda1 | 512M | fat | /boot |
| ^ | /dev/sda2 | 10G | swap | [swap] |
| ^ | /dev/sda3 | 残りすべて | ext4 | / |
| /dev/sdb[HDD]2T | /dev/sdb1 | 1T | ext4 | /home |
| ^ | dev/sdb2 | 1T | ext4 | /var |
なぜ、このような領域確保になったか!
-
領域の広さとスペードを両立させるのがポイントだと思います。
スピードが命のSSDですが、耐久性にいまいち不安をもっており、書き込みが激しいデータ領域はHDDに確保。 /HOMEと/VARは、データがどこまでも膨れ上がってくる可能性があり、また書き込みが激しいので、HDDこそ出番。 こうすればSSDが124Gでも十分だからです。
-
スワップ領域を確保するのではなく、スワップファイルで対応する方法もあります。
それでは領域確保からスタート。まずは、/dev/sdaから
# cgdisk /dev/sda
- [new]を選択し、512 メガバイトを UEFI 領域として割り当てる。パーティションタイプには ef00 を割り当てる。
- [Free Space]を選択して、スワップ領域分(搭載メモリと同量)を確保、パーティションタイプ 8200 を設定する。
- また[Free Space]を選択して、残り全てを、パーティションタイプ 8300 に設定。
- 最後に[Write]→[Quite]を選択し、終了。
もう一つのHDDを/homeと/varで使うので、同じ要領で領域を確保し、書き込み、終了します。
# cgdisk /dev/sdb
説明は省略
(03)HDDのフォーマットとマウント
/dev/sda3のフォーマットとマウント
# mkfs.ext4 /dev/sda3
# mount /dev/sda3 /mnt
/dev/sdb1のフォーマットとマウント
# mkfs.ext4 /dev/sdb1
# mkdir -p /mnt/home
# mount /dev/sdb1 /mnt/home
/dev/sdb2のフォーマットとマウント
# mkfs.ext4 /dev/sdb2
# mkdir -p /mnt/var
# mount /dev/sdb2 /mnt/var
(04)スワップ領域の作成と有効化
# mkswap /dev/sda2
# swapon /dev/sda2
(05)UEFI領域フォーマットとマウント
# mkfs.fat -F 32 /dev/sda1
マウントポイントに注意!
EFI システムのマウント先は /mnt/boot が推奨されているようです。以前は、/mnt/boot/efi にマウントするよう記載されておりました。これでも支障なく運用できるようです。当サイトの記事の中にも以前のマウントで作成したものを前提としているものがあります。
ブートローダーはカーネルと initramfs イメージにアクセスできなければなりません。アクセスできなければシステムはブートしません。したがって、通常のセットアップでは、/boot へのアクセスをサポートしている必要があります。ArchWikiより
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot
(06)mirrorlistの修正
現在はこの作業が不要になったようですが、これをやらないとダウンロードにメチャ時間がかかります。ぜひ修正することをお勧めします。
デフォルトでは日本のミラーの記載ありません。日本のミラー から検索して、以下をなるべく上位に挿入します。
# nano /etc/pacman.d/mirrorlist
## Japan
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
Server = https://mirror.saebasol.org/archlinux/$repo/os/$arch
(07)ArchLinuxのベースシステムを導入
# pacstrap /mnt base base-devel linux linux-firmware
(08)追加パッケージを導入
# pacstrap /mnt grub efibootmgr nano openssh intel-ucode sudo tree usbutils dosfstools ufw cronie util-linux git gnupg
# pacsrap /mnt mdadm fakeroot binutils make gcc
注意 システム条件に依存するバッケージが存在します。
以上は最低必須と思われるもの
必要なものは人によって異なります。私自身が必要だと思うものを日々更新しながら記載しておきます。なお、arch-chroot /mnt 実行後は pacman -S で不足な分をインストールできます。だからこの時点であまり気にすることはないと思います。
(09)fstab の作成
# genfstab -U /mnt >> /mnt/etc/fstab
(10)chroot環境下で作業
# arch-chroot /mnt
注意
[root@archiso /] # コマンドプロンプトが archiso に変化します
(11)タイムゾーン、日本語環境、ホストネームなどの設定
場合によっては、キーボードの配列が異なる場合があって、すごく不便を感じるようであれば再度 loadkeys jp106 を実行して下さい。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime #タイムゾーンの設定
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# echo KEYMAP=jp106 > /etc/vconsole.conf
# echo fbcon=font:VGA8x16 > /etc/vconsole.conf
これを設定しないと、WARNING: errors were encountered during the build. The image may not be complete. が出る場合があります。
https://bbs.archlinux.org/viewtopic.php?id=295325 参照
# echo NasebanaruLinux > /etc/hostname
ホスト名は好きな名称に変更してください。
# nano /etc/hosts
127.0.0.1 localhost nasebanarulinux.localdomain
::1 localhost nesebanarulinux.localdomain
(12)日本語環境の設定
開いたファイルの次の2行をコメントアウトして、有効にして下さい。
# nano /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
# locale-gen
Generating locales…
en_US.UTF-8… done
ja_JP.UTF-8… done
Generation complete.
日本語だけにする手もあるが、これだと文字化けする場合がある。
(13)Linuxイメージの作成
mkinitcpio -P
※ RAID 構成した場合は、これを実行する前に /etc/mkinitcpio.conf を修正し、HOOK 行に mdadm_udev を追加すること。
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
==> Using default configuration file: '/etc/mkinitcpio.conf'
-> -k /boot/vmlinuz-linux -g /boot/initramfs-linux.img
==> Starting build: '6.18.2-arch2-1'
-> Running build hook: [base]
-> Running build hook: [systemd]
-> Running build hook: [autodetect]
-> Running build hook: [microcode]
-> Running build hook: [modconf]
-> Running build hook: [kms]
-> Running build hook: [keyboard]
-> Running build hook: [keymap]
-> Running build hook: [sd-vconsole]
-> Running build hook: [block]
-> Running build hook: [mdadm_udev]
-> Running build hook: [filesystems]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-linux.img'
-> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
(14)Grubのインストール
ブートローダの識別子を選んでください、ここでは Arch とします。esp/EFI/ にあなたが選んだものと同じ名前のディレクトリが作成され、そこに EFI バイナリが格納されます。その名前が UEFI ブートメニューの GRUB ブートエントリの名前になります。
systemd-boot をブートローダに選択した場合はこちら
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
Installing for x86_64-efi platform.
Installation finished. No error reported.
このようにエラーが出ていなければOK
(15)Grubの設定ファイルの作成
# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings …
done
(16)rootのパスワードの設定
# passwd
(17)一般ユーザの追加とそのパスワードの設定
開いたファイルの次の2行の#を削除6
# nano /etc/sudoers
defaults env_keep += “HOME”
%wheel ALL=(ALL) ALL
# useradd -m -G wheel taro
# passwd taro
(18)アドレス(systemd-networkd)の設定と有効化
可変アドレスであれば
# nano /etc/systemd/network/10-wired.network
[Match]
Name=enp1s0
[Network]
DHCP=yes
固定アドレスでは
[Match]
Name=enp1s0
[Network]
Address=xxx.xxx.xxx.xxx/24
Gateway=xxx.xxx.xxx.1
DNS=8.8.8.8 8.8.4.4
# systemctl enable systemd-networkd
(19)各種サービスの有効化
# systemctl enable sshd.service
# systemctl enable fstrim.timer
(20)chrootを抜けて、マウント解除、再起動7
# exit
# umount -R /mnt/home /mnt/var /mnt
# reboo
7.再起動後
一般ユーザで接続
$ ssh taro@xxx.xxx.xxx.xxx
(1) resolv.conf への追記
これを設定しないと、fatal: unable to access ‘https://xxx.archlinux.org/xxxxx.xxx/’: Could not resolve host: xxx.archlinux.org のようなエラーが発生します。
# nano /etc/resolv.conf
nameserver 8.8.8.8 8.8.4.4 xxx.xxx.xxx.xxx
# systemctl start systemd-resolved
# systemctl enable systemd-resolved
(2)システムクロックの更新
# timedatectl set-ntp true
ここまでやれば、あとは好きなように作り上げるだけです。
単一のドライブ構成で、もっと簡単にインストールしたいという場合は、スクリプトを使用する方法があります。ググれば複数見つかります。
-
G-partdのようなパーテーションツールを使う手があります。 ↩
-
boot-loader に systemd-boot を使用する場合は、grub efibootmgr パッケージは必要ない ↩
-
amdの場合はamd-ucode ↩
-
mdadm は FakeRAID の場合も必要です ↩
-
pacman helper の yay をインストールするため ↩
-
wheel ALL=(ALL:ALL) NOPASSWD: ALL であれば、sudo と打ち込んだだけで、パスワードの入力を省略できるので、こちらのほうが良いかも。 ↩
-
インストールメディアの取り出しタイミングが難しい場合があるので、shutdown -h now コマンドのほうが良いかもしれません。 ↩