ネット接続
ここから、実際にインストールの処理に入っていきますが、インストールするファイル(パッケージ)は、ネットからダウンロードする必要があるので、まずは、インストールシステム上でネットに接続する必要があります。
有線 LAN の場合は、起動時に自動で接続される場合がほとんどですが、接続に失敗した場合や、無線 LAN の場合は、手動で接続する必要があります。
有線 LAN の場合は、起動時に自動で接続される場合がほとんどですが、接続に失敗した場合や、無線 LAN の場合は、手動で接続する必要があります。
接続確認
ネットに接続されているかどうかを確認したい場合は、以下のコマンドを実行します。
実行中はずっと送受信が繰り返されるので、エラーがなければ、Ctrl+C を押して中断してください。
# ping archlinux.jp
実行中はずっと送受信が繰り返されるので、エラーがなければ、Ctrl+C を押して中断してください。
有線 LAN で接続
# ネットワーク設定 - ArchWiki
有線 LAN の場合、通常は自動で接続されていますが、接続に失敗していた場合は、手動で設定する必要があります。
失敗することはあまりないと思いますが、問題があった場合は、上のページで詳細を確認してください。
有線 LAN の場合、通常は自動で接続されていますが、接続に失敗していた場合は、手動で設定する必要があります。
失敗することはあまりないと思いますが、問題があった場合は、上のページで詳細を確認してください。
無線 LAN で接続
インストール作業用の Linux 上では、systemd-networkd + iwd で無線 LAN 接続する形になるので、iwctl コマンドを使って、アクセスポイントに接続します。
以前は、netctl に含まれる wifi-menu というコマンドがあって、ある程度簡単に接続できましたが、今は ISO 内に含まれていません。
無線 LAN については、以下に詳細をまとめました。
>> 無線 LAN 接続
以前は、netctl に含まれる wifi-menu というコマンドがあって、ある程度簡単に接続できましたが、今は ISO 内に含まれていません。
無線 LAN については、以下に詳細をまとめました。
>> 無線 LAN 接続
■ 無線 LAN インターフェイスの名前 (Name) を調べる # iwctl device list (通常は wlan0 です) ■ 周辺のルータを検索 # iwctl station wlan0 get-networks ~~~~~ (ルータのネットワーク名がわからない場合は、検索してください。 wlan0 の部分は、上記で表示されたデバイス名を指定します。) ■ 接続 # iwctl station wlan0 connect <network-name> ~~~~~ ~~~~~~~~~~~~~~ (ルータと接続します。 ルータのネットワーク名を指定してください。 Passphrase: で暗号化キーの入力を求められるので、入力してください。) ■ 接続状態の表示 # iwctl station wlan0 show ~~~~~
時間調整
ネットからパッケージをダウンロードする際、パソコンの時刻が正しくないと、ダウンロードできない場合があるので、ネットから時刻を調整します。
一度 Linux をインストールしていて、時刻が正しいのがわかっているのであれば、行わなくても構いません。
(Windows から乗り換える場合、時刻の記録基準が異なっているので、必ず実行してください)
timedatectl は、systemd に含まれるコマンドです。
systemd-timesyncd サービスを起動して、NTP で時刻を調整します。
# systemd-timesyncd - ArchWiki
一度 Linux をインストールしていて、時刻が正しいのがわかっているのであれば、行わなくても構いません。
(Windows から乗り換える場合、時刻の記録基準が異なっているので、必ず実行してください)
# timedatectl set-ntp true
timedatectl は、systemd に含まれるコマンドです。
systemd-timesyncd サービスを起動して、NTP で時刻を調整します。
# systemd-timesyncd - ArchWiki
パーティションのマウント
インストールを行う前に、まず、インストール先のパーティションをマウントします。
Linux 上では、パーティション内のファイルにアクセスする場合、まず、mount コマンドでマウントを行って、パーティションを任意のディレクトリに割り当てる必要があります。
この後の作業では、OS インストール先のパーティションに、ファイルをインストールしていく必要があるため、インストール先のパーティションを、現在起動している Linux 上の /mnt ディレクトリにマウントします。
※ /mnt は、一般的にマウント用として使われるディレクトリです。
マウントした後に、/mnt ディレクトリ以下のファイルを操作すると、マウントしたパーティション内のファイルを操作するのと同じことになります。
パーティションのデバイス名は、自分の環境用に置き換えてください。
今回の場合、sda1 を UEFI ブート用にしているので、sda2 が Arch Linux 用になります。
(現在、/mnt には Arch Linux 用のパーティションが割り当てられているので、OS パーティション内の /boot ディレクトリにマウントすることになります)
ただし、/mnt/boot ディレクトリは存在していないので、先に mkdir コマンドで、ディレクトリを作成します。
Linux システムに関係ないデータ用のパーティションなどは、インストール時には使わないので、今はマウントしなくても構いません。
Linux 上では、パーティション内のファイルにアクセスする場合、まず、mount コマンドでマウントを行って、パーティションを任意のディレクトリに割り当てる必要があります。
# mount <デバイス> <マウント先>
この後の作業では、OS インストール先のパーティションに、ファイルをインストールしていく必要があるため、インストール先のパーティションを、現在起動している Linux 上の /mnt ディレクトリにマウントします。
※ /mnt は、一般的にマウント用として使われるディレクトリです。
マウントした後に、/mnt ディレクトリ以下のファイルを操作すると、マウントしたパーティション内のファイルを操作するのと同じことになります。
マウント
Arch Linux 用パーティション
まずは、Arch Linux のインストール先となるパーティションを、/mnt にマウントします。パーティションのデバイス名は、自分の環境用に置き換えてください。
今回の場合、sda1 を UEFI ブート用にしているので、sda2 が Arch Linux 用になります。
# mount /dev/sda2 /mnt ~~~~
EFI システムパーティション
EFI システムパーティションがある場合、ブートローダーや Linux カーネルのファイルなどをそこにインストールする必要があるので、/mnt/boot にマウントします。(現在、/mnt には Arch Linux 用のパーティションが割り当てられているので、OS パーティション内の /boot ディレクトリにマウントすることになります)
ただし、/mnt/boot ディレクトリは存在していないので、先に mkdir コマンドで、ディレクトリを作成します。
# mkdir /mnt/boot # mount /dev/sda1 /mnt/boot ~~~~
他のパーティション
他に、/home や /var などに割り当てて使うパーティションを作成した場合は、それらも同じようにマウントしておきます。Linux システムに関係ないデータ用のパーティションなどは、インストール時には使わないので、今はマウントしなくても構いません。
サーバーのミラーを選択
パッケージをダウンロードするための、サーバーを選択します。
Arch Linux のリポジトリのサーバーは、各国ごとにいくつか存在します。
基本的に、自分がいる国のサーバーを使うのが一番速いので、日本のサーバーを選択します。
(そのままでも使えますが、速度は期待できません)
ミラーのリストは、/etc/pacman.d/mirrorlist のテキストファイルで設定するので、このファイルを編集することになります。
※ここでは、現在メモリ上に起動している、インストール用の Linux 上でのファイルを編集することになります。
mirrorlist ファイルの一番上に記述されている URL から順に接続され、接続に失敗すると、次の行の URL が接続されます。
行頭が '#' で、コメント行となります。
ファイルを直接編集するか、reflector コマンドを使って生成できます。
日本のミラーを、スコアの高い順に取得したい場合は、以下のコマンドを実行します。
日本のミラーのみを、スコアの高い順で、最大 10 個取得して、/etc/pacman.d/mirrorlist に保存します。
reflector コマンドは、Arch Linux のミラー の URL を取得するためのコマンド (Python スクリプト) です。
インストール ISO には含まれていますが、Arch Linux の基本システムには含まれていないので、インストール後に使いたい場合は、reflector パッケージをインストールしてください。
mirrorlist ファイルには、デフォルトで国ごとのミラーが記述されているので、日本 (Japan) の行を探して、Alt + 6 で必要な行をコピーし、Ctrl + U で先頭行に貼り付けます。
Ctrl + X で終了し、保存します。
jaist が一番安定していると思います。
# https://www.archlinux.jp/mirrors/status/
このページで、日本のサーバーの状態がわかるので、参考にしてください。
Arch Linux のリポジトリのサーバーは、各国ごとにいくつか存在します。
基本的に、自分がいる国のサーバーを使うのが一番速いので、日本のサーバーを選択します。
(そのままでも使えますが、速度は期待できません)
ミラーのリストは、/etc/pacman.d/mirrorlist のテキストファイルで設定するので、このファイルを編集することになります。
※ここでは、現在メモリ上に起動している、インストール用の Linux 上でのファイルを編集することになります。
mirrorlist ファイルの一番上に記述されている URL から順に接続され、接続に失敗すると、次の行の URL が接続されます。
行頭が '#' で、コメント行となります。
ファイルを直接編集するか、reflector コマンドを使って生成できます。
reflector コマンド
reflector コマンドを使うと、特定の条件で、ミラーの URL を取得することができます。日本のミラーを、スコアの高い順に取得したい場合は、以下のコマンドを実行します。
# reflector --sort rate --country jp --latest 10 --save /etc/pacman.d/mirrorlist
日本のミラーのみを、スコアの高い順で、最大 10 個取得して、/etc/pacman.d/mirrorlist に保存します。
reflector コマンドは、Arch Linux のミラー の URL を取得するためのコマンド (Python スクリプト) です。
インストール ISO には含まれていますが、Arch Linux の基本システムには含まれていないので、インストール後に使いたい場合は、reflector パッケージをインストールしてください。
テキストファイルの編集
テキストファイルを直接編集する場合は、nano コマンドなどを使います。# nano /etc/pacman.d/mirrorlist
mirrorlist ファイルには、デフォルトで国ごとのミラーが記述されているので、日本 (Japan) の行を探して、Alt + 6 で必要な行をコピーし、Ctrl + U で先頭行に貼り付けます。
Ctrl + X で終了し、保存します。
Alt + 6 | 現在行をコピー |
---|---|
Ctrl + U | コピーした行を貼り付け |
Ctrl + W | 検索 |
Alt + W | 次を検索 |
Ctrl + X | 終了。 ファイルを保存するか聞かれるので、保存するなら y を入力。 その後、保存するファイル名を指定します。変更がなければ Enter で決定します。 |
ミラーについて
サーバーによっては、たまに接続できない時があったり、速度が不安定な場合があるので、実際に使ってみて、好きなサーバーを決めてください。jaist が一番安定していると思います。
# https://www.archlinux.jp/mirrors/status/
このページで、日本のサーバーの状態がわかるので、参考にしてください。
パッケージのインストール
パッケージをインストールする準備が整ったので、実際に必要なものをインストールしていきます。
ここではとりあえず、Linux の最低限のシステム環境と、テキスト編集ができるだけのパッケージがあれば十分です。
それ以外のパッケージについては、(ネット接続さえ継続されていれば)それぞれ必要になった時に後から追加でインストールすることもできます。
必要なものがあらかじめわかっているなら、まとめてインストールしても構いません。
他には、各ファイルシステム用のパッケージもあります。
ここではとりあえず、Linux の最低限のシステム環境と、テキスト編集ができるだけのパッケージがあれば十分です。
それ以外のパッケージについては、(ネット接続さえ継続されていれば)それぞれ必要になった時に後から追加でインストールすることもできます。
必要なものがあらかじめわかっているなら、まとめてインストールしても構いません。
コマンド
以下は一例です。
base より後の部分は、任意のパッケージなので、必要に応じて変更してください。
主に必要になるパッケージの詳細は、後述しています。
base パッケージは常に必須です。
他に最低限必要なのは、Linux カーネル、ファームウェア、テキストエディタ (CUI) などです。
※ネットワーク接続関連のパッケージも必須にはなりますが、後から追加でインストールすることもできるので、後述します。必要なパッケージがわかっていれば、一緒にインストールしても構いません。
base より後の部分は、任意のパッケージなので、必要に応じて変更してください。
主に必要になるパッケージの詳細は、後述しています。
# pacstrap -i /mnt base linux linux-firmware nano sudo
base パッケージは常に必須です。
他に最低限必要なのは、Linux カーネル、ファームウェア、テキストエディタ (CUI) などです。
※ネットワーク接続関連のパッケージも必須にはなりますが、後から追加でインストールすることもできるので、後述します。必要なパッケージがわかっていれば、一緒にインストールしても構いません。
2019年10月6日より、base パッケージの構成が大幅に変更されました。
以前は base パッケージのみでも最低限の環境の構築はできましたが、今後はより細かくパッケージを指定していく必要があります。
>> base パッケージの違い
以前は base パッケージのみでも最低限の環境の構築はできましたが、今後はより細かくパッケージを指定していく必要があります。
>> base パッケージの違い
pacstrap コマンド (スクリプト)
pacstrap は、Arch Linux のシステムをインストールするためのシェルスクリプトです。
Linux システムに必要なディレクトリを作成し、指定されたパッケージを pacman コマンドでインストールします。
# https://github.com/archlinux/arch-install-scripts/blob/master/pacstrap.in
-i オプションは、インストール途中に表示される確認事項 (y/n の選択など) を有効にします。
このオプションがない場合は、すべてデフォルトの回答となり、すぐにインストールが開始します。
オプションを除く最初の引数の「/mnt」は、パッケージのインストール先です。
インストール先のパーティションは /mnt にマウントしてあるので、そのパスを指定します。
それ以降の引数では、インストールするパッケージ名を複数指定します。
また、現在のインストール用 Linux 上にある mirrorlist ファイルが、インストール先の mirrorlist にコピーされます。
そのため、ここで設定したミラー情報は、そのまま引き継がれます。
Linux システムに必要なディレクトリを作成し、指定されたパッケージを pacman コマンドでインストールします。
# https://github.com/archlinux/arch-install-scripts/blob/master/pacstrap.in
-i オプションは、インストール途中に表示される確認事項 (y/n の選択など) を有効にします。
このオプションがない場合は、すべてデフォルトの回答となり、すぐにインストールが開始します。
オプションを除く最初の引数の「/mnt」は、パッケージのインストール先です。
インストール先のパーティションは /mnt にマウントしてあるので、そのパスを指定します。
それ以降の引数では、インストールするパッケージ名を複数指定します。
また、現在のインストール用 Linux 上にある mirrorlist ファイルが、インストール先の mirrorlist にコピーされます。
そのため、ここで設定したミラー情報は、そのまま引き継がれます。
パッケージについて
base | Arch Linux の基本パッケージ。必須です。 https://www.archlinux.jp/packages/core/any/base/ |
---|---|
base-devel | 開発用として使われることが多いパッケージがまとめられています。 現在ではあまり使われなくなった古いツールも多いですが、必要であれば追加してください。 https://www.archlinux.jp/packages/core/any/base-devel/ |
linux | 通常の Linux カーネル。 カーネルがなければ、Linux は起動できません。 # カーネル - Arch Wiki カーネルのパッケージは他にも、長期サポート版の linux-lts や、linux-zen などがあります。 linux パッケージの代わりに、それらを使うことも出来ます。 |
linux-firmware | 無線 LAN やグラフィックボードなど、多くの製品の Linux 用ファームウェアが、まとめて含まれているパッケージです。 ファームウェアがないと動作しないデバイスなどがあるので、一般的にはインストールしておいてください。 自分の PC 環境で必要なファームウェアのファイルを、すべて自分で用意して、手動でインストールする場合は必要ありません。 |
nano | コンソール画面用のテキストエディタ。 とりあえず一番使いやすいと思うので、入れておいてください。 |
sudo | 一般ユーザーのままで、一時的に root 権限で実行したいときに使います。 使用頻度は高いですが、base には含まれていないので、別途インストールしてください。 |
man-db, man-pages | man コマンドを使って、コマンドのヘルプを表示したい場合は、インストールしてください。 man コマンドを使わない場合は、インストールしなくても構いません。 |
他には、各ファイルシステム用のパッケージもあります。
reiserfsprogs | Reiserfs |
---|---|
jfsutils | JFS |
xfsprogs | XFS |
pacstrap 実行後
pacstrap の実行後、まずはパッケージのダウンロードが行われ、その後、インストール処理が行われます。
終了するまで、しばらく待ってください。
ダウンロードが遅いと時間がかかりますが、インストール処理自体はそれほど時間はかかりません。
もしも、ミラーの接続状態が悪くて速度が遅い場合は、/etc/pacman.d/mirrorlist を編集して、他のミラーを使うようにしてください。
(上にある URL の行頭に # を挿入して、コメント化するなど)
インストールが終わったら、インストール先のシステム内の設定を行っていきます。
終了するまで、しばらく待ってください。
ダウンロードが遅いと時間がかかりますが、インストール処理自体はそれほど時間はかかりません。
もしも、ミラーの接続状態が悪くて速度が遅い場合は、/etc/pacman.d/mirrorlist を編集して、他のミラーを使うようにしてください。
(上にある URL の行頭に # を挿入して、コメント化するなど)
インストールが終わったら、インストール先のシステム内の設定を行っていきます。
fstab
# fstab - ArchWiki
起動時に自動的にマウントするパーティションなどの情報を、/etc/fstab のファイルに記述します。
※ここでは、インストール先の Arch Linux システム上のファイルを編集します。
そのため、編集するファイルのパスは /mnt/etc/fstab となります。
fstab には、最低でも1つ、Arch Linux OS 用のパーティションを指定しておかないと、Arch Linux の起動ができません。
なお、現在のパーティションやファイルシステムを確認したい場合は、以下のコマンドを使います。
起動時に自動的にマウントするパーティションなどの情報を、/etc/fstab のファイルに記述します。
※ここでは、インストール先の Arch Linux システム上のファイルを編集します。
そのため、編集するファイルのパスは /mnt/etc/fstab となります。
fstab には、最低でも1つ、Arch Linux OS 用のパーティションを指定しておかないと、Arch Linux の起動ができません。
なお、現在のパーティションやファイルシステムを確認したい場合は、以下のコマンドを使います。
## パーティションとファイルシステムの確認 # lsblk --fs ## PARTUUID の確認 # blkid
genfstab コマンド
ファイルを直接編集して記述することもできますが、genfstab コマンドを使うと、現在のマウント状態から、自動で必要な情報を生成することができます。
genfstab は、Arch Linux インストール用のスクリプトです。
https://github.com/archlinux/arch-install-scripts/blob/master/genfstab.in
「>>」 は、genfstab で出力された fstab の情報を、指定ファイルの末尾に追記します。
fstab ファイル内には、デフォルトで、コメントとして設定項目のヒントが書かれているので、その後に、出力された情報を追加させます。
物理的にディスクの接続順を変更することがないのであれば、/dev/... でも構いませんが、PC 構成が変わることがあるのであれば、UUID または PARTUUID を使った方が良いでしょう。
※ UUID は、フォーマットする度に値が変更されます。
※ PARTUUID は、GPT の場合のみ使えます。フォーマットしても、値が変化しません。
genfstab は、Arch Linux インストール用のスクリプトです。
https://github.com/archlinux/arch-install-scripts/blob/master/genfstab.in
# genfstab /mnt >> /mnt/etc/fstab
「>>」 は、genfstab で出力された fstab の情報を、指定ファイルの末尾に追記します。
fstab ファイル内には、デフォルトで、コメントとして設定項目のヒントが書かれているので、その後に、出力された情報を追加させます。
オプション
デフォルトでは、/dev/... でパーティションが指定されますが、実行時にオプションを指定すると、UUID または PARTUUID などで、パーティションを指定することができます。-U | UUID で指定 |
---|---|
-t <tag> | 使用する識別子の種類を指定。 tag = LABEL, UUID, PARTLABEL, PARTUUID |
物理的にディスクの接続順を変更することがないのであれば、/dev/... でも構いませんが、PC 構成が変わることがあるのであれば、UUID または PARTUUID を使った方が良いでしょう。
※ UUID は、フォーマットする度に値が変更されます。
※ PARTUUID は、GPT の場合のみ使えます。フォーマットしても、値が変化しません。
確認
fstab ファイルの内容を、テキストエディタで確認してみます。
Ctrl+X で終了します。
今回の場合、sda1 が UEFI ブート用、sda2 が Arch Linux 用なので、以下のようになります。
まずは、Arch Linux OS 用のパーティションが先に定義されます。
次に、EFI システムパーティションが定義されます。
(なぜなら、"/boot" の前に、ルートである "/" のパーティションが必要だからです)
各行の項目は、空白で区切って、それぞれ、「パーティションのデバイス名」「マウント先のディレクトリ名」「ファイルシステム」「マウントオプション」「dump (dump コマンドでバックアップを行うか)」「pass (fsck のチェックをするか)」となっています。
基本的に、genfstab で出力された情報を、そのまま使えば問題ありません。
Ctrl+X で終了します。
# nano /mnt/etc/fstab
今回の場合、sda1 が UEFI ブート用、sda2 が Arch Linux 用なので、以下のようになります。
/dev/sda2 / ext4 rw,relatime 0 1 /dev/sda1 /boot vfat rw,relatime,fmask=0022,... 0 2
まずは、Arch Linux OS 用のパーティションが先に定義されます。
次に、EFI システムパーティションが定義されます。
(なぜなら、"/boot" の前に、ルートである "/" のパーティションが必要だからです)
各行の項目は、空白で区切って、それぞれ、「パーティションのデバイス名」「マウント先のディレクトリ名」「ファイルシステム」「マウントオプション」「dump (dump コマンドでバックアップを行うか)」「pass (fsck のチェックをするか)」となっています。
基本的に、genfstab で出力された情報を、そのまま使えば問題ありません。
ファイルシステムの追加
自動マウントさせるファイルシステムを追加したい場合は、その情報を追記してください。
今回の場合、データ用として作ったパーティション sda3 はまだマウントしていないので、genfstab はそれらの情報を出力しません。
手動で追加するなら、以下のようになります。
マウントディレクトリは、/mnt/data としました。
/mnt 以下の名前は何でも良いのですが、今回はデータ用なので、data としました。
なお、/mnt/data ディレクトリが存在しない場合は、自動で作成されるので、あらかじめ手動でディレクトリを作る必要はありません。
ファイルシステムは ext4 で、オプションは Arch Linux OS 用のパーティションと同じです。
dump は基本的に 0 にしておきます。
これは、fsck コマンドでの、ファイルシステムのエラーなどのチェックを行うかどうかの値です。
※ btrfs の場合、pass はすべて 0 にする必要があります。
基本的に、Linux システム用のパーティションのみ 1、それ以外は 2、チェックを行う必要がなければ 0 とします。
今回の場合、データ用として作ったパーティション sda3 はまだマウントしていないので、genfstab はそれらの情報を出力しません。
手動で追加するなら、以下のようになります。
/dev/sda3 /mnt/data ext4 rw,relatime 0 2
マウントディレクトリは、/mnt/data としました。
/mnt 以下の名前は何でも良いのですが、今回はデータ用なので、data としました。
なお、/mnt/data ディレクトリが存在しない場合は、自動で作成されるので、あらかじめ手動でディレクトリを作る必要はありません。
ファイルシステムは ext4 で、オプションは Arch Linux OS 用のパーティションと同じです。
dump は基本的に 0 にしておきます。
pass の値
pass の項目は、Arch Linux OS 用では 1 でしたが、データ用では 2 にしています。これは、fsck コマンドでの、ファイルシステムのエラーなどのチェックを行うかどうかの値です。
0 | チェックを行わない。スワップパーティションなどで指定する。 |
---|---|
1 | 一番最初にチェックを行う。Linux システムのルート (/) で指定する。 |
2 | 1 のファイルシステムをチェックした後に、チェックを行う。 データ用など、Linux ルート以外のパーティションで指定する。 |
※ btrfs の場合、pass はすべて 0 にする必要があります。
基本的に、Linux システム用のパーティションのみ 1、それ以外は 2、チェックを行う必要がなければ 0 とします。
次へ