Arch Linux インストール手順 完全ガイド【初心者向け】
Arch Linuxへようこそ!
Linuxディストリビューションの中でも、特にカスタマイズ性と最新のソフトウェアが手に入ること、そして「ユーザーがシステムを構築する」という哲学で知られるArch Linux。その特性から「上級者向け」と言われることが多いArch Linuxですが、決して初心者にとって手が届かない存在ではありません。
この「Arch Linux インストール手順 完全ガイド」は、これまでArch Linuxに触れたことがない、あるいはLinux自体にあまり慣れていないという方でも、この魅力的なディストリビューションをご自身のPCにインストールし、第一歩を踏み出せるように、可能な限り詳細かつ丁寧に解説することを目的としています。
Arch Linuxのインストールは、他の多くのディストリビューションのようにグラフィカルインストーラーを使うのではなく、コマンドラインで行う作業が中心となります。これは一見難しそうに思えるかもしれませんが、各ステップで何を行っているのかを理解しやすいため、Linuxの基本的な仕組みを学ぶ上で非常に良い経験となります。そして、ご自身の手でシステムを構築したという達成感は格別です。
この記事では、Arch Linuxをインストールするための全てのステップを網羅します。PCの起動から、パーティショニング、ベースシステムのインストール、システム設定、そしてブートローダーの構築まで、一つずつ順を追って解説します。
さあ、あなただけのArch Linuxシステム構築の旅を始めましょう!
Arch Linux とは? なぜ Arch Linux を選ぶのか?
Arch Linuxは、シンプルさ、軽量さ、そして最新のソフトウェアを提供することに重点を置いたLinuxディストリビューションです。
- シンプルさ: 必要最低限のベースシステムからスタートし、必要なものをユーザー自身が追加していく方式です。余計なプリインストールソフトウェアが少なく、システムを自分好みにカスタマイズしやすいのが特徴です。
- 最新のソフトウェア: 「ローリングリリース」という方式を採用しており、一度インストールすれば、常に最新のソフトウェアアップデートを受け取ることができます。新しい機能やセキュリティパッチが迅速に提供されます。
- カスタマイズ性: デスクトップ環境、ウィンドウマネージャー、各種アプリケーションなど、ユーザーが自由に選択し、組み合わせて独自の環境を構築できます。
- 学習: インストールプロセスやシステム設定を手動で行うことから、Linuxの基本的な構造や仕組みについて深く学ぶことができます。
- AUR (Arch User Repository): 公式リポジトリにないソフトウェアも、ユーザーコミュニティが提供するAURを利用することで容易にインストールできます。
これらの特性は、Linuxシステムを深く理解したい方、自分好みに徹底的にカスタマイズしたい方、常に最新のソフトウェアを使いたい方にとって大きな魅力となります。しかし、その反面、インストールや初期設定のハードルが高いと感じられることもあります。この記事が、そのハードルを越える手助けとなることを願っています。
インストール前の準備
Arch Linuxのインストールを始める前に、いくつかの準備が必要です。
1. 必要なもの
- インストール対象のPC: Arch Linuxをインストールするコンピュータです。
- USBメモリ (最低2GB推奨): Arch Linuxのインストールイメージを書き込み、PCを起動するために使用します。
- インターネット接続: インストール中に必要なパッケージをダウンロードするために必須です。有線LAN接続が最も安定していますが、無線LANも設定すれば利用可能です(後述)。
- 別のコンピュータ: インストールメディア(USBメモリ)を作成するために必要です。現在使用しているPCでも構いません。
- 十分な時間と集中力: Arch Linuxのインストールは時間がかかり、いくつかの重要なステップがあります。落ち着いて作業できる時間帯を選びましょう。
2. Arch Linux ISO イメージのダウンロード
Arch Linuxの公式ウェブサイトから最新のISOイメージファイルをダウンロードします。
- Arch Linux ダウンロードページ: https://archlinux.org/download/
このページには、世界各地のミラーサーバーリストがあります。お住まいの地域に最も近い、あるいは通信速度が速いと思われるミラーを選んでください。通常はiso/latest/
ディレクトリにある最新のISOファイル(例: archlinux-yyyy.mm.dd-x86_64.iso
)をダウンロードします。
また、ダウンロードしたISOファイルが破損していないか確認するために、.sig
ファイルも一緒にダウンロードし、GnuPGなどのツールで検証することを強く推奨します。
“`bash
ISOファイルと.sigファイルをダウンロードした後
gpg –keyserver hkps://keys.openpgp.org –recv-keys 4A47G6W3K5D0Y74F5E8G8H9J0K1L2M3N4P5Q6R7S
gpg –verify archlinux-yyyy.mm.dd-x86_64.iso.sig archlinux-yyyy.mm.dd-x86_64.iso
``
4A47G…7S
(注: 上記の鍵IDは例です。ダウンロードページで示されている正しい鍵IDを使用してください。)
“Good signature from …”` のようなメッセージが表示されれば、ファイルは正しくダウンロードされています。
3. ブータブル USB メディアの作成
ダウンロードしたISOイメージをUSBメモリに書き込み、PCがそこから起動できるようにします。この作業は、現在使用しているOS(Windows, macOS, Linux)で行います。
Windows:
- Rufus: 使いやすいGUIツールです。https://rufus.ie/ からダウンロードできます。Rufusを起動し、ダウンロードしたISOファイルを選択し、使用するUSBメモリを選択して「スタート」をクリックします。
- Etcher (balenaEtcher): 複数のOSに対応したGUIツールです。https://www.balena.io/etcher/ からダウンロードできます。「Flash from file」でISOファイルを選び、「Select target」でUSBメモリを選び、「Flash!」をクリックします。
macOS:
- Etcher: Windowsと同様にEtcherを使用するのが簡単です。
- ddコマンド: ターミナルを使います。誤ったデバイスに書き込むとデータが消えるため、慎重に行ってください。
- USBメモリを挿入し、
diskutil list
コマンドでデバイス名を調べます(例:/dev/disk2
)。このとき、デバイス名の末尾にs1
のようなパーティション番号が付いていない方 を使います(例:/dev/disk2
ではなく/dev/rdisk2
の方が高速な場合があります)。 - USBメモリをアンマウントします:
diskutil unmountDisk /dev/diskX
(Xはデバイス番号)。 - ISOファイルを書き込みます:
sudo dd if=/path/to/archlinux-yyyy.mm.dd-x86_64.iso of=/dev/rdiskX bs=1m
(/path/to/...
はISOファイルへのパス、X
はデバイス番号)。 - コマンド完了後、
diskutil eject /dev/diskX
でUSBメモリを取り外します。
- USBメモリを挿入し、
Linux:
- Etcher: macOSと同様にEtcherを使用するのが簡単です。
- ddコマンド: macOSと同様です。
- USBメモリを挿入し、
lsblk
またはfdisk -l
コマンドでデバイス名を調べます(例:/dev/sdX
、Xはアルファベット)。このとき、パーティション番号が付いていない方のデバイス名 を使います(例:/dev/sda1
ではなく/dev/sda
)。 - そのデバイスがマウントされていないことを確認します。もしマウントされていればアンマウントします。
- ISOファイルを書き込みます:
sudo dd if=/path/to/archlinux-yyyy.mm.dd-x86_64.iso of=/dev/sdX bs=4M status=progress
(/path/to/...
はISOファイルへのパス、X
はデバイスアルファベット)。 - コマンド完了後、
sync
コマンドを実行して書き込みが完了したことを確認し、安全にUSBメモリを取り外します。
- USBメモリを挿入し、
4. UEFI と BIOS について
PCの起動方式には、UEFI(Unified Extensible Firmware Interface)とBIOS(Basic Input/Output System)の2種類があります。比較的新しいPCのほとんどはUEFIを採用しています。Arch Linuxのインストール手順において、特にパーティショニングとブートローダーの設定で、UEFIかBIOSかによって手順が異なります。
ご自身のPCがどちらの起動方式を採用しているかは、PCのマニュアルを確認するか、起動時に表示されるメーカーロゴの画面で表示されるキー(通常はF2, F10, F12, Delキーなど)を押してUEFI/BIOS設定画面に入り、そこで確認してください。
この記事では、主にUEFI環境を前提に説明を進めますが、BIOS環境での違いについても適宜補足します。
5. 重要なデータのバックアップ
Arch Linuxをインストールするディスクには、既存のOSやデータがあるかもしれません。パーティショニング作業などを行う際に、誤って重要なデータを消去してしまうリスクがあります。インストールを開始する前に、必要なデータは必ず外部ストレージなどにバックアップしておいてください。
ブートと初期設定
準備が完了したら、作成したブータブルUSBメモリからPCを起動し、Arch Linuxのライブ環境に入ります。
1. USBメモリからの起動
PCの電源を入れ、メーカーロゴが表示されている間に、UEFI/BIOS設定画面に入るためのキー(F2, Delなど)またはブートデバイス選択メニューを開くためのキー(F10, F12など)を連打します。
- UEFI/BIOS設定画面から起動する場合: 設定画面内の「Boot」あるいは「起動」といった項目を探し、作成したUSBメモリが一番最初に起動するように順序を変更し、設定を保存して終了します。
- ブートデバイス選択メニューから起動する場合: 表示されたリストから作成したUSBメモリ(「UEFI: [USBメモリ名]」のような表示になっていることが多いです)を選択してEnterキーを押します。
正しく設定されていれば、Arch Linuxのブートメニューが表示されます。通常は一番上の項目 (Arch Linux install medium (x86_64)
) を選択してEnterキーを押します。
2. ライブ環境の起動
Arch Linuxのロゴと起動メッセージが表示され、しばらくするとコマンドプロンプトが表示されます。これがArch Linuxのライブ環境です。rootユーザーとしてログインしており、すぐにコマンドを実行できます。
bash
root@archiso ~ #
3. キーボードレイアウトの設定
デフォルトではU.S. English配列になっています。日本語キーボードを使っている場合は、ここでキーボードレイアウトを設定しておくと作業がしやすくなります。
使用できるキーマップを確認するには、以下のコマンドを実行します。
bash
ls /usr/share/kbd/keymaps/**/*.map.gz
日本語キーボードの多くはjp106
です。以下のコマンドでキーボードレイアウトを設定します。
bash
loadkeys jp106
これで、キーボードが日本語配列になります。以降のコマンド入力が格段に楽になるはずです。
4. インターネット接続の確認
インストール中にパッケージをダウンロードするため、インターネット接続が必須です。
-
有線LAN: 多くの場合はPCを起動した時点で自動的に接続されています。以下のコマンドで確認できます。
bash
ip a
eth0
やenpXsY
のようなインターフェースにIPアドレスが割り当てられていれば接続できています。
pingコマンドで外部と通信できるか確認します。
bash
ping archlinux.org
疎通できればOKです。 -
無線LAN: 無線LANを使用する場合は、手動での設定が必要です。ライブ環境では
iwctl
というツールが標準で利用できます。- デバイス名を確認します:
iwctl device list
(例:wlan0
) - 無線LANをスキャンします:
iwctl station [デバイス名] scan
- 利用可能なネットワーク一覧を表示します:
iwctl station [デバイス名] get-networks
- 目的のネットワークに接続します:
iwctl station [デバイス名] connect [SSID]
(SSIDはネットワーク名) - パスワードを求められるので入力します。
- 接続できたか確認します:
ip a
(無線LANインターフェースにIPアドレスが割り当てられているか確認)またはping archlinux.org
- デバイス名を確認します:
5. システムの時刻合わせ
正確なシステム時刻は、特にHTTPS接続でのパッケージダウンロードなどで重要になります。ライブ環境ではデフォルトでNTPクライアントが有効になっているため、ネットワークに接続されていれば時刻は自動的に同期されます。念のため確認します。
bash
timedatectl
System clock synchronized: yes
と表示されていればOKです。もしno
になっていたり、大幅に時刻がずれている場合は、ネットワーク接続を確認してください。
6. ディスクの確認
インストール先のディスクとパーティション構成を確認します。
bash
lsblk
このコマンドは、システムが認識しているブロックデバイス(ストレージ)とそのパーティション構成をツリー状に表示します。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 512M 0 part
├─sda2 8:2 0 50G 0 part
└─sda3 8:3 0 415.3G 0 part
sdb 8:16 1 14.9G 0 disk /run/archiso/bootmnt
└─sdb1 8:17 1 14.9G 0 part
sr0 11:0 1 1024M 0 rom
上記の例では、/dev/sda
がPCのストレージ(465.8GB)、/dev/sdb
が起動したUSBメモリ(14.9GB)です。あなたの環境では、デバイス名(sda
, nvme0n1
など)やサイズが異なるので、ご自身の環境に合わせて確認してください。
どのデバイスにインストールするのか、既存のデータが含まれていないかなどをここで確認することが重要です。
ディスクのパーティショニング
Arch Linuxをインストールするディスクに、適切なパーティションを作成します。この作業は、UEFIシステムとBIOSシステムで推奨されるパーティション構成が異なります。
パーティショニングの考え方
一般的に、Linuxシステムには以下のパーティションが必要です。
- ルートパーティション (
/
): OSの本体、システムファイル、アプリケーションなどがインストールされる領域です。最低限必要なパーティションです。 - スワップパーティション (
swap
): システムの物理メモリ(RAM)が不足した場合に、一時的にデータを待避させるための領域です。物理メモリと同等か、それ以上のサイズが推奨されることが多いですが、最近のPCでは大容量メモリを搭載していることが多いため、必須ではありません。しかし、ハイバネーション(休止状態)機能を使う場合は必須となります。ファイルとしてスワップ領域を作成することも可能です。 - ホームパーティション (
/home
): ユーザーの個人設定ファイルやドキュメントなどを保存する領域です。ルートパーティションと分けることで、OSを再インストールする際にホームパーティションを保持したまま作業しやすくなります。必須ではありませんが、分けておくことが推奨されます。 - EFIシステムパーティション (
/boot/efi
): UEFIシステムの場合に必須となるパーティションです。ブートローダー(OSを起動するためのプログラム)が配置されます。ファイルシステムはFAT32である必要があります。サイズは通常100MB〜500MB程度で十分です。 - ブートパーティション (
/boot
): BIOSシステムの場合に必要となることがあるパーティションです。カーネルイメージやinitramfsなどが配置されます。ルートパーティションと分けることも、分けずにルートパーティション内に含めることも可能です。
パーティショニングツール
ライブ環境では、いくつかのパーティショニングツールが利用できます。
- fdisk: MBRパーティションテーブルの編集に主に使われますが、GPTの基本的な編集も可能です。コマンドラインベースで操作します。
- gdisk: GPTパーティションテーブルの編集に特化したツールです。UEFI環境ではこちらを使うのが推奨されます。コマンドラインベースで操作します。
- parted: MBRとGPTの両方に対応したツールです。コマンドラインベースで、
fdisk
やgdisk
よりも強力な機能を持っています。 - cfdisk: fdiskやgdiskのテキストユーザーインターフェース(TUI)版です。画面を見ながら操作できるため、初心者には比較的使いやすいかもしれません。
この記事では、UEFI環境向けにgdisk
、BIOS環境向けにfdisk
を使った例を説明します。他のツールを使っても構いませんが、手順は異なります。
注: 以下の手順では、指定したディスクの既存のパーティションとデータは全て削除されます。 実行するディスクを間違えないよう、lsblk
コマンドの結果と照らし合わせて慎重に確認してください。例えば、/dev/sda
にインストールする場合、以下のコマンドの/dev/sdX
を/dev/sda
に置き換えて実行します。
UEFI環境でのパーティショニング例 (gdisk
を使用)
UEFI環境では、通常GPTパーティションテーブルを使用します。/dev/sdX
をインストール先のディスクデバイスに置き換えてください。
bash
gdisk /dev/sdX
gdisk
が起動したら、コマンドを入力していきます。
- 既存のパーティションを削除:
o
コマンドで新しいGPTパーティションテーブルを作成します。これにより、ディスク上の既存のパーティション情報は全て削除されます。
Command (? for help): o
This option deletes all partitions on the disk and creates a new protective MBR.
Proceed? (Y/N): Y - EFIシステムパーティションを作成: ファイルシステムはFAT32になります。サイズはここでは500MBとします。コードはEF00(EFI system)を指定します。
Command (? for help): n
Partition number (1-128, default 1): [Enter] (1を選ぶ)
First sector (34-..., default ...): [Enter] (デフォルトの開始位置)
Last sector or size {+SIZE[KMGTP]} (..., default ...): +500M
Current type is Linux filesystem
Hex code or GUID (L to show codes, Enter to accept the default): EF00
Changed the partition type of 'Linux filesystem' to 'EFI System'. - スワップパーティションを作成: サイズは例えば物理メモリの容量と同じか、その半分程度とします。ここでは8GBとします。コードは8200(Linux swap)を指定します。
Command (? for help): n
Partition number (2-128, default 2): [Enter] (2を選ぶ)
First sector (...): [Enter] (デフォルトの開始位置)
Last sector or size {+SIZE[KMGTP]} (...): +8G
Current type is Linux filesystem
Hex code or GUID (L to show codes, Enter to accept the default): 8200
Changed the partition type of 'Linux filesystem' to 'Linux swap'. - ルートパーティションを作成: 残りの領域の一部をルートパーティション(
/
)とします。ここでは例えば50GBとします。コードは8300(Linux filesystem)です。
Command (? for help): n
Partition number (3-128, default 3): [Enter] (3を選ぶ)
First sector (...): [Enter] (デフォルトの開始位置)
Last sector or size {+SIZE[KMGTP]} (...): +50G
Current type is Linux filesystem
Hex code or GUID (L to show codes, Enter to accept the default): 8300
Changed the partition type of 'Linux filesystem' to 'Linux filesystem'. - ホームパーティションを作成: 残りの全ての領域をホームパーティション(
/home
)とします。コードは8300です。
Command (? for help): n
Partition number (4-128, default 4): [Enter] (4を選ぶ)
First sector (...): [Enter] (デフォルトの開始位置)
Last sector or size {+SIZE[KMGTP]} (...): [Enter] (残りの全て)
Current type is Linux filesystem
Hex code or GUID (L to show codes, Enter to accept the default): 8300
Changed the partition type of 'Linux filesystem' to 'Linux filesystem'. - パーティション構成を確認:
p
コマンドで作成したパーティション構成を確認します。
Command (? for help): p
以下のような表示になるはずです(サイズは例)。
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB EF00 EFI System
2 1026048 17827839 8.0 GiB 8200 Linux swap
3 17827840 122742783 50.0 GiB 8300 Linux filesystem
4 122742784 976773134 407.1 GiB 8300 Linux filesystem -
変更を書き込んで終了:
w
コマンドで変更をディスクに書き込み、gdisk
を終了します。
Command (? for help): w
変更を書き込むか確認されるのでY
を入力します。
“`
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): Y
“`
これでパーティショニングは完了です。あなたの環境でのパーティション名は、例えば/dev/sdX1
, /dev/sdX2
, /dev/sdX3
, /dev/sdX4
のようになります。以降の手順でこの名前を使用するので控えておいてください。
BIOS環境でのパーティショニング例 (fdisk
を使用)
BIOS環境では、通常MBRパーティションテーブルを使用します。ここでは、ルートパーティション、スワップパーティション、ホームパーティションを作成する例を示します。/dev/sdX
をインストール先のディスクデバイスに置き換えてください。
bash
fdisk /dev/sdX
fdisk
が起動したら、コマンドを入力していきます。
- 既存のパーティションを削除:
o
コマンドで新しい空のMBRパーティションテーブルを作成します。既存のパーティション情報は全て削除されます。
Command (m for help): o
Created a new DOS disklabel with disk identifier 0x... - ルートパーティションを作成: サイズは例えば50GBとします。タイプはLinux(83)です。
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): [Enter] (1を選ぶ)
First sector (2048-..., default 2048): [Enter] (デフォルトの開始位置)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (..., default ...): +50G
Created a new partition 1 of type 'Linux' and of size 50 GiB. -
スワップパーティションを作成: サイズは例えば8GBとします。タイプはLinux swap(82)です。
“`
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): [Enter] (2を選ぶ)
First sector (…): [Enter] (デフォルトの開始位置)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (…): +8G
Created a new partition 2 of type ‘Linux’ and of size 8 GiB.Command (m for help): t # パーティションタイプを変更
Partition number (1,2, default 2): 2 # スワップパーティションの番号
Hex code (type L to list all codes): 82
Changed type of partition ‘Linux’ to ‘Linux swap / Solaris’.
4. **ホームパーティションを作成**: 残りの全ての領域をホームパーティション(`/home`)とします。タイプはLinux(83)です。
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): [Enter] (3を選ぶ)
First sector (…): [Enter] (デフォルトの開始位置)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (…): [Enter] (残りの全て)
Created a new partition 3 of type ‘Linux’ and of size … GiB.
5. **パーティション構成を確認**: `p` コマンドで作成したパーティション構成を確認します。
Command (m for help): p
以下のような表示になるはずです(サイズは例)。
Disk /dev/sdX: … GiB, … bytes, … sectors
Disk model: …
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x…Device Boot Start End Sectors Size Id Type
/dev/sdX1 2048 104859647 104857600 50G 83 Linux
/dev/sdX2 104859648 121636863 16777216 8G 82 Linux swap / Solaris
/dev/sdX3 121636864 … … …G 83 Linux
6. **変更を書き込んで終了**: `w` コマンドで変更をディスクに書き込み、`fdisk`を終了します。
Command (m for help): w
The partition table has been altered.
Calling ioctl() to sync disk.
“`
これでパーティショニングは完了です。あなたの環境でのパーティション名は、例えば/dev/sdX1
(ルート), /dev/sdX2
(スワップ), /dev/sdX3
(ホーム) のようになります。以降の手順でこの名前を使用するので控えておいてください。
ファイルシステムの作成とマウント
作成したパーティションにファイルシステムを作成し、インストールを行うための準備として、適切な場所にマウントします。
1. ファイルシステムの作成
パーティションの種類に応じて、適切なファイルシステムを作成します。/dev/sdXY
の部分は、あなたの環境での実際のパーティション名に置き換えてください。
- EFIシステムパーティション (UEFIのみ): FAT32でフォーマットします。
bash
mkfs.fat -F 32 /dev/sdX1 # /dev/sdX1 はEFIパーティション - ルートパーティション: ext4でフォーマットするのが一般的です。
bash
mkfs.ext4 /dev/sdX3 # /dev/sdX3 はルートパーティション (UEFIの例では3番目)
# BIOSの例では通常1番目になるので注意: mkfs.ext4 /dev/sdX1 - スワップパーティション: スワップ領域として設定します。
bash
mkswap /dev/sdX2 # /dev/sdX2 はスワップパーティション - ホームパーティション (分けた場合): ext4でフォーマットするのが一般的です。
bash
mkfs.ext4 /dev/sdX4 # /dev/sdX4 はホームパーティション (UEFIの例では4番目)
# BIOSの例では通常3番目になるので注意: mkfs.ext4 /dev/sdX3
2. スワップ領域の有効化
作成したスワップ領域をシステムで利用可能にします。
bash
swapon /dev/sdX2 # /dev/sdX2 はスワップパーティション
3. パーティションのマウント
Arch Linuxをインストールするルートパーティションを /mnt
ディレクトリにマウントします。他のパーティション(EFI、ホーム)も、後でアクセスできるように /mnt
の適切なサブディレクトリにマウントします。
- ルートパーティションをマウント:
bash
mount /dev/sdX3 /mnt # /dev/sdX3 はルートパーティション
# BIOSの例では通常1番目になるので注意: mount /dev/sdX1 /mnt - EFIシステムパーティションをマウント (UEFIのみ):
/mnt/boot/efi
ディレクトリを作成し、そこにマウントします。
bash
mkdir -p /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi # /dev/sdX1 はEFIパーティション
mkdir -p
は、親ディレクトリが存在しない場合でもエラーにならず、必要に応じて作成してくれます。 - ホームパーティションをマウント (分けた場合):
/mnt/home
ディレクトリを作成し、そこにマウントします。
bash
mkdir -p /mnt/home
mount /dev/sdX4 /mnt/home # /dev/sdX4 はホームパーティション
# BIOSの例では通常3番目になるので注意: mount /dev/sdX3 /mnt/home
lsblk
コマンドを実行して、正しくマウントされているか確認してください。
bash
lsblk
/mnt
, /mnt/boot/efi
, /mnt/home
にそれぞれのパーティションがマウントされていることが確認できるはずです。
ベースシステムのインストール
パーティションの準備ができたら、いよいよArch Linuxのベースシステムをインストールします。
1. ミラーリストの更新 (オプションだが推奨)
pacman
(Arch Linuxのパッケージマネージャー) がパッケージをダウンロードするサーバーリストは /etc/pacman.d/mirrorlist
にあります。ライブ環境のミラーリストは起動時に生成されますが、速度が遅い場合や古い場合があります。より高速なミラーを利用するために、リストを最適化することができます。
reflector
ツールを使うのが便利です。例えば、日本国内の、HTTPプロトコルを使い、速度でソートしたリストを最新のものに置き換えるには以下のようにします。
bash
reflector --country Japan --protocol http --sort rate --save /etc/pacman.d/mirrorlist
他の国を指定したり、httpsプロトコルを使ったりすることも可能です。--list-country
で利用可能な国リストを見られます。
手動で編集する場合は、vim
などのエディタで /etc/pacman.d/mirrorlist
を開き、使いたいミラーの行をファイルの先頭に移動させます。
2. ベースパッケージのインストール
pacstrap
スクリプトを使用して、新しいシステムにベースパッケージをインストールします。最低限必要なパッケージは base
、linux
(Linuxカーネル)、linux-firmware
(ハードウェアのファームウェア) です。
bash
pacstrap /mnt base linux linux-firmware
このコマンドは、/mnt
にマウントされたパーティションに、指定されたパッケージとその依存関係にあるパッケージをダウンロードしてインストールします。インターネット接続速度によりますが、これにはしばらく時間がかかります。
インストール中にエラーが発生した場合は、インターネット接続を確認するか、pacman -Syy
でパッケージデータベースを更新してから再度試してみてください。
後でシステム設定やネットワーク設定を行う際に必要となる便利なパッケージも一緒にインストールしておくと良いでしょう。例えば、以下のパッケージを追加でインストールすることが一般的です。
base-devel
: ソフトウェア開発に必要な基本的なツールセット(コンパイラなど)。AURからパッケージをインストールする際に必要になります。vim
またはnano
: テキストエディタ。設定ファイルを編集する際に必要です。networkmanager
: ネットワーク管理ツール。特に無線LANを使う場合に便利です。sudo
: 一般ユーザーに管理者権限を一時的に与えるためのコマンド。grub
またはsystemd-boot
: ブートローダー。efibootmgr
(UEFIのみ): UEFIブートエントリを管理するためのツール。man-db
,man-pages
: コマンドのマニュアルページ。
これらのパッケージも一緒にインストールする場合、コマンドは以下のようになります。
“`bash
pacstrap /mnt base base-devel linux linux-firmware networkmanager vim sudo grub efibootmgr # UEFIの場合
または
pacstrap /mnt base base-devel linux linux-firmware networkmanager vim sudo grub # BIOSの場合 (efibootmgrは不要)
“`
必要に応じて他のパッケージも追加できます。
システムのコンフィギュレーション
ベースシステムのインストールが完了したら、新しいシステムの設定を行います。これらの設定は、/mnt
にインストールされたArch Linuxに対して行います。
1. fstab ファイルの生成
fstab
(filesystem table) ファイルは、システム起動時にどのパーティションをどこにマウントするかを定義するファイルです。genfstab
コマンドで、現在の /mnt
にマウントされているパーティション情報に基づいて自動生成します。
bash
genfstab -U /mnt >> /mnt/etc/fstab
-U
オプションはUUID (Universally Unique Identifier) を使用してパーティションを指定します。これにより、ディスクの接続順序が変わっても正しくパーティションを識別できます。
>>
は、標準出力をファイルに追記するリダイレクト演算子です。既存のfstabファイルを上書きしないように注意してください。
生成された /mnt/etc/fstab
ファイルの内容を cat /mnt/etc/fstab
などで確認し、問題がないかチェックしておきましょう。特にスワップパーティションやEFIパーティションが正しく記述されているか確認します。
2. 新しいシステムへの chroot
ここからの設定は、インストールしたばかりの新しいArch Linux環境内で行います。arch-chroot
コマンドを使って、ルートディレクトリを /mnt
に切り替えます。
bash
arch-chroot /mnt
コマンドプロンプトが [root@archiso /]#
のような表示から [root@arch /]#
のような表示に変わります。これで、インストールされたArch Linux環境の中にいることになります。
3. タイムゾーンの設定
システムのタイムゾーンを設定します。タイムゾーンのデータファイルは /usr/share/zoneinfo/
以下にあります。日本であれば Asia/Tokyo
です。
- タイムゾーンデータファイルを
/etc/localtime
にリンクします。
bash
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime - ハードウェアクロックの設定を行います。PCのCMOSチップに記録されている時刻を、ローカルタイム(地域時間)またはUTC(協定世界時)のどちらで管理するかを設定します。LinuxではUTCで管理することが一般的です。
bash
hwclock --systohc
これにより、システム時刻(ソフトウェアクロック)をハードウェアクロックに書き込みます。
4. ロケールの設定
ロケールは、言語、地域、文字エンコーディングなどを定義します。日本語環境を設定します。
/etc/locale.gen
ファイルをエディタで開きます。
bash
vim /etc/locale.gen # vimを使った例
# または nano /etc/locale.gen- ファイル内の、使用したいロケールに対応する行の先頭にある
#
を削除してコメント解除します。日本語の場合は、以下の行を探してコメント解除します。
ja_JP.UTF-8 UTF-8
英語環境も併用したい場合は、en_US.UTF-8 UTF-8
などもコメント解除しておくと良いでしょう。 - ファイルを保存してエディタを終了します。
- ロケールを生成します。
bash
locale-gen - システム全体のロケールを設定します。
/etc/locale.conf
ファイルを作成し、以下の内容を書き込みます。
bash
echo "LANG=ja_JP.UTF-8" > /etc/locale.conf
LANG
変数に使用したいデフォルトのロケールを指定します。
5. ホストネームの設定
PCにネットワーク上の名前を付けます。/etc/hostname
ファイルを作成し、好きなホストネーム(例: myarch
)を一行で書き込みます。
bash
echo "myarch" > /etc/hostname
myarch
の部分は好きな名前に変更してください。
6. hosts ファイルの設定
ホストネームを解決するための基本的な設定を行います。/etc/hosts
ファイルをエディタで開き、以下の内容を追加または修正します。
bash
vim /etc/hosts # または nano /etc/hosts
ファイルに以下の行を追加します。
127.0.0.1 localhost
::1 localhost
127.0.1.1 your_hostname.localdomain your_hostname
your_hostname
の部分は、先ほど /etc/hostname
で設定したホストネームに置き換えてください。例えばホストネームを myarch
とした場合、最後の行は 127.0.1.1 myarch.localdomain myarch
となります。
7. root パスワードの設定
rootユーザーのパスワードを設定します。セキュリティ上非常に重要なので、推測されにくい強固なパスワードを設定してください。
bash
passwd
新しいパスワードを2回入力します。
8. mkinitcpio の設定とイメージ生成
mkinitcpio
は、Linuxカーネルが起動する前に必要となる初期RAMディスクイメージ(initramfs)を作成するツールです。このイメージには、ルートファイルシステムをマウントするために必要なドライバなどが含まれています。ベースシステムのインストール時にカーネルパッケージ (linux
) と一緒にインストールされています。
通常、デフォルトの設定で問題ありませんが、もし特定のハードウェア(例: RAID、LVM、特定のファイルシステム)を使用する場合は、/etc/mkinitcpio.conf
を編集して必要なモジュールやフックを追加する必要があります。
設定を変更しない場合でも、インストールされたカーネルに対してinitramfsイメージを生成しておく必要があります。これはpacstrap
でカーネルをインストールした際に自動的に実行されていますが、念のため手動で実行することも可能です。
bash
mkinitcpio -P
-P
オプションは、現在インストールされている全てのカーネルに対してinitramfsイメージを生成します。通常はlinux
カーネルのみなので、initramfs-linux.img
が作成されます。
ブートローダーのインストールと設定
システムが起動できるように、ブートローダーをインストールし設定します。ブートローダーは、PCの電源投入後にLinuxカーネルを起動させる役割を担います。UEFIシステムとBIOSシステムで手順が異なります。ここではGRUB (GRand Unified Bootloader) を使用する例を示します。GRUBは多くのシステムに対応しており一般的です。
pacstrap
のステップでgrub
とefibootmgr
(UEFIのみ)をインストール済みであることを前提とします。
UEFI環境での GRUB 設定
UEFIシステムでは、GRUBをEFIシステムパーティションにインストールし、UEFIファームウェアにブートエントリを登録します。
-
GRUB をインストール: GRUBのEFIバイナリをEFIシステムパーティションにインストールします。
bash
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux--target=x86_64-efi
: UEFI 64ビットシステム向けであることを指定。--efi-directory=/boot/efi
: EFIシステムパーティションがマウントされているディレクトリを指定。/mnt/boot/efi
にマウントしたパーティションは、arch-chroot
環境からは/boot/efi
として見えています。--bootloader-id=ArchLinux
: UEFIファームウェアに登録されるブートエントリの名前を指定します。好きな名前(例: Arch)でも構いませんが、後で識別しやすい名前にしましょう。
-
GRUB 設定ファイルを生成: GRUBの起動メニューなどを定義する設定ファイル
/boot/grub/grub.cfg
を生成します。
bash
grub-mkconfig -o /boot/grub/grub.cfg
-o /boot/grub/grub.cfg
は、生成された設定ファイルを指定されたパスに保存することを意味します。arch-chroot
環境にいるため、これはインストール先の/boot/grub/grub.cfg
となります。
BIOS環境での GRUB 設定
BIOSシステムでは、GRUBをディスクのMBR (Master Boot Record) またはパーティションのブートセクターにインストールします。通常はMBRにインストールします。
-
GRUB をインストール: GRUBをディスクのMBRにインストールします。
/dev/sdX
は、インストール先のディスクデバイス名全体を指定します(パーティション番号は付けません)。
bash
grub-install --target=i386-pc /dev/sdX # /dev/sdX はディスクデバイス名--target=i386-pc
: BIOSシステム向けであることを指定。/dev/sdX
: GRUBをインストールするディスク全体を指定します。
-
GRUB 設定ファイルを生成: UEFIの場合と同様に、GRUBの設定ファイル
/boot/grub/grub.cfg
を生成します。
bash
grub-mkconfig -o /boot/grub/grub.cfg
これでブートローダーの設定は完了です。
systemd-boot (UEFI専用) の場合 (参考)
GRUBの代わりにsystemd-bootを使用することも可能です。systemd-bootはGRUBよりもシンプルで高速ですが、UEFIシステム専用です。
pacstrap
でsystemd-boot
をインストールします。arch-chroot
後に、bootctl install
を実行します。
bash
bootctl install
これにより、EFIシステムパーティションにsystemd-bootがコピーされ、UEFIブートエントリが登録されます。/boot/loader/entries/
ディレクトリに、起動したいOSのエントリファイル(.conf
拡張子)を作成します。例えばarch.conf
を作成し、カーネルイメージのパスなどを記述します。詳細な設定方法はArch Wikiを参照してください。
シンプルさを好むユーザーにはsystemd-bootも良い選択肢ですが、初心者にはまずGRUBから始めるのが分かりやすいかもしれません。
ネットワーク設定
インストールしたシステムが起動後にネットワークに接続できるように設定します。ベースシステムインストール時にnetworkmanager
をインストールした場合を例に説明します。
arch-chroot
環境で、systemdのサービスを有効化します。
bash
systemctl enable NetworkManager
これにより、システム起動時にNetworkManagerサービスが自動的に開始されるようになります。NetworkManagerは、有線・無線のネットワーク接続を管理するためのデーモンです。起動後、GUI環境であればネットワークアイコンから、CUI環境であればnmcli
コマンドなどを使って接続設定を行うことができます。
もし、systemd-networkd
や他のネットワーク管理ツールを使う場合は、そのツールのサービスを有効化してください。
再起動前の最終確認
Arch Linuxのベースシステムのインストールと最低限の設定は完了しました。再起動して新しいシステムを起動する前に、最終確認を行います。
- 設定ファイルの確認: 作成または編集した各種設定ファイル (
/etc/fstab
,/etc/locale.gen
,/etc/locale.conf
,/etc/hostname
,/etc/hosts
,/etc/grub/grub.cfg
など) をもう一度見直しておくと安心です。
bash
cat /etc/fstab
cat /etc/locale.gen
# その他必要なファイルを cat や vim で確認 - arch-chroot 環境から離脱: インストール先のシステムからライブ環境に戻ります。
bash
exit
コマンドプロンプトが[root@archiso ~]#
に戻ります。 - パーティションのアンマウント:
/mnt
以下にマウントしていたパーティションを全てアンマウントします。ルートパーティションを最後にアンマウントします。
bash
umount -R /mnt
-R
オプションは、指定したディレクトリ以下の全てのファイルシステムを再帰的にアンマウントします。 - USBメモリの取り外し: PCからブータブルUSBメモリを取り外します。再起動時に誤ってUSBメモリから起動しないようにするためです。
初回起動後の設定
PCを再起動し、インストールしたArch Linuxシステムを起動します。正しく設定されていれば、GRUBのメニューが表示され、Arch Linuxが起動するはずです。
1. root でログイン
起動が完了すると、テキストコンソールが表示され、ログインプロンプトが出ます。ユーザー名は root
、パスワードはインストール中に設定したrootパスワードを入力してログインします。
2. 一般ユーザーの作成と sudo 権限の設定
日常的な操作はrootユーザーではなく、一般ユーザーで行うのがセキュリティ上の推奨事項です。また、システム管理作業を行う際に一時的にroot権限が必要になることがあるため、sudoコマンドを使えるように設定します。
- 一般ユーザーの作成:
useradd
コマンドで新しいユーザーを作成します。ここではユーザー名をyour_username
とします(好きな名前に置き換えてください)。-m
オプションはホームディレクトリを作成します。
bash
useradd -m your_username - ユーザーのパスワード設定: 作成したユーザーのパスワードを設定します。
bash
passwd your_username
新しいパスワードを2回入力します。 -
ユーザーをwheelグループに追加: sudo権限を与えるために、作成したユーザーを
wheel
グループに追加するのが一般的な方法です。
bash
usermod -aG wheel your_username
-aG
オプションは、ユーザーを既存のグループに追加することを意味します。 -
Sudoers ファイルの設定: どのグループやユーザーがsudoを実行できるかを定義する
/etc/sudoers
ファイルを編集します。このファイルはvisudo
コマンドを使って編集するのが推奨されます。visudo
は編集中の文法チェックを行ってくれるため、誤った設定でシステムが操作不能になるのを防ぎます。
bash
EDITOR=vim visudo # vimを使う場合
# または EDITOR=nano visudo # nanoを使う場合
開かれたファイル内で、以下の行を探します。
# %wheel ALL=(ALL:ALL) ALL
この行の先頭にある#
を削除してコメント解除します。
%wheel ALL=(ALL:ALL) ALL
これにより、wheel
グループに所属するユーザーは、パスワード入力なしで全てのコマンドをroot権限で実行できるようになります。パスワード入力を毎回求めたい場合は、%wheel ALL=(ALL:ALL) ALL
を%wheel ALL=(ALL:ALL) NOPASSWD: ALL
に変更します(ただし、セキュリティ上のリスクが増します)。
ファイルを保存してエディタを終了します。
これで、作成した一般ユーザーでログインし、システム管理コマンドを実行する際に sudo [コマンド]
の形式で実行できるようになります。設定が反映されるように、rootユーザーからログアウトし、新しいユーザーでログインして確認してみてください。
3. ディスプレイサーバーとデスクトップ環境のインストール (オプション)
Arch Linuxはベースシステムのみがインストールされているため、この時点ではCUI (Character User Interface) 環境です。GUI (Graphical User Interface) 環境を使いたい場合は、ディスプレイサーバー(XorgまたはWayland)とデスクトップ環境(GNOME, KDE Plasma, XFCEなど)またはウィンドウマネージャーを追加でインストールする必要があります。
これは必須ではありませんが、多くのユーザーがインストールする部分なので、簡単に手順を示します。
- Xorgのインストール: 多くのデスクトップ環境やアプリケーションがXorg上で動作します。
bash
sudo pacman -S xorg
Waylandを使いたい場合は、Waylandコンポジターなどを別途インストールします。 - ビデオドライバーのインストール: お使いのグラフィックカードに応じたドライバーをインストールします(Intel, AMD, NVIDIAなど)。
- Intel:
sudo pacman -S xf86-video-intel
(またはmesa
とvulkan-intel
) - AMD:
sudo pacman -S xf86-video-amdgpu
(またはmesa
とvulkan-radeon
) - NVIDIA:
sudo pacman -S nvidia nvidia-settings nvidia-utils
- Intel:
- デスクトップ環境またはウィンドウマネージャーのインストール: 好きなものを一つ選びます。例:
- GNOME:
sudo pacman -S gnome gnome-extra gdm
- KDE Plasma:
sudo pacman -S plasma kde-applications sddm
- XFCE:
sudo pacman -S xfce4 xfce4-goodies lightdm
- ウィンドウマネージャー (例: i3):
sudo pacman -S i3 dmenu
多くのデスクトップ環境には、ログインマネージャー(GDM, SDDM, LightDMなど)も含まれています。
- GNOME:
- ログインマネージャーの有効化: インストールしたログインマネージャーのsystemdサービスを有効化します。例えばGDMの場合:
bash
sudo systemctl enable gdm
SDDMの場合はsddm
、LightDMの場合はlightdm
と置き換えてください。 - 再起動: システムを再起動すると、ログインマネージャーの画面が表示され、GUIでログインできるようになります。
bash
sudo systemctl reboot
これらのGUI関連のインストールと設定は、Arch Wikiに詳細な情報がありますので、そちらも参考にしながら進めてください。
4. 日本語入力環境の設定 (オプション)
GUI環境をインストールした場合、日本語入力を行うためにはFcitx5やMozcといった入力メソッドフレームワークとエンジンをインストールし、設定する必要があります。
- 必要なパッケージのインストール: Fcitx5とMozcをインストールする例です。
bash
sudo pacman -S fcitx5-im # 入力メソッドフレームワーク (必要に応じて他のグループも)
sudo pacman -S fcitx5-mozc # 日本語入力エンジン
sudo pacman -S fcitx5-frontend-gtk3 fcitx5-frontend-qt5 # GUIツールキット連携 - 環境変数の設定: Fcitx5が起動するように環境変数を設定します。
~/.xprofile
またはデスクトップ環境の設定ファイルに以下の行を追加します。
bash
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
これらの設定は、ログインし直すか、システムを再起動することで反映されます。 - Fcitx5の起動: デスクトップ環境の自動起動設定でFcitx5を起動するように設定するか、手動で
fcitx5 -d &
コマンドを実行します。 - 入力メソッドエンジンの設定: デスクトップ環境のメニューから「Fcitx5設定」のようなツールを起動し、利用可能な入力メソッドリストにMozcを追加します。
これで、アプリケーション内で日本語入力(IME)が使えるようになるはずです。詳細な設定方法は、使用するデスクトップ環境や入力メソッドによって異なるため、Arch Wikiや各プロジェクトのドキュメントを参照してください。
5. AUR ヘルパーの導入 (オプション)
AUR (Arch User Repository) は、公式リポジトリにないソフトウェアをインストールするためのリポジトリです。AURのパッケージはPKGBUILDというスクリプトで提供されており、ユーザー自身がビルドしてインストールする必要があります。この作業を自動化してくれるツールがAURヘルパーです(例: yay
, paru
)。
AURヘルパーは公式リポジトリにはありませんが、手動でビルドしてインストールできます。例えばyay
をインストールする場合の手順例です(base-devel
がインストール済みである必要があります)。
- Gitをインストール: PKGBUILDファイルをダウンロードするためにGitが必要です。
bash
sudo pacman -S git - yayのリポジトリをクローン:
bash
git clone https://aur.archlinux.org/yay.git - ディレクトリ移動とビルド・インストール:
bash
cd yay
makepkg -si
makepkg -si
は、PKGBUILDに基づいてパッケージをビルドし (-s
で依存関係も解決)、ビルドしたパッケージをインストールします (-i
)。
AURヘルパーがインストールできれば、公式リポジトリとAURの両方から、yay -S [パッケージ名]
のような簡単なコマンドでソフトウェアをインストールできるようになり、非常に便利です。
まとめ
おめでとうございます!これで、あなた自身のArch Linuxシステムが完成しました。このガイドを通じて、以下のステップを学び、実行しました。
- インストールメディアの準備
- UEFI/BIOSでの起動とライブ環境の初期設定
- ディスクのパーティショニングとファイルシステムの作成
- ベースシステムのインストールと基本的な設定 (タイムゾーン、ロケール、ホストネームなど)
- ブートローダーのインストールと設定
- システム起動後のユーザー作成とsudo権限の設定
- GUI環境や日本語入力環境の構築 (オプション)
他の多くのLinuxディストリビューションとは異なり、Arch Linuxはユーザーがシステムをゼロから構築していくプロセスを重視しています。この経験は、Linuxの仕組みを理解する上で非常に貴重なものとなるでしょう。
Arch Linuxの最大の強みの一つは、活発なコミュニティと、非常に充実した公式Wikiです。今回触れられなかった詳細な情報や、さらに進んだ設定(カーネルのカスタマイズ、特定のハードウェア設定、様々なアプリケーションのインストールと設定など)については、Arch Wiki (https://wiki.archlinux.jp/ – 日本語版) を参照してください。Arch Wikiは、世界中のArch Linuxユーザーによって維持管理されており、最新かつ正確な情報源です。何か問題が発生した場合も、まずArch Wikiで検索してみることをお勧めします。
Arch Linuxでの旅は、まだ始まったばかりです。これから、あなたの手でこのシステムをさらに進化させ、あなたにとって最高の環境を構築していくことができます。このガイドが、その最初の一歩を踏み出す手助けとなれば幸いです。
Happy Hacking on Arch Linux!