Arch Linux インストール (3)

ネット接続
ここから、実際にインストールの処理に入っていきますが、インストールするファイル(パッケージ)は、ネットからダウンロードする必要があるので、まずは、インストールシステム上でネットに接続する必要があります。

有線 LAN の場合は、起動時に自動で接続される場合がほとんどですが、接続に失敗した場合や、無線 LAN の場合は、手動で接続する必要があります。
接続確認
ネットに接続されているかどうかを確認したい場合は、以下のコマンドを実行します。

# ping archlinux.jp

実行中はずっと送受信が繰り返されるので、エラーがなければ、Ctrl+C を押して中断してください。
有線 LAN で接続
# ネットワーク設定 - ArchWiki

有線 LAN の場合、通常は自動で接続されていますが、接続に失敗していた場合は、手動で設定する必要があります。
失敗することはあまりないと思いますが、問題があった場合は、上のページで詳細を確認してください。
無線 LAN で接続
無線 LAN は接続手順が多いため、別ページにまとめました。
-> 無線 LAN 接続

以前は wifi-menu というコマンドがあったため、手順に従って簡単に接続できましたが、現在はインストール ISO 内に含まれていないため、代わりに iwctl コマンドを使って接続します。

== 無線 LAN デバイスの名前を取得 ==

# iwctl station list

通常は wlan0 です。

== 近所のルータを検索 ==

# iwctl station wlan0 get-networks

ルータのネットワーク名がわからない場合は、検索してください。
wlan0 の部分は、上記で表示されたデバイス名を指定します。

== 接続 ==

# iwctl station wlan0 connect <network-name>

ルータと接続します。
ルータのネットワーク名を指定してください。
Passphrase: で暗号化キーの入力を求められるため、入力してください。
時間調整
ネットからパッケージをダウンロードする際、パソコンの時刻が正しくないと、ダウンロードできない場合があるので、ネットから時刻を調整します。

一度 Linux をインストールしていて、時刻が正しいのがわかっているなら、行わなくても構いません。
(Windows から乗り換える場合、時刻の記録基準が異なっているので、必ず実行してください)

# timedatectl set-ntp true
パーティションのマウント
インストールを行う前に、インストール先のパーティションをマウントする必要があります。

Linux 上では、まず、mount コマンドでマウントを行って、任意のディレクトリにパーティションを割り当てないと、フォーマットしたファイルシステムでの読み書きを行うことはできません。

mount <デバイス> <マウント先>

この後、インストール先のパーティションに、Arch Linux を起動するのに必要なファイルをインストールしていく必要があるため、一時的な作業用として、メモリ上に起動している Linux システム上の /mnt ディレクトリに、インストール先のパーティションをマウントします。

Linux では、/mnt は、マウント用として用意されているディレクトリです。

マウントした後に、/mnt ディレクトリ以下を操作すると、マウントしたパーティション内のファイルを操作するのと同じことになります。
マウント
Arch Linux 用パーティション
まずは、Arch Linux のインストール先となるパーティションを、/mnt にマウントします。

パーティションのデバイス名は、自分の環境用に置き換えてください。
今回の場合、sda1 を UEFI ブート用にしているので、sda2 が Arch Linux 用になります。

# mount /dev/sda2 /mnt
             ~~~~

UEFI ブートパーティション
UEFI ブートパーティションがある場合は、それを /mnt/boot にマウントします。

しかし、現時点で boot ディレクトリは存在しないので、先に mkdir コマンドで、ディレクトリを作成します。

この場合、「/mnt/boot ディレクトリを作成する」=「/mnt にマウントされているパーティション上に /boot ディレクトリを作成する」 ということになります。

# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
             ~~~~

他に、/home などに割り当てて使うパーティションを作成した場合は、それらも同じようにマウントしておきます。
Linux システムに関係ないデータ保存用のパーティションなどは、インストール時には使わないので、今はマウントしなくても構いません。
サーバーのミラーを選択
パッケージをダウンロードするための、サーバーのミラーを選択します。

Arch Linux のリポジトリのサーバーは、各国ごとにいくつか存在します。
基本的に、自分がいる国のサーバーを使うのが一番速いので、日本のサーバーを選択します。

ミラーのリストは、/etc/pacman.d/mirrorlist のテキストファイルに保存されているため、このファイルを編集することになります。
※ここでは、メモリ上に起動している Linux システム内のファイルを編集することになります。

一番上に記述されている URL から順に接続され、接続に失敗すると、次の URL で接続されます。
行の先頭が '#' で、コメント行となります。

以前は、すべてのミラーリストが記述されていて、そこから使うものを選択する形でしたが、現在は、すべての国を対象として、ミラーのスコアが高い順に、数十個並べたリストになっています。

reflector
デフォルトのリストの中には、おそらく日本のミラーは含まれないので、reflector コマンドを使うことで、日本のサーバーのみを、スコアの高い順で取得します。

reflector コマンドは、Arch Linux のミラーを取得するためのコマンド (Python スクリプト) です。
インストール ISO には含まれていますが、Arch Linux の基本システムには含まれないので、インストール後に使いたい場合は、reflector パッケージをインストールしてください。

# reflector --sort rate --country Japan --latest 10 --save /etc/pacman.d/mirrorlist

日本のミラーのみ、スコアの高い順で、上から 10 個のリストを取得して、/etc/pacman.d/mirrorlist に保存します。

ミラーについて
サーバーによっては、たまに接続できない時があったり、速度が不安定な場合があるので、実際に使ってみて、好きなサーバーを決めてください。

# https://www.archlinux.jp/mirrors/status/
このページで、日本のサーバーの状態がわかるので、参考にしてください。

テキストファイルの編集
テキストファイルを編集するには、nano コマンドなどを使います。

# nano /etc/pacman.d/mirrorlist

Alt + 6現在行をコピー
Ctrl + Uコピーした行を貼り付け
Ctrl + W検索
Alt + W次を検索
Ctrl + X終了。
ファイルを保存するか聞かれるので、保存するなら y を入力。
その後、保存するファイル名を指定します。変更がなければ Enter で決定します。
インストール
必要なパッケージをダウンロードして、インストール先に、Arch Linux の基本システムと、必要となるその他のパッケージをインストールします。

# pacstrap -i /mnt base base-devel linux linux-firmware nano netctl dhcpcd

* 無線 LAN 接続する場合は 'wpa_supplicant' を追加
* man コマンドでヘルプを表示したい場合は 'man-db' 'man-pages' を追加

pacstrap は、Arch Linux のシステムをインストールするためのシェルスクリプトです。
Linux システムに必要なディレクトリを自動で作成し、指定されたパッケージを pacman コマンドでインストールします。
# https://git.archlinux.org/arch-install-scripts.git/tree/pacstrap.in

-i オプションは、インストール途中に表示される確認事項を有効にします。
このオプションがない場合は、すべてデフォルトの回答となり、すぐにインストールが開始します。

オプションを除く最初の引数の「/mnt」は、パッケージのインストール先です。
インストール先のパーティションは /mnt にマウントしてあるので、通常のファイルの読み書きを行いたい場合は、マウント先のディレクトリのパスで指定します。

それ以降の引数は、インストールするパッケージ名です。
上記の場合、最低限必要だと思われるものを指定してありますが、自分の環境に合わせて、必要なものをインストールしてください。

また、現在のインストールシステム上の mirrorlist ファイルが、インストール先の mirrorlist にコピーされるので、ミラー情報は引き継がれます。

2019年10月6日より、base パッケージの構成が大幅に変更されました。
以前は base パッケージのみでも最低限の環境の構築はできましたが、今後はより細かくパッケージを指定していく必要があります。
-> base パッケージの違い
パッケージについて
baseArch Linux の基本パッケージ。
https://www.archlinux.jp/packages/core/any/base/
base-devel開発時に使われることが多いパッケージのグループ。
ソフトウェアなどをソースコードからコンパイルすることがある場合は、インストールしておくといいでしょう。
sudo も含まれています。
https://www.archlinux.jp/groups/x86_64/base-devel/
linuxLinux カーネル。カーネルがなければ、Linux は起動できません。
このパッケージは、一般的な選択肢となる Linux カーネルです。
# カーネル - Arch Wiki

カーネルのパッケージは他にも、長期サポート版の linux-lts や、linux-zen などがあります。
linux パッケージの代わりに、それらを使うことも出来ます。
linux-firmwareLinux 用のドライバが一つにまとまったパッケージです。
自分のパソコン構成において、ドライバが必要となるハードウェアがない場合は、インストールしなくても構いませんが、一般的にはインストールしておいてください。
nanoコンソール画面用のテキストエディタ。
とりあえず一番使いやすいと思うので、入れておいてください。
netctlArch Linux 独自の CUI ネットワークマネージャ。
ネットワーク接続にはいくつか方法がありますが、Arch Linux を使うなら netctl を推奨します。
dhcpcdDHCP を使う際に必要となります。
有線/無線 LAN で、IP アドレスを自動で取得するために使われます。
固定アドレスを使うなら、なくても構いません。
wpa_supplicant無線 LAN 接続をする時に必要になります。
man-db,
man-pages
man コマンドで、コマンドのヘルプを表示したい場合は、インストールしてください。
man コマンドは滅多に使わないという場合は、インストールしなくても構いません。

他には、各ファイルシステム用のパッケージもあります。

