Arch Linuxのインストール
なにかと難しいと言われるArch Linuxのインストール手順を、備忘録も兼ねて書いていきます。
ただ、Arch Linuxはカスタマイズ性に優れている反面、インストールする環境によって必要な手順が変わりますので、ここで解説する手順は一つの例として参考にしていただけたら幸いです。
環境と方針
今回、私は以下の環境にArch Linuxをインストールしました。
- 機種: Lenovo ideapad 120S
- CPU: Intel Celeron N3350
- グラフィック: Intel HD Graphics 500
- ストレージ: SATA接続 SSD 128GB
起動モードはUEFI、パーティション方式はGPTでインストールします。
また、HDD(SSD)の中身はすべて消去し、Arch Linux専用にする方針で解説していきます。
インストール前の準備
インストールメディアの作成
Windowsで作成することを前提としています。
- まずここからisoファイルをダウンロードします。
日本のミラーからarchlinux-2021.10.01-x86_64.iso
のように日付入りのisoファイルをダウンロードしてください。 -
Rufusなどを使ってUSBメモリに書き込みます。
私の場合はRufusを起動してisoファイルを選択したら、パーティション構成をGPT、ターゲットシステムをUEFIに設定します。
BIOS(UEFI)の設定 〜 インストールメディアの起動
インストール前に、マザーボードのBIOS設定を確認します。
- PC起動直後のロゴ画面でF2やDeleteキーを押してBIOS画面を起動します。
- BIOS画面でセキュアブートを無効にします。
- 設定を保存して再起動したら、次はロゴ画面でF12キーなどを押してインストールメディアから起動します。
システムの設定
無事起動できたら、真っ黒な画面に文字だけが表示され、入力を受け付ける状態になります。
以降は、コマンドライン上でコマンドを入力したりファイルを編集したりして、作業を進めていきます。
キーボード配列をセット
初めにキーボードの設定を行います。
デフォルトではUS配列になっているので、一般的な日本語キーボードを使っている場合は次のコマンドを入力しましょう。
# loadkeys jp106
UEFIモードで起動しているか確認
# ls /sys/firmware/efi/efivars
UEFIモードで起動できている場合、ファイルがたくさん表示されます。
BIOSモードの場合は上記のディレクトリが存在しません。
インターネットに接続
インストールするファイル(パッケージ)はネットからダウンロードする必要があるため、ネットに接続する必要があります。
有線LANの場合は自動で接続されているかもしれませんが、無線LANの場合は手動で接続しなくてはいけません。
無線LANで接続
まず、無線LANデバイスの名前を確認します。
環境によって違いますが、通常はwlan0などです。
# iwctl station list
次に、ルータのネットワーク名(SSID)を確認します。
# iwctl station wlan0 get-networks
確認したら、下記のコマンドで接続します。
<ネットワーク名>のところは、ルータのネットワーク名(SSID)を指定してください。
# iwctl station wlan0 connect <ネットワーク名>
最後に暗号化キーの入力を求められるので、入力してください。
接続の確認
無事にネットに接続されたか、ping
コマンドで確認してみます。
# ping archlinux.org
送受信が繰り返されるので、問題がなければCtrl+Cで終了します。
システムの時計を合わせる
システムの時計が正しくなるよう、ネットワーク上の時計と合わせます。
# timedatectl set-ntp true
パーティションの設定
インストール先ディスクのデバイス名を確認
# lsblk
上記のコマンドを入力すると、デバイスの一覧が表示されます。
TYPEがdiskとなっているのがインストール先のディスクになります。
HDDやSSDが一つの場合、NAMEがsdaとなっていると思います。
パーティションの作成
gdisk
を使ってディスクのパーディションを切ります。
# gdisk /dev/sda
上記コマンドを入力すると、Command (? for help):
と出るので、まずo
で空のパーティションテーブルを作成します。
Command (? for help): o
メッセージが出てYES/NOを聞かれるので、y
を押してください。
新しいパーティションはn
コマンドで作ります。
UEFIの場合、まずブート用のEFIパーティションを作る必要があります。
今回は512MB用意するので、Last sectorに+512M
、Hex codeにef00
を指定してください。
Command (? for help): n
Partition number (1-128, default 1): //何も入力せずEnter
First sector (〜) or {+-}size{KMGTP}: //何も入力せずEnter
Last sector (〜) or {+-}size{KMGTP}: +512M
Hex code or GUID (L to show codes, Enter = 8300): ef00
次に、残りすべてをOSシステム用のルートパーティションにします。
すべて何も入力せずEnterで省略してかまいません。
Command (? for help): n
Partition number (1-128, default 1): //何も入力せずEnter
First sector (〜) or {+-}size{KMGTP}: //何も入力せずEnter
Last sector (〜) or {+-}size{KMGTP}: //何も入力せずEnter
Hex code or GUID (L to show codes, Enter = 8300): //何も入力せずEnter
最後にw
コマンドで、パーティションテーブルをディスクに書き込みます。
Command (? for help): w
「既存のパーティションを上書きします!続けますか?」と聞かれるので、y
を押します。
書き込み後、自動的にgdisk
は終了します。
lsblk
コマンドで確認すると、sda1、sda2というパーティションができていると思います。
フォーマット
各パーティションをフォーマットして使えるようにします。
EFIパーティションはFAT32、ルートパーティションはext4でフォーマットします。
# mkfs.vfat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
パーティションのマウント
フォーマットしたパーティションをマウントし、データの読み書きができるようにします。
まず、ルートパーティションを/mnt
にマウントします。
sda2を指定する点に注意してください。
# mount /dev/sda2 /mnt
次に、EFIパーティションを/mnt/boot
にマウントします。
現時点では/mnt/boot
ディレクトリが存在しないため、作成してからマウントします。
こちらはsda1を指定する点に注意してください。
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
インストール処理
ここから、実際にArch Linuxをインストールする処理に入ります。
サーバーのミラーリストを設定
パッケージをダウンロードするためのサーバーのミラーを選択します。
日本に住んでいる場合、日本のサーバーからダウンロードするよう設定します。
# reflector --sort rate --country Japan --latest 10 --save /etc/pacman.d/mirrorlist
必須パッケージのインストール
pacstrap
コマンドで必須パッケージをインストールしていきます。
また、インストール後のネット接続に必要なパッケージと、ファイル編集に必要なエディタ、CPUのマイクロコードも一緒にインストールしておきます。
# pacstrap /mnt base base-devel linux linux-firmware nano wpa_supplicant networkmanager intel-ucode
AMDのCPUを使用している場合は、intel-ucode
の代わりにamd-ucode
をインストールしてください。
コマンドを実行すると、パッケージのダウンロードとインストールが始まります。
終了するまで、しばらく待ってください。
fstabの設定
起動時にマウントするパーティションなどを設定します。
genfstab
コマンドを使うと自動でやってくれます。
# genfstab -U /mnt >> /mnt/etc/fstab
インストールしたシステムに入る
ここまではUSBブートのArch Linuxで作業してきましたが、ここからはPCにインストールしたArch Linuxのシステム内に入って作業を行います。
# arch-chroot /mnt
各種設定
タイムゾーンの設定
タイムゾーンを日本の東京に合わせます。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ハードウェアクロックの設定
現在の時間を、マザーボードの内部時計に書き込みます。
# hwclock --systohc --utc
ロケールの設定
Linux上で使用する言語を設定します。
まず、/etc/locale.gen
をエディタで開きます。
# nano /etc/locale.gen
言語名がアルファベット順に並んでいるので、#en_US.UTF-8 UTF-8
と#ja_JP.UTF-8 UTF-8
の先頭の#
を削除し、コメントを解除してください。
...
en_US.UTF-8 UTF-8
...
ja_JP.UTF-8 UTF-8
...
Ctrl+X→y→Enterで変更を保存します。
その後、locale-gen
コマンドでロケールを生成します。
# locale-gen
最後に/etc/locale.conf
ファイルを作成し、デフォルトのロケールを指定します。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
現時点では、まだロケールを日本語にしません。
GUI環境を構築したあとで日本語に設定します。
キーボード配列の設定
インストール後のArch Linuxでも日本語キーボードを使うための設定をします。
# echo KEYMAP=jp106 > /etc/vconsole.conf
これは、コンソール画面でのキーボード配列の設定です。
GUI環境では、別途設定が必要になります。
ホスト名の設定
自分のPCのホスト名を設定します。
基本的に自分しか使わないのであれば、好きな名前でかまいません。
# echo <ホスト名> > /etc/hostname
インターネット接続の設定
このままでは、次回起動時にネットに接続されません。
pacstrap
でインストールしたNetworkManagerを有効にして、再起動後も無線LANで接続できるようにしておきます。
# systemctl enable NetworkManager
パスワードの設定
root(管理者権限)のパスワードを設定します。
# passwd
New password :
Retype new password :
新しいパスワードの入力を求められるので、入力してEnterを押します。
すると確認のため再入力を求められるので、もう一度同じパスワードを入力してください。
ブートローダーの設定
OSを起動するためのブートローダーを設定します。
いくつか種類がありますが、今回は定番のGRUBを使います。
必要なパッケージのインストール
# pacman -S grub efibootmgr
pacstrap
でマイクロコードをインストールしていない場合は、ここで一緒にインストールしておきましょう。
GRUBのインストール
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
--bootloader-id
には任意の名前を指定します。
/boot/EFIディレクトリ内に、指定した名前のディレクトリが作成されます。
.efiのコピー
PCによっては、/boot/EFI/bootディレクトリ内にbootx64.efiという名前でefiファイルが必要な場合があるようです。
必要ないかもしれませんが、念のためコピーしておきます。
# mkdir /boot/EFI/boot
# cp /boot/EFI/Arch/grubx64.efi /boot/EFI/boot/bootx64.efi
Arch
の部分は、--bootloader-id
で指定した名前に置き換えてください。
GRUBの設定ファイルを生成
grub-mkconfig
コマンドを使うと自動で書き込んでくれます。
# grub-mkconfig -o /boot/grub/grub.cfg
再起動
これで、インストールしたArch Linuxを起動させる準備が完了しました。
次回以降はインストールメディアは必要ありません。
一度PCをシャットダウンし、USBメモリを抜いてください。
# exit
# umount -R /mnt
# shutdown -h now
USBメモリを抜いたあと再度起動すると、Arch Linuxが立ち上がります。
再起動後の設定
起動するとログイン画面が表示されるため、ユーザー名はroot、パスワードは先程設定した管理者権限のパスワードを入力してください。
インターネットに接続
再起動後は、また無線LANに接続できなくなっています。
nmtui
コマンドでNetworkManagerの設定メニューを表示し、設定しましょう。
# nmtui
設定メニューが立ち上がるので、「Activate a connection」を選択して設定してください。
ここで一度設定しておけば、次回の起動時からは自動的につながります。
システムのアップデートとpacmanの設定
ネットにつながったら、一応システムのアップデートをしておきます。
# pacman -Syu
また、pacmanをカラーで出力できるようにします。
/etc/pacman.conf
を編集し、#Color
と書かれた行の先頭の#
を削除してコメントを解除してください。
# nano /etc/pacman.conf
...
# Misc options
...
Color
...
Ctrl+X→y→Enterで変更を保存します。
一般ユーザーの作成
インストール直後は管理者権限のアカウントしか作られていないため、個人用の普段使うユーザーアカウントを作成します。
# useradd -m -G wheel <ユーザー名>
ユーザーのパスワード設定
作成したユーザーのパスワードを設定します。
# passwd <ユーザー名>
New password :
Retype new password :
sudoの設定
一般ユーザーが管理者権限で操作を行いたいときは、sudo
コマンドを使います。
初期状態ではsudo
コマンドを使えないので、使えるように設定します。
# EDITOR=nano visudo
# %wheel ALL=(ALL) ALL
と書かれた行を探し、先頭の#
とスペースを削除してコメントを解除してください。
その後、Ctrl+X→y→Enterで変更を保存します。
NTPの設定
NTPサーバーから時刻を取得して、自動的に時刻を修正できるようにします。
まず/etc/systemd/timesyncd.conf
を編集して、NTP=
とFallbackNTP=
に日本のサーバーを指定します。
先頭の#
を削除してコメントを解除してください。
# nano /etc/systemd/timesyncd.conf
...
[Time]
NTP=ntp.nict.jp
FallbackNTP=0.jp.pool.ntp.org 1.jp.pool.ntp.org 2.jp.pool.ntp.org 3.jp.pool.ntp.org
...
設定ファイルを編集したら、サービスを有効にします。
# timedatectl set-ntp true
ビープ音を無効にする
キーボード操作中にビープ音がなることがあります。
以下のコマンドで、ビープ音が鳴らないようにできます。
# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
起動時と終了時のタイムアウト時間を変更する
Linuxの起動時や終了時に、システムは処理が正常に終わるまで待ちます。
そのタイムアウトの時間はデフォルトで90秒と設定されていますが、長すぎるので10秒に変更します。
/etc/systemd/system.conf
をエディタで開き、DefaultTimeoutStartSec
とDefaultTimeoutStopSec
の値を変更してください。
また、先頭の#
を削除してコメントを解除してください。
# nano /etc/systemd/system.conf
...
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
...
一般ユーザーでログイン
exit
コマンドでログイン画面に戻り、作成した一般ユーザーでログインします。
# exit
一般ユーザーでPCの再起動やシャットダウンをするときは、以下のコマンドを入力します。
$ sudo systemctl reboot //再起動
$ sudo systemctl poweroff //シャットダウン
sudo
は管理者権限で実行するため、パスワードを入力する必要があります。
以上で、Arch Linuxのインストール作業は終了です。
以降は、自分の好みに合わせてGUI環境の構築や、アプリケーションのインストールをしていくことになります。
Discussion
わかりやすかったです、ありがとうございます!色々と調べる手間が省けました😌