Arch Linux インストール (3)

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

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

# ping archlinux.jp

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

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

インストールシステム上で接続する場合も、上記とほぼ同じ手順を行う必要があります。

最低限の動作で行うなら、インターフェイス名の確認・立ち上げと、wifi-menu コマンドでの接続を行います。

(wlp* のインターフェイス名確認)
# ip link

(インターフェイスを立ち上げる)
# ip link set wlp2s0 up

(指定インターフェイスで接続)
# wifi-menu wlp2s0
時間調整
ネットからパッケージをダウンロードする際、パソコンの時刻が正しくないと、ダウンロードできない場合があるので、ネットから時刻を調整します。

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

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

Linux では、マウントを行わないと、パーティションやメディア内のファイルにアクセスできません。
任意のディレクトリにパーティションを割り当てて、ファイルの読み書きが出来るようにします。

今回は、インストール作業として、/mnt ディレクトリにインストール先のパーティションをマウントします。
/mnt は、マウント用としてあらかじめ用意されているディレクトリです。

マウント以降、/mnt ディレクトリ以下を操作すると、マウントしたパーティション内のファイルを操作するのと同じことになります。
マウント
Arch Linux 用パーティション
まずは、Arch Linux をインストールするためのパーティションを /mnt にマウントします。
パーティションのデバイス名は、自分の環境用に置き換えてください。
今回の場合、sda1 を UEFI ブート用にしているので、sda2 が Arch Linux 用になります。

# mount /dev/sda2 /mnt

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

boot ディレクトリは存在しないので、先に mkdir コマンドでディレクトリを作成します。
この場合、「/mnt/boot ディレクトリを作成する」 = 「パーティション内に /boot ディレクトリを作成する」 となります。

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

他に、/home などのパーティションを作成した場合は、同じようにそれらもマウントしておきます。
データ保存用のパーティションなどは、インストール時に使わないので、今はマウントしなくて構いません。
サーバーのミラーを選択
パッケージをダウンロードするためのサーバーのミラーを選択します。
Arch Linux 用のサーバーは各国ごとにいくつかミラーが存在しますが、デフォルトのままだとダウンロードが遅いので、日本のサーバーを選択します。

ミラーのリストは、/etc/pacman.d/mirrorlist のテキストファイルに保存されています。
このファイルを編集し、使いたいミラーの URL を先頭に持ってくることで、ミラーの優先度を変更できます。

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

# nano /etc/pacman.d/mirrorlist

起動すると、テキスト編集画面になるので、上下キーや PageUp/Down でスクロールして、日本のサーバーを探します。

検索機能を使うと、簡単に探せます。
Ctrl+W で検索できるので、Japan と入力して Enter で、日本のサーバーの行が検索できます。
Alt+W で次の位置を検索できます。

サーバーによっては、接続できない時があったり、速度が遅かったりする場合があるので、実際に使ってみて、自分の好きなサーバーを決めてください。

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

使うサーバーが決まったら、Alt+6 で、URL の行をコピーします。
PageUp でスクロールして先頭に戻り、Ctrl+U でコピーした行を貼り付けます。
(どの 「Server =」 よりも一番上に置くこと)

先頭のサーバーが接続できない場合、その次に記述されているサーバーが使われるので、サブのサーバーとして、他の日本サーバーを下に置いておくと良いでしょう。

編集が終わったら、Ctrl+X で終了します。
変更を保存するかどうか聞かれるので、y を入力します。
その後、保存ファイル名の指定になるので、そのまま Enter で上書きします。
インストール
必要なパッケージをダウンロードして、インストールします。

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

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

pacstrap は、Arch Linux のシステムをインストールするためのシェルスクリプトです。
このスクリプトで、Linux システムに必要なディレクトリを自動的に作成し、指定されたパッケージを pacman コマンドでインストールします。

第一引数の「/mnt」はインストール先のパスです。
それ以降は、インストールするパッケージ名です。

Arch Linux の動作に、最低限必要だと思われるものを指定してあります。

[!] 2019年10月6日より、base パッケージの構成が大幅に変更されました。
以前は base パッケージのみでも最低限の環境の構築はできましたが、今後はより細かくパッケージを指定する必要があります。
パッケージについて
linux、linux-firmware
linux」は、Linux カーネルです。
linux-firmware」は、様々なデバイスの Linux 用ドライバです。

Linux を動作させる上で、一番ベースとなるものです。
以前は base パッケージに含まれていましたが、明示的にインストールする必要があります。

base、base-devel
base」は、一番基本となるパッケージをまとめたものです。
一覧: https://www.archlinux.jp/packages/core/any/base/

base-devel」は、開発などで使うパッケージのグループです。
一覧: https://www.archlinux.jp/groups/x86_64/base-devel/

base-devel は、gcc (C コンパイラ) など、基本的に開発で使うパッケージが多いですが、入れておいた方が便利です。
sudo コマンドなど、開発とは関係なく、普段よく使うようなパッケージも含まれています。

logrotate
大量のログファイルを管理するコマンドです。
以前は base パッケージに含まれていました。

通常はあった方が良いので、インストールします。
インストールすれば、再起動後は自動的に動作します。

nano
インストール中にも使った、コンソール用テキストエディタです。
以前は base パッケージに含まれていました。

netctl、dhcpcd、wpa_supplicant
ネットワーク関連のパッケージです。
ご自身の環境で必要なものをインストールしてください。

とりあえずは、上記の3つがあれば、コマンドのみで有線/無線 LAN 接続できる環境が作れます。
(各設定は別途必要)

ほか
他にインストールしたいパッケージがある場合は、ここで指定して同時にインストールすることもできますが、後で pacman コマンドを使ってインストールすることもできます。

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

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

/etc/fstab のファイル内容を編集して、起動時に自動的にマウントするパーティションなどのファイルシステムを定義します。
ここで、最低限 Arch Linux 用のパーティションを指定しておかないと、Arch Linux の起動ができません。

インストールした Arch Linux 内のファイルを編集するので、対象のパスは /mnt/etc/fstab となります。

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

# lsblk --fs
genfstab コマンド
すべて手動で内容を書き込むこともできますが、genfstab コマンドを使うと、自動で現在マウントされているパーティションを検索して、適切な値を書き込むことができます。

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

-U オプションは、/dev/sda1 などの代わりに UUID を使ってパーティションを指定します。
どちらで指定しても構いませんが、HDD などの構成を頻繁に変えることがあるなら、UUID を使った方が良いです。
※ 設定後にパーティションのフォーマットを行うと UUID が変わるので、注意してください。
/dev/sda1 などで指定したい場合は、-U を取り除いてください。

>>」 は、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
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 用のパーティションが先に定義されます。
次に、UEFI ブート用のパーティションが定義されます。

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

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

今回の場合、sda3 のデータ用のパーティションはマウントしていないので、genfstab はそれらの情報を出力しません。
手動で追加するなら、以下のようになります。

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

マウントディレクトリは、/mnt/data としました。
自分で手動でマウントする場合、それ用のマウントディレクトリが必要になります。
名前は何でも良いのですが、今回はデータ用なので、data としました。

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

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

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

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

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

>> インストール (4)