Arch Linux インストール手順 完全ガイド【初心者向け】


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イメージファイルをダウンロードします。

このページには、世界各地のミラーサーバーリストがあります。お住まいの地域に最も近い、あるいは通信速度が速いと思われるミラーを選んでください。通常は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
``
(注: 上記の鍵ID
4A47G…7Sは例です。ダウンロードページで示されている正しい鍵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コマンド: ターミナルを使います。誤ったデバイスに書き込むとデータが消えるため、慎重に行ってください。
    1. USBメモリを挿入し、diskutil list コマンドでデバイス名を調べます(例: /dev/disk2)。このとき、デバイス名の末尾に s1 のようなパーティション番号が付いていない方 を使います(例: /dev/disk2 ではなく /dev/rdisk2 の方が高速な場合があります)。
    2. USBメモリをアンマウントします: diskutil unmountDisk /dev/diskX (Xはデバイス番号)。
    3. ISOファイルを書き込みます: sudo dd if=/path/to/archlinux-yyyy.mm.dd-x86_64.iso of=/dev/rdiskX bs=1m (/path/to/... はISOファイルへのパス、X はデバイス番号)。
    4. コマンド完了後、diskutil eject /dev/diskX でUSBメモリを取り外します。

Linux:

  • Etcher: macOSと同様にEtcherを使用するのが簡単です。
  • ddコマンド: macOSと同様です。
    1. USBメモリを挿入し、lsblk または fdisk -l コマンドでデバイス名を調べます(例: /dev/sdX、Xはアルファベット)。このとき、パーティション番号が付いていない方のデバイス名 を使います(例: /dev/sda1 ではなく /dev/sda)。
    2. そのデバイスがマウントされていないことを確認します。もしマウントされていればアンマウントします。
    3. ISOファイルを書き込みます: sudo dd if=/path/to/archlinux-yyyy.mm.dd-x86_64.iso of=/dev/sdX bs=4M status=progress (/path/to/... はISOファイルへのパス、X はデバイスアルファベット)。
    4. コマンド完了後、sync コマンドを実行して書き込みが完了したことを確認し、安全に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

    eth0enpXsYのようなインターフェースにIPアドレスが割り当てられていれば接続できています。
    pingコマンドで外部と通信できるか確認します。
    bash
    ping archlinux.org

    疎通できればOKです。

  • 無線LAN: 無線LANを使用する場合は、手動での設定が必要です。ライブ環境ではiwctlというツールが標準で利用できます。

    1. デバイス名を確認します: iwctl device list (例: wlan0)
    2. 無線LANをスキャンします: iwctl station [デバイス名] scan
    3. 利用可能なネットワーク一覧を表示します: iwctl station [デバイス名] get-networks
    4. 目的のネットワークに接続します: iwctl station [デバイス名] connect [SSID] (SSIDはネットワーク名)
    5. パスワードを求められるので入力します。
    6. 接続できたか確認します: 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システムには以下のパーティションが必要です。

  1. ルートパーティション (/): OSの本体、システムファイル、アプリケーションなどがインストールされる領域です。最低限必要なパーティションです。
  2. スワップパーティション (swap): システムの物理メモリ(RAM)が不足した場合に、一時的にデータを待避させるための領域です。物理メモリと同等か、それ以上のサイズが推奨されることが多いですが、最近のPCでは大容量メモリを搭載していることが多いため、必須ではありません。しかし、ハイバネーション(休止状態)機能を使う場合は必須となります。ファイルとしてスワップ領域を作成することも可能です。
  3. ホームパーティション (/home): ユーザーの個人設定ファイルやドキュメントなどを保存する領域です。ルートパーティションと分けることで、OSを再インストールする際にホームパーティションを保持したまま作業しやすくなります。必須ではありませんが、分けておくことが推奨されます。
  4. EFIシステムパーティション (/boot/efi): UEFIシステムの場合に必須となるパーティションです。ブートローダー(OSを起動するためのプログラム)が配置されます。ファイルシステムはFAT32である必要があります。サイズは通常100MB〜500MB程度で十分です。
  5. ブートパーティション (/boot): BIOSシステムの場合に必要となることがあるパーティションです。カーネルイメージやinitramfsなどが配置されます。ルートパーティションと分けることも、分けずにルートパーティション内に含めることも可能です。

パーティショニングツール

ライブ環境では、いくつかのパーティショニングツールが利用できます。

  • fdisk: MBRパーティションテーブルの編集に主に使われますが、GPTの基本的な編集も可能です。コマンドラインベースで操作します。
  • gdisk: GPTパーティションテーブルの編集に特化したツールです。UEFI環境ではこちらを使うのが推奨されます。コマンドラインベースで操作します。
  • parted: MBRとGPTの両方に対応したツールです。コマンドラインベースで、fdiskgdiskよりも強力な機能を持っています。
  • 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が起動したら、コマンドを入力していきます。

  1. 既存のパーティションを削除: o コマンドで新しいGPTパーティションテーブルを作成します。これにより、ディスク上の既存のパーティション情報は全て削除されます。
    Command (? for help): o
    This option deletes all partitions on the disk and creates a new protective MBR.
    Proceed? (Y/N): Y
  2. 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'.
  3. スワップパーティションを作成: サイズは例えば物理メモリの容量と同じか、その半分程度とします。ここでは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'.
  4. ルートパーティションを作成: 残りの領域の一部をルートパーティション(/)とします。ここでは例えば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'.
  5. ホームパーティションを作成: 残りの全ての領域をホームパーティション(/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'.
  6. パーティション構成を確認: 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
  7. 変更を書き込んで終了: 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が起動したら、コマンドを入力していきます。

  1. 既存のパーティションを削除: o コマンドで新しい空のMBRパーティションテーブルを作成します。既存のパーティション情報は全て削除されます。
    Command (m for help): o
    Created a new DOS disklabel with disk identifier 0x...
  2. ルートパーティションを作成: サイズは例えば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.
  3. スワップパーティションを作成: サイズは例えば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 スクリプトを使用して、新しいシステムにベースパッケージをインストールします。最低限必要なパッケージは baselinux (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 です。

  1. タイムゾーンデータファイルを /etc/localtime にリンクします。
    bash
    ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  2. ハードウェアクロックの設定を行います。PCのCMOSチップに記録されている時刻を、ローカルタイム(地域時間)またはUTC(協定世界時)のどちらで管理するかを設定します。LinuxではUTCで管理することが一般的です。
    bash
    hwclock --systohc

    これにより、システム時刻(ソフトウェアクロック)をハードウェアクロックに書き込みます。

4. ロケールの設定

ロケールは、言語、地域、文字エンコーディングなどを定義します。日本語環境を設定します。

  1. /etc/locale.gen ファイルをエディタで開きます。
    bash
    vim /etc/locale.gen # vimを使った例
    # または nano /etc/locale.gen
  2. ファイル内の、使用したいロケールに対応する行の先頭にある # を削除してコメント解除します。日本語の場合は、以下の行を探してコメント解除します。
    ja_JP.UTF-8 UTF-8
    英語環境も併用したい場合は、en_US.UTF-8 UTF-8 などもコメント解除しておくと良いでしょう。
  3. ファイルを保存してエディタを終了します。
  4. ロケールを生成します。
    bash
    locale-gen
  5. システム全体のロケールを設定します。/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のステップでgrubefibootmgr (UEFIのみ)をインストール済みであることを前提とします。

UEFI環境での GRUB 設定

UEFIシステムでは、GRUBをEFIシステムパーティションにインストールし、UEFIファームウェアにブートエントリを登録します。

  1. 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)でも構いませんが、後で識別しやすい名前にしましょう。
  2. 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にインストールします。

  1. GRUB をインストール: GRUBをディスクのMBRにインストールします。/dev/sdX は、インストール先のディスクデバイス名全体を指定します(パーティション番号は付けません)。
    bash
    grub-install --target=i386-pc /dev/sdX # /dev/sdX はディスクデバイス名

    • --target=i386-pc: BIOSシステム向けであることを指定。
    • /dev/sdX: GRUBをインストールするディスク全体を指定します。
  2. 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システム専用です。

  1. pacstrapsystemd-boot をインストールします。
  2. arch-chroot 後に、bootctl install を実行します。
    bash
    bootctl install

    これにより、EFIシステムパーティションにsystemd-bootがコピーされ、UEFIブートエントリが登録されます。
  3. /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のベースシステムのインストールと最低限の設定は完了しました。再起動して新しいシステムを起動する前に、最終確認を行います。

  1. 設定ファイルの確認: 作成または編集した各種設定ファイル (/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 で確認
  2. arch-chroot 環境から離脱: インストール先のシステムからライブ環境に戻ります。
    bash
    exit

    コマンドプロンプトが [root@archiso ~]# に戻ります。
  3. パーティションのアンマウント: /mnt 以下にマウントしていたパーティションを全てアンマウントします。ルートパーティションを最後にアンマウントします。
    bash
    umount -R /mnt

    -R オプションは、指定したディレクトリ以下の全てのファイルシステムを再帰的にアンマウントします。
  4. USBメモリの取り外し: PCからブータブルUSBメモリを取り外します。再起動時に誤ってUSBメモリから起動しないようにするためです。

初回起動後の設定

PCを再起動し、インストールしたArch Linuxシステムを起動します。正しく設定されていれば、GRUBのメニューが表示され、Arch Linuxが起動するはずです。

1. root でログイン

起動が完了すると、テキストコンソールが表示され、ログインプロンプトが出ます。ユーザー名は root、パスワードはインストール中に設定したrootパスワードを入力してログインします。

2. 一般ユーザーの作成と sudo 権限の設定

日常的な操作はrootユーザーではなく、一般ユーザーで行うのがセキュリティ上の推奨事項です。また、システム管理作業を行う際に一時的にroot権限が必要になることがあるため、sudoコマンドを使えるように設定します。

  1. 一般ユーザーの作成: useradd コマンドで新しいユーザーを作成します。ここではユーザー名を your_username とします(好きな名前に置き換えてください)。-m オプションはホームディレクトリを作成します。
    bash
    useradd -m your_username
  2. ユーザーのパスワード設定: 作成したユーザーのパスワードを設定します。
    bash
    passwd your_username

    新しいパスワードを2回入力します。
  3. ユーザーをwheelグループに追加: sudo権限を与えるために、作成したユーザーを wheel グループに追加するのが一般的な方法です。
    bash
    usermod -aG wheel your_username

    -aG オプションは、ユーザーを既存のグループに追加することを意味します。

  4. 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など)またはウィンドウマネージャーを追加でインストールする必要があります。

これは必須ではありませんが、多くのユーザーがインストールする部分なので、簡単に手順を示します。

  1. Xorgのインストール: 多くのデスクトップ環境やアプリケーションがXorg上で動作します。
    bash
    sudo pacman -S xorg

    Waylandを使いたい場合は、Waylandコンポジターなどを別途インストールします。
  2. ビデオドライバーのインストール: お使いのグラフィックカードに応じたドライバーをインストールします(Intel, AMD, NVIDIAなど)。
    • Intel: sudo pacman -S xf86-video-intel (または mesavulkan-intel)
    • AMD: sudo pacman -S xf86-video-amdgpu (または mesavulkan-radeon)
    • NVIDIA: sudo pacman -S nvidia nvidia-settings nvidia-utils
  3. デスクトップ環境またはウィンドウマネージャーのインストール: 好きなものを一つ選びます。例:
    • 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など)も含まれています。
  4. ログインマネージャーの有効化: インストールしたログインマネージャーのsystemdサービスを有効化します。例えばGDMの場合:
    bash
    sudo systemctl enable gdm

    SDDMの場合は sddm、LightDMの場合は lightdm と置き換えてください。
  5. 再起動: システムを再起動すると、ログインマネージャーの画面が表示され、GUIでログインできるようになります。
    bash
    sudo systemctl reboot

これらのGUI関連のインストールと設定は、Arch Wikiに詳細な情報がありますので、そちらも参考にしながら進めてください。

4. 日本語入力環境の設定 (オプション)

GUI環境をインストールした場合、日本語入力を行うためにはFcitx5やMozcといった入力メソッドフレームワークとエンジンをインストールし、設定する必要があります。

  1. 必要なパッケージのインストール: Fcitx5とMozcをインストールする例です。
    bash
    sudo pacman -S fcitx5-im # 入力メソッドフレームワーク (必要に応じて他のグループも)
    sudo pacman -S fcitx5-mozc # 日本語入力エンジン
    sudo pacman -S fcitx5-frontend-gtk3 fcitx5-frontend-qt5 # GUIツールキット連携
  2. 環境変数の設定: Fcitx5が起動するように環境変数を設定します。~/.xprofile またはデスクトップ環境の設定ファイルに以下の行を追加します。
    bash
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    export DefaultIMModule=fcitx

    これらの設定は、ログインし直すか、システムを再起動することで反映されます。
  3. Fcitx5の起動: デスクトップ環境の自動起動設定でFcitx5を起動するように設定するか、手動で fcitx5 -d & コマンドを実行します。
  4. 入力メソッドエンジンの設定: デスクトップ環境のメニューから「Fcitx5設定」のようなツールを起動し、利用可能な入力メソッドリストにMozcを追加します。

これで、アプリケーション内で日本語入力(IME)が使えるようになるはずです。詳細な設定方法は、使用するデスクトップ環境や入力メソッドによって異なるため、Arch Wikiや各プロジェクトのドキュメントを参照してください。

5. AUR ヘルパーの導入 (オプション)

AUR (Arch User Repository) は、公式リポジトリにないソフトウェアをインストールするためのリポジトリです。AURのパッケージはPKGBUILDというスクリプトで提供されており、ユーザー自身がビルドしてインストールする必要があります。この作業を自動化してくれるツールがAURヘルパーです(例: yay, paru)。

AURヘルパーは公式リポジトリにはありませんが、手動でビルドしてインストールできます。例えばyayをインストールする場合の手順例です(base-develがインストール済みである必要があります)。

  1. Gitをインストール: PKGBUILDファイルをダウンロードするためにGitが必要です。
    bash
    sudo pacman -S git
  2. yayのリポジトリをクローン:
    bash
    git clone https://aur.archlinux.org/yay.git
  3. ディレクトリ移動とビルド・インストール:
    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!


コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール