インストールしたシステム内に入る
今までは、メモリ上に起動した Linux システム上でコマンドなどを実行してきましたが、ここからは、インストールした Arch Linux システム内に入って、設定を行っていきます。
以下のコマンドで、Linux のルートを切り替えて、インストール先の Arch Linux へと移ります。
arch-chroot は、Arch Linux インストール用のスクリプトです。
なお、インストール先の Arch Linux から抜けて、元のインストール作業用の Linux に戻りたい場合は、exit コマンドを実行します。
その後作業をして、また戻ってくる場合は、再び arch-chroot を実行してください。
以下のコマンドで、Linux のルートを切り替えて、インストール先の Arch Linux へと移ります。
# arch-chroot /mnt
arch-chroot は、Arch Linux インストール用のスクリプトです。
なお、インストール先の Arch Linux から抜けて、元のインストール作業用の Linux に戻りたい場合は、exit コマンドを実行します。
その後作業をして、また戻ってくる場合は、再び arch-chroot を実行してください。
注意点
ここから先、実行するコマンドは、実際にインストールした Arch Linux 上にあるコマンドが使われます。
そのため、ルートを切り替えた後は、インストールメディア内にあるコマンドは使えないので、注意してください。
ただし、ネットの接続は継続されているので、パッケージのインストールは行えます。
そのため、ルートを切り替えた後は、インストールメディア内にあるコマンドは使えないので、注意してください。
ただし、ネットの接続は継続されているので、パッケージのインストールは行えます。
パッケージのインストール
途中で、追加で必要になるパッケージがあった場合は、pacman コマンドでインストールしてください。
-S オプションで、指定パッケージをインストールします。
-S オプションで、指定パッケージをインストールします。
## パッケージのインストール # pacman -S <package...> ## パッケージの検索 # pacman -Ss <name>
テキストの編集
テキストファイルの編集を行う必要がある場合、nano コマンドなど、インストール先の Arch Linux にインストールされているテキストエディタを使ってください。
pacstrap 時に、テキストエディタをインストールしていなかった場合は、# pacman -S nano でインストールしてください。
pacstrap 時に、テキストエディタをインストールしていなかった場合は、# pacman -S nano でインストールしてください。
タイムゾーン
時刻を、各地域ごとの時間に合わせるために、タイムゾーンを設定します。
日本の場合は、東京に合わせるので、以下のようになります。
成功した場合は、何も表示されません。
ln コマンドで、/etc/localtime にシンボリックリンクを作成し、/usr/share/zoneinfo/Asia/Tokyo にリンクさせています。
Linux は、/etc/localtime のファイルを読み込んで、タイムゾーンを設定します。
各地域ごとの設定ファイル (バイナリファイル) は、/usr/share/zoneinfo ディレクトリ以下にあります。
ここから任意のファイルを選びます。
/etc/localtime のシンボリックリンクにアクセスすると、/usr/share/zoneinfo/Asia/Tokyo にアクセスするのと同じことになります。
-sf は、-s と -f オプションを同時に指定しています。
-s は、シンボリックリンクを作成します。
-f は、すでに対象のファイルが存在する場合、削除します。
日本の場合は、東京に合わせるので、以下のようになります。
成功した場合は、何も表示されません。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ln コマンドで、/etc/localtime にシンボリックリンクを作成し、/usr/share/zoneinfo/Asia/Tokyo にリンクさせています。
Linux は、/etc/localtime のファイルを読み込んで、タイムゾーンを設定します。
各地域ごとの設定ファイル (バイナリファイル) は、/usr/share/zoneinfo ディレクトリ以下にあります。
ここから任意のファイルを選びます。
/etc/localtime のシンボリックリンクにアクセスすると、/usr/share/zoneinfo/Asia/Tokyo にアクセスするのと同じことになります。
-sf は、-s と -f オプションを同時に指定しています。
-s は、シンボリックリンクを作成します。
-f は、すでに対象のファイルが存在する場合、削除します。
ハードウェアクロック
現在の時間を、ハードウェア (マザーボード内の内部時計) に書き込みます。
※すでに正しく書き込まれているのがわかっている場合は、実行しなくても構いません。
ネットを接続した後に時刻合わせを行いましたが、あれは、インストール作業用の Linux システム上における時刻を設定したに過ぎません。
再起動すると、その時刻は破棄されて、再びマザーボードの内部時計から時刻が読み込まれてしまいます。
再起動しても時刻が正しくなるように、現在の Linux 上での時刻を、マザーボードの内部時計に書き込みます。
書き込みには、hwclock コマンドを使います。
-w, --systohc で、Linux 上での時刻を、ハードウェアに書き込みます。
-u, --utc で、時刻に UTC (協定世界時) を使います。
# 時刻 - ArchWiki
※すでに正しく書き込まれているのがわかっている場合は、実行しなくても構いません。
ネットを接続した後に時刻合わせを行いましたが、あれは、インストール作業用の Linux システム上における時刻を設定したに過ぎません。
再起動すると、その時刻は破棄されて、再びマザーボードの内部時計から時刻が読み込まれてしまいます。
再起動しても時刻が正しくなるように、現在の Linux 上での時刻を、マザーボードの内部時計に書き込みます。
書き込みには、hwclock コマンドを使います。
# hwclock --systohc --utc
-w, --systohc で、Linux 上での時刻を、ハードウェアに書き込みます。
-u, --utc で、時刻に UTC (協定世界時) を使います。
Windows の場合、UTC ではなく地域ごとのローカルタイムを使うので、Windows と Linux をデュアルブートする場合は、時刻が狂います。
Windows で UTC を使うためには、手順が必要なので、以下を参照してください。
Windows で UTC を使うためには、手順が必要なので、以下を参照してください。
# 時刻 - ArchWiki
ロケール
# ロケール - ArchWiki
Linux 上で使用する言語を設定します。
日本の場合は ja_JP (日本語) を使いますが、デフォルトとして en_US (英語) も必須となるので、それも指定します。
Linux 上で使用する言語を設定します。
日本の場合は ja_JP (日本語) を使いますが、デフォルトとして en_US (英語) も必須となるので、それも指定します。
locale.gen 編集
まずは、/etc/locale.gen ファイルを編集し、使う言語の、先頭の # を削除して、使用する言語を複数選択します。
言語名のアルファベット順に並んでいるので、まずは 「#en_US.UTF-8 UTF-8」 の行を探します。
見つけたら、その行の先頭の # を削除します。
次に、「#ja_JP.UTF-8 UTF-8」 を見つけて、同じように # を削除します。
結果的には、行頭が # のコメント行を除いて、以下のようになっていれば OK です。
日本語では、他に 「ja_JP.EUC-JP EUC-JP」 がありますが、そちらは文字コードに EUC-JP を使います。
今は Linux 上では UTF-8 を使うのが一般的なので、UTF-8 の方を使います。
終わったら、Ctrl+X → y → Enter で、上書き保存します。
$ nano /etc/locale.gen
言語名のアルファベット順に並んでいるので、まずは 「#en_US.UTF-8 UTF-8」 の行を探します。
見つけたら、その行の先頭の # を削除します。
次に、「#ja_JP.UTF-8 UTF-8」 を見つけて、同じように # を削除します。
結果的には、行頭が # のコメント行を除いて、以下のようになっていれば OK です。
en_US.UTF-8 UTF-8 ja_JP.UTF-8 UTF-8
日本語では、他に 「ja_JP.EUC-JP EUC-JP」 がありますが、そちらは文字コードに EUC-JP を使います。
今は Linux 上では UTF-8 を使うのが一般的なので、UTF-8 の方を使います。
終わったら、Ctrl+X → y → Enter で、上書き保存します。
locale-gen
次に、/etc/locale.gen の内容を元に、locale-gen コマンドで、各言語のロケールを生成します。
各ロケールが生成されたのがわかります。
# locale-gen
Generating locales... es_US.UTF-8... done ja_JP.UTF-8... done Generation complete.
各ロケールが生成されたのがわかります。
locale.conf
次に、/etc/locale.conf ファイルを作成して、デフォルトのロケールを指定します。
nano コマンドを使ってもいいのですが、下のコマンドで、ファイルの作成と書き込みを行うことができます。
echo コマンドで、「LANG=en_US.UTF-8」 を標準出力に出力し、「>」 で、出力された内容を指定ファイル (/etc/locale.conf) に新規作成して書き込みます。
結果的に、/etc/locale.conf の中身が以下のようになっていれば問題ありません。
※現段階ではまだ、ロケールを日本語にしないでください。
/usr/share/kbd/consolefonts
ここには日本語用のフォントがないので、日本語は表示できません。
そのため、この段階でデフォルトを日本語にしてしまうと、出力された日本語の文字列が文字化けしてしまって読めないので、コンソール環境上では、英語で作業をしていく必要があります。
GUI 環境を構築した後は、「LANG=ja_JP.UTF-8」 にして、日本語に設定します。
nano コマンドを使ってもいいのですが、下のコマンドで、ファイルの作成と書き込みを行うことができます。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
echo コマンドで、「LANG=en_US.UTF-8」 を標準出力に出力し、「>」 で、出力された内容を指定ファイル (/etc/locale.conf) に新規作成して書き込みます。
結果的に、/etc/locale.conf の中身が以下のようになっていれば問題ありません。
LANG=en_US.UTF-8
※現段階ではまだ、ロケールを日本語にしないでください。
日本語について
純粋なコンソール画面上では、ビットマップフォントを使って文字を表示しています。/usr/share/kbd/consolefonts
ここには日本語用のフォントがないので、日本語は表示できません。
そのため、この段階でデフォルトを日本語にしてしまうと、出力された日本語の文字列が文字化けしてしまって読めないので、コンソール環境上では、英語で作業をしていく必要があります。
GUI 環境を構築した後は、「LANG=ja_JP.UTF-8」 にして、日本語に設定します。
キーマップ
インストールした Arch Linux 上でのコンソールにおけるキーボード配列は、デフォルトで英語用となっているので、設定ファイルで、キーボード配列を指定します。
/etc/vconsole.conf ファイルに、「KEYMAP=jp106」 の内容を書き込みます。
これで、起動時に毎回 jp106 が使われることになります。
※ GUI 環境においては、別途キーボード設定が必要になります。ここでは、純粋なコンソール画面でのキーボード配列の設定です。
# echo KEYMAP=jp106 > /etc/vconsole.conf
/etc/vconsole.conf ファイルに、「KEYMAP=jp106」 の内容を書き込みます。
これで、起動時に毎回 jp106 が使われることになります。
※ GUI 環境においては、別途キーボード設定が必要になります。ここでは、純粋なコンソール画面でのキーボード配列の設定です。
ホスト名
自分のパソコンのホスト名 (ネットワーク上で各マシンを識別するための名前) を決めて、設定します。
基本的に自分のネットワークでしか使わないので、名前は適当で構いません。
今回の場合は、仮に arch とします。
/etc/hostname ファイルに、テキストでホスト名だけを記述してください。
基本的に自分のネットワークでしか使わないので、名前は適当で構いません。
今回の場合は、仮に arch とします。
/etc/hostname ファイルに、テキストでホスト名だけを記述してください。
# echo arch > /etc/hostname
ネットワーク設定
現在のインストール作業の Linux 上では、ネットワークに接続されていますが、インストール先の Arch Linux 上では、ネットワークの設定を行っていないので、別途設定する必要があります。
ネットワークの接続には、複数の方法があり、自分で好きなものを選ぶことができます。
必要なパッケージや設定方法は、それぞれで異なるので、以下のページを参考にしてください。
>> ネットワーク設定
※作業用の Linux 上で、すでにネットワークには接続されているので、ここでは # systemctl start ... など、実際に接続を実行する必要はありません。
ネットワークの接続には、複数の方法があり、自分で好きなものを選ぶことができます。
必要なパッケージや設定方法は、それぞれで異なるので、以下のページを参考にしてください。
>> ネットワーク設定
※作業用の Linux 上で、すでにネットワークには接続されているので、ここでは # systemctl start ... など、実際に接続を実行する必要はありません。
設定ファイルを作成したり、サービスを有効にするだけの場合は、この段階ですべて設定して、起動時に自動で接続することができますが、iwd など、一部の接続方法では、ここで設定せずに、インストール先の Arch Linux を起動してから設定した方が良い箇所があります。
ただし、その場合、必要になるパッケージだけは、必ずここでインストールしておいてください。(特に無線 LAN 関連)
インストール先の Arch Linux は、もちろんネットに接続されていない状態なので、その環境ではパッケージのダウンロードができません。
ただし、その場合、必要になるパッケージだけは、必ずここでインストールしておいてください。(特に無線 LAN 関連)
インストール先の Arch Linux は、もちろんネットに接続されていない状態なので、その環境ではパッケージのダウンロードができません。
有線 LAN の場合
有線 LAN の場合は、dhcpcd を使うのが一番簡単です。
有線 LAN のインターフェイス名を確認する必要があるので、# ip link または # networkctl で確認してください。
enp* が、有線 LAN です。
DNS サーバーの IP アドレスを設定するため、/etc/resolv.conf を、/run/systemd/resolve/resolv.conf のリンクファイルとして作成する必要がありますが、この段階でリンクするには、一度 arch-chroot を抜けなければならないので、インストール先を起動した後に設定します。
有線 LAN のインターフェイス名を確認する必要があるので、# ip link または # networkctl で確認してください。
enp* が、有線 LAN です。
dhcpcd の場合
## インストール # pacman -S dhcpcd ## 起動時に有効にする (@ 以降は、インターフェイス名を指定) # systemctl enable dhcpcd@enp0s3 ~~~~~~
systemd-networkd の場合
## 起動時に有効にする # systemctl enable systemd-networkd systemd-resolved ## ネットワーク設定の作成 # nano /etc/systemd/network/eth.network ------ [Match] Name=<interface> [Network] DHCP=ipv4 ------ * <interface> の部分はインターフェイス名に置き換え
DNS サーバーの IP アドレスを設定するため、/etc/resolv.conf を、/run/systemd/resolve/resolv.conf のリンクファイルとして作成する必要がありますが、この段階でリンクするには、一度 arch-chroot を抜けなければならないので、インストール先を起動した後に設定します。
無線 LAN の場合
無線 LAN の場合は、「netctl + wpa_supplicant」「iwd 単体」「systemd-networkd + iwd」のいずれかを使うと良いです。
一番手順が少ないのは、netctl です。
※実際の接続設定は、インストール先を起動した後に行います。
一番手順が少ないのは、netctl です。
iwd 単体の場合
## インストール # pacman -S iwd ## 起動時に有効にする # systemctl enable iwd ## /etc/resolv.conf (DNS) を手動で設定しない場合 # systemctl enable systemd-resolved ## 設定ファイルの編集 # mkdir /etc/iwd # nano /etc/iwd/main.conf --------- ## 内蔵ネットワーク設定有効 [General] EnableNetworkConfiguration=true ---------
※実際の接続設定は、インストール先を起動した後に行います。
netctl の場合
## インストール # pacman -S netctl openresolv dhcpcd wpa_supplicant ## サンプルプロファイルをコピー (WPA:DHCP) # cp /etc/netctl/exsamples/wireless-wpa /etc/netctl/wireless ## 無線 LAN インターフェイス名の確認 (wlp〜) # ip link ## プロファイル編集 # nano /etc/netctl/wireless - "Interface" に wlp〜 - "ESSID" にルータのネットワーク名 - "Key" に暗号化キー ## 起動時に指定プロファイルで接続 # netctl enable wireless
systemd-resolved の注意点
systemd-resolved を使って DNS を管理する場合、以下のように /etc/resolv.conf をリンクファイルとして作成する必要がありますが、arch-chroot を行った後の場合、以下のコマンドでは正しく設定できません。
というのも、arch-chroot のスクリプト内容 を見ればわかりますが、この中で、/etc/resolv.conf が /mnt/etc/resolv.conf としてバインドマウント(特定のファイルを別のパスにマウント)されるような形になっています。
つまり、arch-chroot 後に /etc/resolv.conf のパスを使った場合、実質的なパスは /mnt/etc/resolv.conf となりますが、それがバインドマウントされているので、結果として、インストール作業 Linux のメモリ上にある /etc/resolv.conf となります。
なぜこれが必要かというと、インストール作業上の Linux でネット接続を継続するために、DNS サーバーの IP アドレスを、作業用 Linux 上で設定された /etc/resolv.conf から取得する必要があるからです。
arch-chroot 後に /etc/resolv.conf をリンクファイルとして作成するということは、作業用 Linux 上の /etc/resolv.conf がリンクファイルとして作成されるということなので、意味がありません。
よって、arch-chroot の前に実行するか、exit で arch-chroot を抜けてから実行するか、実際のインストール先を起動してから実行するかしてください。
arch-chroot 外でリンクファイルを作成する場合は、以下のようにします。
# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
というのも、arch-chroot のスクリプト内容 を見ればわかりますが、この中で、/etc/resolv.conf が /mnt/etc/resolv.conf としてバインドマウント(特定のファイルを別のパスにマウント)されるような形になっています。
つまり、arch-chroot 後に /etc/resolv.conf のパスを使った場合、実質的なパスは /mnt/etc/resolv.conf となりますが、それがバインドマウントされているので、結果として、インストール作業 Linux のメモリ上にある /etc/resolv.conf となります。
なぜこれが必要かというと、インストール作業上の Linux でネット接続を継続するために、DNS サーバーの IP アドレスを、作業用 Linux 上で設定された /etc/resolv.conf から取得する必要があるからです。
arch-chroot 後に /etc/resolv.conf をリンクファイルとして作成するということは、作業用 Linux 上の /etc/resolv.conf がリンクファイルとして作成されるということなので、意味がありません。
よって、arch-chroot の前に実行するか、exit で arch-chroot を抜けてから実行するか、実際のインストール先を起動してから実行するかしてください。
arch-chroot 外でリンクファイルを作成する場合は、以下のようにします。
# ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf
パスワード設定
root (管理者権限) のパスワードを設定します。
New password でパスワードの入力を求められるので、入力して Enter を押します。
次に、Retype new password で、確認のために再入力を求められるので、同じ文字を入力します。
パスワードが2つとも同じなら、設定に成功します。
# passwd
New password でパスワードの入力を求められるので、入力して Enter を押します。
次に、Retype new password で、確認のために再入力を求められるので、同じ文字を入力します。
パスワードが2つとも同じなら、設定に成功します。
Linux のコマンドライン上では、基本的にパスワードの入力文字は、一切表示されません。
入力しても何も表示されませんが、内部ではちゃんと処理されているので、問題ありません。
入力を間違えたかもしれないという時は、複数回 BackSpace キーで文字を削除するか、Ctrl+U でカーソルより前の文字を削除できます。
入力しても何も表示されませんが、内部ではちゃんと処理されているので、問題ありません。
入力を間違えたかもしれないという時は、複数回 BackSpace キーで文字を削除するか、Ctrl+U でカーソルより前の文字を削除できます。
マイクロコード
次のブートローダの設定をする時に必要になるので、先にマイクロコードの説明をします。
# マイクロコード - ArchWiki
「マイクロコード」は、CPU のファームウェアです。
脆弱性の対応など、CPU 動作に関する修正があった時に更新されます。
Arch Linux には、Intel/AMD CPU 用のパッケージがあるので、マイクロコードは常に更新した方が良いでしょう。
両方とも、パッケージをインストールすると、/boot にイメージファイルがインストールされます。
ただし、パッケージをインストールしただけでは、マイクロコードは更新されません。
Linux の起動前に更新処理をする必要があるので、ブートローダ上で、マイクロコードのイメージを実行するように設定する必要があります。
各ブートローダによって設定方法は異なるので、それぞれの解説を見てください。
# マイクロコード - ArchWiki
「マイクロコード」は、CPU のファームウェアです。
脆弱性の対応など、CPU 動作に関する修正があった時に更新されます。
Arch Linux には、Intel/AMD CPU 用のパッケージがあるので、マイクロコードは常に更新した方が良いでしょう。
メーカー | パッケージ名 | ファイル名 |
---|---|---|
Intel | intel-ucode | /boot/intel-ucode.img |
AMD | amd-ucode | /boot/amd-ucode.img |
両方とも、パッケージをインストールすると、/boot にイメージファイルがインストールされます。
ただし、パッケージをインストールしただけでは、マイクロコードは更新されません。
Linux の起動前に更新処理をする必要があるので、ブートローダ上で、マイクロコードのイメージを実行するように設定する必要があります。
各ブートローダによって設定方法は異なるので、それぞれの解説を見てください。
ブートローダー
# ブートローダー
OS を起動するための、ブートローダーの設定を行います。
Linux で使えるブートローダーにはいくつか種類があり、好きなものを使うことができますが、BIOS/UEFI・MBR/GPT・ファイルシステムなど、ブートローダーによって対応しているものが異なるので、環境に合わせて選んでください。
ここでは GRUB を紹介していますが、他に systemd-boot などがあります。
他のブートローダなどについては、ブートローダ で解説しています。
成功した場合、エラーがない旨のメッセージが出ます。
/boot/grub 以下に GRUB のファイル、/boot/EFI/arch_grub に EFI ブートファイルが作成されます。
そのため、一応 GRUB 用の *.efi ファイルをコピーして、作成しておきます。
arch_grub の部分は、--bootloader-id で指定した名前に置き換えてください。
日本語にするためには、現在の Linux の言語設定を日本語にする必要があるので、grub.cfg を生成する前に、LANG 環境変数を設定して、日本語にしておくと良いです。
英語に戻す場合は、en_US.UTF-8 に設定してください。
grub-mkconfig コマンドを使うと、現在の Linux システム(今回の場合、新規インストールした Arch Linux)については、自動で設定を書き込んでくれるので、通常はそのファイルをそのまま使えば問題ありません。
ただし、他に起動したい OS がある場合や、起動設定を変えたい場合などは、手動で編集する必要があります。
複数の OS をインストールしている場合は、これを使うと便利です。
書き込み対象のディスクを指定する必要があるので、以下のコマンドの /dev/sda は自分の環境のデバイス名に置き換えください。
※この時、/dev/sda1 のように、パーティションを指定しないでください。ディスク自体の MBR 領域に対して書き込みを行います。
UEFI の場合と同じように、ブート用ファイルのインストールと、設定ファイルの生成を行います。
--target が i386-pc なので、32bit OS 用のような印象を受けますが、64bit の場合でも同じなので、気にしなくて構いません。
OS を起動するための、ブートローダーの設定を行います。
Linux で使えるブートローダーにはいくつか種類があり、好きなものを使うことができますが、BIOS/UEFI・MBR/GPT・ファイルシステムなど、ブートローダーによって対応しているものが異なるので、環境に合わせて選んでください。
ここでは GRUB を紹介していますが、他に systemd-boot などがあります。
他のブートローダなどについては、ブートローダ で解説しています。
GRUB について
# GRUB - ArchWiki
GRUB は、BIOS/UEFI 両方に対応している、一番多機能なブートローダーです。
あまり細かいことを考えずに設定できるので、一般的にはこちらを使ってください。
BIOS/UEFI や MBR/GPT によって設定方法が異なるため、それぞれで GRUB の設定方法を解説しています。
エラーなどが出た場合は、上記のページに対策が書かれているので、参考にしてください。
GRUB は、BIOS/UEFI 両方に対応している、一番多機能なブートローダーです。
あまり細かいことを考えずに設定できるので、一般的にはこちらを使ってください。
BIOS/UEFI や MBR/GPT によって設定方法が異なるため、それぞれで GRUB の設定方法を解説しています。
エラーなどが出た場合は、上記のページに対策が書かれているので、参考にしてください。
マイクロコード
マイクロコードのパッケージ intel-ucode, amd-ucode をあらかじめインストールしておくと、grub-mkconfig 時に、GRUB が自動でその処理を設定してくれるので、先にインストールしておいてください。
grub-mkconfig の後にマイクロコードをインストールした場合は、再度 grub-mkconfig を実行して、GRUB の設定ファイルを再作成してください。
grub-mkconfig の後にマイクロコードをインストールした場合は、再度 grub-mkconfig を実行して、GRUB の設定ファイルを再作成してください。
GRUB (UEFI-GPT 64bit の場合)
## インストール # pacman -S grub efibootmgr
GRUB のファイルをインストール
ブートするために必要なファイルを、インストールします。# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub
成功した場合、エラーがない旨のメッセージが出ます。
/boot/grub 以下に GRUB のファイル、/boot/EFI/arch_grub に EFI ブートファイルが作成されます。
--target | x86_64-efi で、UEFI (64bit) 用のファイルを作成します。 |
---|---|
--efi-directory | EFI システムパーティションをマウントしたディレクトリを指定します。 ファイルをインストールする場所になります。 今回の場合、EFI システムパーティションは /dev/sda1 で、fstab ファイルによって、/dev/sda1 を /boot にマウントするように設定してあるので、/boot となります。 |
--bootloader-id | 作成するブートローダー名を、任意の名前で指定します。 /boot/EFI ディレクトリ内に、指定した名前のディレクトリが作成され、その中に、GRUB 用の EFI ブートファイル grubx64.efi が作成されます。 同じディスクに複数の OS をインストールする場合、各 OS のブートローダーごとに /boot/EFI 内にディレクトリが作成されることになるので、他の OS と重複しないように名前を付けてください。 今回の場合は、Arch Linux 用の GRUB なので、arch_grub としました。 |
.efi のコピー
UEFI のファームウェアによっては、/boot/EFI/boot 内に bootx64.efi という名前で、デフォルトの efi ファイルが必要な場合があります。そのため、一応 GRUB 用の *.efi ファイルをコピーして、作成しておきます。
# mkdir /boot/EFI/boot # cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi ~~~~~~~~~
arch_grub の部分は、--bootloader-id で指定した名前に置き換えてください。
日本語対応
現在の GRUB には、日本語のビットマップフォントが含まれているので、メニュー画面で日本語を表示することができます。日本語にするためには、現在の Linux の言語設定を日本語にする必要があるので、grub.cfg を生成する前に、LANG 環境変数を設定して、日本語にしておくと良いです。
英語に戻す場合は、en_US.UTF-8 に設定してください。
# export LANG=ja_JP.UTF-8
grub.cfg の生成
起動情報などが書かれた設定ファイルを、自動で生成します。# grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig コマンドを使うと、現在の Linux システム(今回の場合、新規インストールした Arch Linux)については、自動で設定を書き込んでくれるので、通常はそのファイルをそのまま使えば問題ありません。
ただし、他に起動したい OS がある場合や、起動設定を変えたい場合などは、手動で編集する必要があります。
GRUB (BIOS-MBR の場合)
パッケージのインストール
BIOS の場合、os-prober パッケージをインストールしておくと、grub-mkconfig 実行時に、他のパーティションにインストールされている OS を自動で検出して設定してくれます。複数の OS をインストールしている場合は、これを使うと便利です。
# pacman -S grub
インストール
BIOS の場合は、ディスクの MBR ブートコード領域にインストールします。書き込み対象のディスクを指定する必要があるので、以下のコマンドの /dev/sda は自分の環境のデバイス名に置き換えください。
※この時、/dev/sda1 のように、パーティションを指定しないでください。ディスク自体の MBR 領域に対して書き込みを行います。
# grub-install --target=i386-pc /dev/sda ~~~ # grub-mkconfig -o /boot/grub/grub.cfg
UEFI の場合と同じように、ブート用ファイルのインストールと、設定ファイルの生成を行います。
--target が i386-pc なので、32bit OS 用のような印象を受けますが、64bit の場合でも同じなので、気にしなくて構いません。
再起動
これで、インストール先の Arch Linux を起動させる準備ができました。
この段階で、インストールメディアは必要なくなります。
以降は、実際にインストールした Arch Linux を起動して、細かい設定を行っていきます。
exit コマンドでログアウトして、インストールメディアの環境に戻ります。
umount コマンドで、マウントしたパーティションをすべてアンマウントして、Linux から切り離します。
reboot コマンドを実行すると、再起動が行われます。
再起動したら、インストールメディアを取り外します。
起動に問題がなければ、ブートローダのメニューが出て、OS 選択になるので、Arch Linux を選択して Enter を押してください。
Arch Linux が起動すると、コンソール画面になり、ログインが求められます。
この段階では、まだ GUI 環境を何もインストールしていないので、引き続き、コマンドライン上で作業をしていきます。
>> インストール (5)
この段階で、インストールメディアは必要なくなります。
以降は、実際にインストールした Arch Linux を起動して、細かい設定を行っていきます。
# exit # umount -R /mnt # reboot
exit コマンドでログアウトして、インストールメディアの環境に戻ります。
umount コマンドで、マウントしたパーティションをすべてアンマウントして、Linux から切り離します。
reboot コマンドを実行すると、再起動が行われます。
再起動したら、インストールメディアを取り外します。
起動に問題がなければ、ブートローダのメニューが出て、OS 選択になるので、Arch Linux を選択して Enter を押してください。
Arch Linux が起動すると、コンソール画面になり、ログインが求められます。
起動後、しばらくしてもなかなか次の画面に移らない場合は、ネット接続に時間が掛かっているか、接続に失敗して、タイムアウト時間まで待っている可能性があります。
デフォルトでは、90 秒待てば次の画面に移ります。
デフォルトでは、90 秒待てば次の画面に移ります。
この段階では、まだ GUI 環境を何もインストールしていないので、引き続き、コマンドライン上で作業をしていきます。
>> インストール (5)