reiserfsprogsReiserfs
jfsutilsJFS
xfsprogsXFS

※ネット接続に関するパッケージは特に、あらかじめインストールしておくようにしてください。
それらのパッケージがなければ、ネット接続自体ができなくなるため、再度インストールメディアを使うことになります。


Arch Linux では、最小限の Linux 環境を構築するために、必要なパッケージは自分で選択してインストールするという形になっているので、何をするために何のコマンドが必要かは、ある程度把握しておく必要があります。
インストール実行後
コマンドの実行後、まずはダウンロードが行われ、その後、/mnt に対してインストールが行われます。
終了するまで、しばらく待ってください。
ダウンロードが遅いと時間がかかりますが、インストール処理自体はそれほど時間はかかりません。

もしもミラーの状態が悪くて速度が遅い場合は、/etc/pacman.d/mirrorlist を編集して、他のミラーを使うようにしてください。

ここから先は、/mnt 以下のファイルを操作して、インストールしたシステム内の設定を行っていきます。
fstab
# fstab - ArchWiki

起動時に自動的にマウントするパーティションなどの情報を、/etc/fstab のファイルに記述します。

※ここでは、インストール先の Arch Linux システム上のファイルを編集するので、
ファイルのパスは /mnt/etc/fstab となります。


ここで、最低限 Arch Linux OS 用のパーティションを指定しておかないと、Arch Linux の起動ができません。

なお、現在のパーティションの状態とファイルシステムを確認したい場合は、以下のコマンドを使います。

# lsblk --fs
genfstab コマンド
ファイルを直接編集して記述することもできますが、genfstab コマンドを使うと、自動的に現在の状態を検索して書き込むことができます。

# genfstab -U /mnt >> /mnt/etc/fstab

-U オプションは、デバイス名を /dev/sda1 などとして指定する代わりに、UUID を使ってパーティションを指定します。
どちらを使っても構いませんが、HDD などの接続状態を変えることがあるなら、UUID を使った方が良いです。

※パーティションのフォーマットを行うと、その度に UUID が変わるので、注意してください。

>>」 は、genfstab で出力されたテキストを、指定ファイル内容の末尾に追記します。
fstab ファイルには、デフォルトで、コメントとして設定項目のヒントが書かれているので、その後に、出力された情報を追加させます。
確認
fstab ファイルの内容を、テキストエディタで確認してみます。

# nano /mnt/etc/fstab

今回の場合、sda1 が UEFI ブート用、sda2 が Arch Linux 用なので、以下のようになります。

...
# /dev/sda2 LABEL=arch
UUID=35ec0740-2208-485a-9d06-e15289eb25ee   /  ext4  rw,relatime,data=ordered   0 1

# /dev/sda1 (以下は1行です)
UUID=120B-1CA0  /boot  vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro    0 2

まずは、Arch Linux OS 用のパーティションが先に定義されます。
次に、UEFI ブートパーティションが定義されます。

各項目は、1行の中で空白で区切って、それぞれ、「デバイス名や UUID」「マウントディレクトリ名」「ファイルシステムタイプ」「オプション」「dump (dump コマンドでバックアップを行うか)」「pass (fsck のチェックをするか)」となっています。

基本的に、genfstab で出力された情報をそのまま使えば問題ありません。
ファイルシステムの追加
自動マウントさせるファイルシステムを追加したい場合は、その情報を追記してください。

今回の場合、データ用として作ったパーティション sda3 はまだマウントしていないので、genfstab はそれらの情報を出力しません。

手動で追加するなら、以下のようになります。

/dev/sda3  /mnt/data  ext4  rw,relatime  0 2

マウントディレクトリは、/mnt/data としました。
/mnt 以下の名前は何でも良いのですが、今回はデータ用なので、data としました。

なお、/mnt/data が存在しない場合は、自動で作成されるので、mkdir コマンドでディレクトリを作る必要はありません。

ファイルシステムは ext4 で、オプションは Arch Linux OS 用のパーティションと同じです。
dump は基本的に 0 にしておきます。

pass の項目は、Arch Linux OS 用では 1 でしたが、データ用では 2 にしています。
これは、fsck コマンドでの、ファイルシステムのエラーなどのチェックを行うかどうかの値です。

0チェックを行わない。スワップ用などで指定する。
1一番最初にチェックを行う。Linux システムのルート (/) で指定する。
21 のファイルシステムをチェックした後に、チェックを行う。
データ用など、Linux ルート以外のパーティションで指定する。

btrfs の場合、pass はすべて 0 にする必要があります。

基本的に、Linux システム用のパーティションのみ 1、それ以外は 2、チェックを行う必要がなければ 0 とします。
次へ
次からは、インストールしたシステム内に入って、直接細かい設定を行っていきます。

>> インストール (4)