自作PCに Arch Linux をインストールしたときの手順をまとめます.
この記事では, Arch Linux のインストールと実用上において最低限必要なセットアップを行うところまでを解説します.
はじめに
この記事では, デスクトップ用途を想定しており, サーバ用途ではありません.
(とは言っても, 固定IPの設定をすればサーバ用途にも派生可能です)
また, 日本語環境をセットアップすることを想定しており, そのためのロケールの設定などをしています.
インストールの手順は, Arch wiki に準じます.
https://wiki.archlinux.org/index.php/Installation_guide
数年前までは, インストールガイドだけでインストールが完了するような作りになっていたのですが, 方針が変わったようで, 必要なページに必要な情報を見つけにいくようなスタイルになりました.
Arch らしいと言えば Arch らしいのですが, 選択肢が多く直線的ではないので少々わかり辛いという難点があるため, 選択の幅を幾分かなくして手続きを直線的にしました.
そのため, 上のページの単なる写経ではなく, 必要な情報を適宜補う形の記事になっています.
既にいくつもの Arch Linux のインストールに関する記事がありますが, インストール先をUEFIのデスクトップPCに限ることで, できる限りシンプル・直線的になっている点で差別化されていると思います.
環境と方針
- CPU: Intel Core i シリーズ
- グラフィック: Intel UHD graphics
- 起動モード: UEFI
- ストレージ: NVMe SSD
- ネットワーク: 有線・動的アドレス(DHCP)
CPU
CPUは, 流行りの AMD Ryzen ではなく, 第10世代 Intel Core i シリーズで進めていきます.
調べた限りでは, Ryzen に最適化するには, インストールするカーネルを linux-zen にする必要があるようです.
グラフィック
グラフィックは, Intel UHD graphics を用います. グラフィックボードは用いません.
型番によっては, CPU内蔵のグラフィック機能が非搭載で外部GPUが必要な場合がありますので注意してください.
起動モード
起動モードはUEFIを前提とします.
Windows 7 サポートが切れた 2020年1月以降, 新規に購入するPC(マザーボード)でUEFIに対応しないものは事実上ないと思われますので, レガシーなBIOSにしか対応しないマザーボードは考えません.
パーティショニング
パーティショニングの方法は, MBR ではなくモダンなGPTを選びます.
ファームウェアによっては, UEFI-MBR はブートできない可能性があることがArch wiki で指摘されており, MBRでパーティショニングするメリットはないと思われます.
ストレージは新規購入した NVMe SSD を用います. インストール開始時にフォーマットはされていないとします.
ネットワーク
ネットワークへの接続は, 有線かつ動的アドレス(DHCP)を用いることにします.
サーバ用途は考えないので, 静的アドレス(固定IP)については解説しません.
その他
Windows や他のOSとのデュアルブートは想定しません.
Arch Linux をシングルブートさせることを考えます.
準備
Arch Linux のインストーラを立ち上げるまでの準備です.
ブータブルUSBの用意
Arch Linux のブータブルUSBを用意します.
このブータブルUSBは, 一つあれば様々なシステムにArch Linux をインストールできます.
また, インストール後になんらかの原因でシステムが起動しなくなったときの診断ツールとしても機能しますので, 一つ専用のものをストックしておくと便利です.
容量は4GBあれば十分です.
Windows・Mac におけるブータブルUSBの作成方法については以下を参照のこと.
すでに Linux システムを使っているのであれば dd
を使うのが手っ取り早いです.
https://wiki.archlinux.org/index.php/USB_flash_installation_medium
ISO ファイルは以下から入手できます.
https://www.archlinux.jp/download/
UEFIを起動
UEFIを起動マザーボード固有の手順によって起動します.
マザーボードやPCの取説を参照してください.
F2, F12, DEL, ESC キーを要求されることが多い印象です.
Boot prioirty でUSBメモリからの起動を最優先にしておきます.
Arch Linux でUEFIの起動画面が出たら, インストールに進みます.
インストール
インストーラが立ち上がったら, システムに Arch Linux をインストールしていきます.
インストールの準備
キーボードレイアウトの設定や,ネットワーク接続の確認などインストールに最低限必要な設定をします.
また, ストレージのパーティション分けとフォーマット, マウントを行います.
キーボードレイアウトの設定
デフォルトではUSキーボードに設定されているので, JPキーボードを用いている場合には
# loadkeys jp106
と設定を変更します.
ターミナルでの作業が中心となり, 不可逆な操作も多いのでキーボードレイアウトの適切な設定は重要です.
起動モードの確認
UEFIで起動していることを確認します.
インストーラの起動時にUEFIの画面に入っていれば, おおよそ問題ないかと思います.
# ls /sys/firmware/efi/efivarss
ネットワーク接続の確認
これも有線LANで接続しているなら, ほとんどの場合は既に接続されていますが, 一応 ping
で確認をします.
# ping -c 3 archlinux.jp
システムクロックの更新
timedatectl
を使ってシステムクロックを正確にします.
# timedatectl set-ntp true
パーティショニング
gdisk
を用いてストレージのパーティションを分けていきます.
UEFI-GPTの場合, パーティション分けと適切なフォーマットが必須になります.
/boot
用に500MBほど必要です.
今回は, 残り全てのパーティションを ルート /
に割り当てます.
まず, lsblk
を用いて, デバイス名を確認します.
/dev/nvme0n1
という名前のデバイスが見つかったので, パーティショニングツール gdisk
用いて, パーティションを分けます.
デバイス名は, ストレージの接続の種類によって異なり, SATA接続の場合は /dev/sda
などと表示されます.
gdisk
でデバイスを開きます:
# gdisk /dev/nvme0n1
開くだけで自動で GPT 用にフォーマットされるようです.
1番目のパーティションを /boot
に, 2番目のパーティションを /
に割り当てます.
1番目のパーティションには, 「EFI system partition」 2番目は, デフォルトの 「Linux File system」をラベル付けします.
gdisk
はインタラクティブなUIなので, わからなくなったら ?
でヘルプを呼び出しましょう.
パーティション分けとラベル付けが終わったら, w
で書き込んで終了します.
lsblk
で確認すると, パーティショニングができているはずです.
gdisk
の使い方については以下を参照:
https://wiki.archlinux.jp/index.php/Fdisk
フォーマットとマウント
/
は, ext4 を用い, /boot
にはvfat を用います.
# mkfs.ext4 /dev/nvme0n2
# mkfs.fat -F32 /dev/nvme0n1p1
次にデバイスをファイルシステムにマウントします.
まず, ルートをマウント.
# mount /dev/nvme0n1p2 /mnt
/boot
ディレクトリを作成してから, マウントします.
# mkdir /mnt/boot
# mount /dev/nvme0n1p1 /mnt/boot
インストール
パーティション分けしたストレージ領域をマウントしたら, Arch Linux のインストールをします.
ミラーの選択
Arch Linux をインストールするミラーを選択します.
日本国内のサーバを選択することでインストールが早くなります.
/etc/pacman.d/mirrorlist
を編集して, 国内サーバのアドレスをファイルの先頭に持ってきます.
エディタは vi
か nano
がよく使われます.
初心者には nano
がオススメです.
nano
は下の方にコマンドのショートカットが記載されていますが, 便利なコマンドを以下に紹介しておきます:
Ctrl-w
:単語検索, Alt-6
:行をコピー, Ctrl-u
:ペースト
インストール
pacstrap
を用いて, マウントしたルートにシステムをインストールします.
# pacstrap \mnt base base-devel linux linux-firmware
base-devel
は必須ではありませんが, 大半はすぐ必要になると思うのでここで入れておきます.
システムの設定
Arch Linux のファイルシステムの構築と最低限必要なパッケージのインストールは完了しました.
さらに, ローカリゼーション, ネットワーク設定, そしてシステムをブートするためのブートローダーのインストールを行う必要があります.
fstab の作成
fstab
を作成します.
# genfstab -U /mnt >> /mnt/etc/fstab
きちんと生成されたかどうか確認します.
# cat /mnt/etc/fstab
arch-chroot
新しくインストールしたシステムに chroot します:
# arch-chroot /mnt
タイムゾーン
タイムゾーンを設定します:
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock
を実行して, /etc/adjtime
を生成します:
# hwclock --systohc
ローカリゼーション
ロケールを設定します.
en_US.UTF-8
と ja_JP.UTF-8
の2つを生成します.
日本語環境を設定する必要がないのであれば, ja_JP.UTF-8
の生成と有効化は必要ありませんが, 今後に日本語環境の構築を想定しているのでここで設定しておきます.
まず, /etc/locale.gen
を編集して, en_US.UTF-8 UTF-8
と ja_JP.UTF-8 UTF-8
の2つをアンコメントします.
なお, ここで編集のために vi
やnano
を使うためには、インストールが必要ですので pacman -S nano
などと実行してインストールします.
次のコマンドを実行してロケールを生成します:
# locale-gen
その後, /etc/locale.conf
ファイルを作成して, LANG
環境変数を設定します.
LANG=en_US.UTF-8
# LANG=ja_JP.UTF-8
いきなり, ja_JP.UTF-8
を設定してしまうと, 後に再起動したときに仮想コンソール上でのメッセージが文字化けしてしまうのでコメントアウトしています.
後にデスクトップ環境や日本語フォントをインストールした後に有効化します.
日本語キーボードを使っている場合, /etc/vconsole.conf
にコンソールキーマップを設定します.
KEYMAP=jp106
これをしないと, システムを起動する度に loadkey jp106
を打つハメになります.
あくまで仮想コンソールのキーマップ設定なので, X Window system などGUIを導入する場合は別に設定する必要があります.
ネットワーク設定
ホストネームの設定とDHCPサービスの設定をします.
まず, ホストネームを設定します.
/etc/hostname
を作成して, 適当なホストネームを記述します.
myhostname
ホストネームに使用可能な文字には制限があるようです.
アルファベットとハイフン -
およびドット .
以外は使わないことが推奨されてるようです.
同じホストネームを /etc/hosts
にも記述する:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
次に, 立ち上げたときに自動でネットワークに接続するための設定をDHCPを用いて行います.
dhcpcd
をインストールし, サービスを有効にします.
dhcpcd
のインストール:
# pacman -S dhcpcd
ネットワークインターフェースの確認:
# ip link
表示される番号のすぐ右側にある名前がインターフェースの名前です.
本環境ではデバイス名が eno1
と確認できたので, デバイス名を指定してサービスを有効化します:
# systemctl enable dhcpcd@eno1.service
これで再起動後にネットワークに自動で接続されます.
Initramfs
LVM, システム暗号化, RAID環境の構築はしないので, 今回は必要ではありません.
Root パスワード
root パスワードを設定します.
# passwd
この手続きを忘れると, システムにログインできません.
忘れてしまった場合は, 再びインストーラを立ち上げ, パーティションを mount
し, arch-chroot
した後, パスワードを設定する必要があります.
ブートローダーのインストール
ブートローダーをインストールします.
今回は, grub
を用いることにします.
grub
と efibootmgr
をインストール:
# pacman -S grub efibootmgr
grub をインストール:
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
設定ファイルを生成:
# grub-mkconfig -o /boot/grub/grub.cfg
grub
については, 以下を参照のこと.
こちらも多少情報が分散しており, 初心者には分かりづらくなっていると感じます.
https://wiki.archlinux.jp/index.php/GRUB
再起動
chroot
環境から抜けるには, exit
と打つか, Ctrl+d
を押します.
その後任意で全てのパーティションをアンマウントして, reboot
コマンドで再起動します.
再起動する際に, インストールメディアを抜かないと再びインストーラが起動してしまう可能性があります.
Arch Linux のログイン画面が出たら成功です.
インストール後
実用上, 最低限必要と思われる設定として, ユーザ設定と sudo
を設定しておきます.
再起動後, root としてログインします.
システムのアップデート
システムは以下のコマンドでアップデートできます:
# pacman -Syu
インストール直後は本当にミニマルで(システム設定時にインストールしていなければ) vi
すらインストールされていません.
そこで vi
と nano
のインストールをしてみます.
# pacman -S vi nano
vi
と nano
コマンドを実行できるようになるはずです.
Arch Linux の根幹はパッケージマネージャ pacman
にあると言っても過言ではありません.
使い方は, 他のものに比べるとシンプルであるように思います.
以下に詳しい使い方が載っています.
https://wiki.archlinux.jp/index.php/Pacman
ユーザの追加
セキュリティ上, root ユーザのまま作業するのは好ましくないとされます.
そこで一般ユーザの追加と sudo
への登録を行います.
まずユーザを追加:
# useradd -m -s /bin/bash user
-m
オプションによって, ユーザのディレクトリ /home/user
を作成し,
-s
オプションによって, ログインシェルを指定します.
ここでは標準的な bash
を用いますが, 他のシェルを用いる場合は事前にインストールしておくとよいかと思います.
ユーザのパスワードを設定:
# passwd user
ユーザの追加については, 以下を参照:
https://wiki.archlinux.org/index.php/Users_and_groups
visudo
を使って sudo
へユーザを登録:
# visudo
一度ログアウトし, 一般ユーザとしてログインし直してから, システムのアップデートを実行:
$ sudo pacman -Syu
最初に sudo
を使うときには, 注意書きが出ますが特に気にする必要はありません.
sudo
については以下を参照:
https://wiki.archlinux.jp/index.php/Sudo
まとめ
自作PCに Arch Linux をインストールして, 最低限のセットアップを行いました.
PCを自作する場合, ストレージにOSがインストールされていないので, パーティションの手続きが多少楽になります.
GUIや日本語環境, アプリケーションのインストールなどは別記事で解説したいと思います.