こんにちは!
今回はArch LinuxをノートPCにインストールしたので、手順とポイントを備忘録として残しておこうと思います。
今まではManjaro Linuxを使用していたのですが、色々いじくっていたら起動できなくなりまして…(笑)
日々勉強ということで、今回はArch Linuxに挑戦です!
【目次】
参考にしたサイト
Arch Linuxは公式wikiがとても充実しているので、まずはwikiを見てみるといいと思います。
Arch wiki: https://wiki.archlinux.org/index.php/installation_guide
以下は、その他参考にさせていただいたサイトです。
Qiita: https://qiita.com/TsutomuNakamura/items/b60518f8788e5e998744
クロの思考ノート: http://note.kurodigi.com/archlinux-uefi-install/
普段使いのArch Linux: https://www.archlinux.site/2016/03/arch-linux-uefi-gpt-xfs.html
Arch Linuxのインストール
今回は、UEFI+GPT環境にインストールを行っていきます。
ブートローダーにはGRUBを選択しました。
isoをダウンロード
まずは以下のサイトからお好みのサーバを選択し、isoファイルをダウンロードしてきます。( “archlinux-2020.06.01-x86_64.iso”みたいなファイルです )
日本のサーバ一覧: https://www.archlinux.jp/download/
Boot USBを作成
次にBoot USBを作成します。
Windowsマシンで作成する場合は、”Rufus”が有名かなと思います。
以下のサイトから最新バージョンをダウンロードしてください。
Rufus: https://rufus.ie/
ダウンロードが完了したらRufusを起動し、
USB, isoファイル, パーティション構成を選択します。

今回はUEFI+GPT環境にインストールする予定なので、パーティション構成には”GPT”を選択してください。
次に、スタートをクリックすると書き込み方法を聞かれます。
通常はISOイメージとして書き込んで問題ないですが、上手く起動できない環境ではDDイメージとして書き込むと上手くいきます。

keymapを設定
無事に起動出来たら、CLIが表示されていると思います。
まずは、操作しやすいようにキーマップを変更します。
# loadkeys jp106
その他のkeymapを使用したい場合は、
“/usr/share/kbd/keymaps/”に一覧があります。
インターネットへ接続
後々システムクロックの更新や、パッケージのインストールを行うため、インターネットに接続できるようにしておきます。
まずは有効なインターフェイスを確認します。
# ip link 1: lo:<LOOPBACK,UP,LOWER_UP>... 2: enp0s25: <...> 3: wlan0: <...>
僕は無線でインターネットに接続したかったので、wlan0に対して設定を行いました。(そこそこ手間なので、有線がおすすめです。)
無線接続
参考: https://wiki.archlinux.jp/index.php/WPA_supplicant
まずは、設定ツールである”wpa_cli”を使用するための準備をします。
# vi /etc/wpa_supplicant/wpa_supplicant.conf ------------------------------ ctrl_interface=/run/wpa_supplicant update_config=1 ------------------------------ # wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
これでwpa_cliが使えるようになります。
対話形式でSSIDとPSK(パスフレーズ)を入力します。
# wpa_cli > > add_network 0 > set_network 0 ssid "SSIDを入力" > set_network 0 psk "パスフレーズを入力" > enable_network 0
SSIDとPSKが正しければ、successメッセージが表示されるはずです。
設定を保存してツールを終了します。
> save-config OK > quit
最後に、DHCPでIPアドレスを取得して完了です。
# dhcpcd wlan0
システムクロックを更新
以下のコマンドでシステムクロックを更新します。
# timedatectl set-ntp true
パーティショニング
参考: https://wiki.archlinux.org/index.php/Partitioning
まずは現在のパーティションを確認してみましょう。
※表示は一例です。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 21.9T 0 disk ├─sda1 8:1 0 488.3M 0 part /boot ├─sda2 8:2 0 11.5G 0 part [SWAP] └─sda3 8:3 0 21.8T 0 part /
今回は既存のパーティションは全部無視して、新たに1から作成します。
次の表ように設計してみました。
パーティション | 用途 | 容量 | フォーマット | マウント場所 |
---|---|---|---|---|
sda1 | UEFIブート | 512MB | FAT32 | /boot |
sda2 | swap | 1GB | swap | |
sda3 | root | 30GB | ext4 | / |
sda4 | var | 12GB | ext4 | /var |
sda5 | home | 残り全部 | ext4 | /home |
では、実際にパーティショニングしていきます。
今回は”gdisk”でGPTを操作します。
# gdisk /dev/sda GPT fdisk (gdisk) version 0.8.6 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): n Partition number : 1 First sector: (未入力でエンター) Last sector: +512M Hex code or GUID: ef00 (UEFIブート用なのでef00) Command (? for help): n Partition number: 2 First sector: (未入力でエンター) Last sector: +1G Hex code or GUID: 8200 (swap用なので8200) Command (? for help): n Partition number: 3 First sector: (未入力でエンター) Last sector: +30G Hex code or GUID: (未入力でエンター) Command (? for help): n Partition number: 4 First sector: (未入力でエンター) Last sector: (未入力でエンター) Hex code or GUID: (未入力でエンター) Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed?: y OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully.
これで作成完了です。
パーティションのフォーマット・マウント
先ほどの表に従って、フォーマットしていきます。
# mkfs.vfat -F32 /dev/sda1 # mkswap /dev/sda2 # swapon /dev/sda2 # mkfs.ext4 /dev/sda3 # mkfs.ext4 /dev/sda4 # mkfs.ext4 /dev/sda5
次に、各ファイルシステムを”/mnt”配下にマウントしていきます。
マウントする前に、”mkdir”でファイルを作成する必要があるので注意してください。
# mount /dev/sda3 /mnt (rootをマウント) # mkdir /mnt/var # mount /dev/sda4 /mnt/var # mkdir /mnt/home # mount /dev/sda5 /mnt/home # mkdir /mnt/boot # mount /dev/sda1 /mnt/boot
パッケージをインストール
インストール完了後に必要な初期パッケージをインストールしていきます。
ここでは、基本的なパッケージ(base, base-devel, linux linux-firmware)の他に、GRUB(grub, dosfstools, efibootmgr)や無線関係のパッケージ等をインストールしています。
# pacstrap /mnt base base-devel linux linux-firmware grub dosfstools efibootmgr netctl iw wpa_supplicant networkmanager dialog xfsprogs vi nano
fstabを作成
fstabは、マウントするファイルシステムの情報を記述したファイルです。
“genfstab”を使用して作成できます。
# genfstab -U /mnt >> /mnt/etc/fstab
新システムへ移動(chroot)
ここで、作業場所を新システムに移動します。
Arch Linuxでは”arch-chroot”コマンドが用意されています。
# arch-chroot /mnt /bin/bash
Localeを設定
参考: https://wiki.archlinux.org/index.php/Locale
まずは使用するLocaleを、設定ファイルで有効化(コメントアウト)します。
# vi /etc/locale.gen ---------------------------------------- en_US.UTF-8 UTF-8 ←#を削除。 ja_JP.UTF-8 UTF-8 ←#を削除。
編集が完了したら、Localeを生成します。
# locale-gen
次に、環境変数を設定します。
# echo LANG=en_US.UTF-8 > /etc/locale.conf # export LANG=en_US.UTF-8
インストール完了後に日本語設定に戻します。
タイムゾーンを設定
タイムゾーンを日本(東京)に設定し、ハードウェアクロックのズレを調整します。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # hwclock --systohc --utc
ホスト名を設定
任意のホスト名を設定します。
まずは、”/etc/hostname”に書き込み。
# echo ホスト名を入力 > /etc/hostname
次に”/etc/hosts”を編集。
# vi /etc/hosts # Add settings 127.0.0.1 localhost.localdomain localhost ホスト名 ::1 localhost.localdomain localhost ホスト名 # End
Rootパスワードを設定
ルートユーザのパスワードを設定します。
# passwd
GRUBをインストール
今回は、ブートローダーとしてGRUBを使用します。
先ほどダウンロードした”grub”を使ってインストールしていきます。
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck # mkdir /boot/EFI/boot # cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi # grub-mkconfig -o /boot/grub/grub.cfg
以上で設定は終了です!
元のシステムに戻り、再起動をしましょう!
# exit # reload
おわりに
いかがでしたでしょうか?
今回は個人的な備忘録の面が強く、コマンド中心の記事になってしまいました…
機会があればLinuxのシステムについてもっと勉強して、詳しい解説なんかも書けたらいいなと思います(笑)
Ubuntuのようなディストリビューションに比べて、インストールが少し大変ですが、Linuxの勉強にはもってこいだと思いました。
最後までありがとうございました!