Help us understand the problem. What is going on with this article?

Arch Linux インストールガイド(UEFIデスクトップ編)

自作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

インストール

パーティション分けしたストレージ領域をマウントしたら, Arch Linux のインストールをします.

ミラーの選択

Arch Linux をインストールするミラーを選択します.
日本国内のサーバを選択することでインストールが早くなります.
/etc/pacman.d/mirrorlist を編集して, 国内サーバのアドレスをファイルの先頭に持ってきます.

エディタは vinano がよく使われます.
初心者には 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-8ja_JP.UTF-8 の2つを生成します.
日本語環境を設定する必要がないのであれば, ja_JP.UTF-8 の生成と有効化は必要ありませんが, 今後に日本語環境の構築を想定しているのでここで設定しておきます.

まず, /etc/locale.gen を編集して, en_US.UTF-8 UTF-8ja_JP.UTF-8 UTF-8 の2つをアンコメントします.
なお, ここで編集のために vinanoを使うためには、インストールが必要ですので 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 を用いることにします.

grubefibootmgr をインストール:

# pacman -S grub efibootmgr

grub をインストール:

# grub-install --target=x86_64-efi --efi-directory=$esp --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 すらインストールされていません.
そこで vinano のインストールをしてみます.

# pacman -S vi nano

vinano コマンドを実行できるようになるはずです.

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や日本語環境, アプリケーションのインストールなどは別記事で解説したいと思います.

HayatoAoi
PhD student/理論物理/Linux/ArchLinux/xfce4/Emacs/Firefox/C/C++/CUDA/Mathematica/LaTeX/ Arch Linux6年目
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした