
Arch Linux インストール
雑談
いい道具の条件は、成し遂げたい仕事が単純明確でそれに必要な機能性だけあることですよね。
多機能な道具は自分が使ってない部分が故障して全体が使えなくなってしまうなんてことはよくあると思います。多機能というのは壊れやすいんです。長くメンテし続けるためには機能性が限定されている方が良いですよね。
成し遂げたい仕事が複雑化した道具というのは、その目的も複雑化してしまって用途が限定的になってしまいます。
KISSの原則ですね。
サバイバルツールはどうでしょう?FPVドローンを自作したり、食卓でカレーにいれるじゃがいもを切ったりは不便ですよね(おいしーかもーの人は麻婆豆腐の豆腐を切ってましたが)。
サバイバルツールは悪い道具でしょうか?
この場合はサバイバルツールが悪いんじゃなくて、道具の機能性と、使用者が必要な機能性がずれているのが問題です。
道具自体は世の中に多種多様なものがあるわけで、自分の目的のために選ばないといけないわけで、それは使用者の怠惰というわけです。
何でもできるから、簡単に使えるから、とりあえず(Macを使うWindowsを使う)という動機は悪い兆候です
ということで型落ちThinkpadにArch Linuxをインストールして開発環境を構築します。
環境
ThinkPad E14 Gen3 AMD
MacBook Pro (13-inch, 2020)
USBメモリ32GB
はじめに
Arch Linuxについては公式ドキュメントがすごい充実してるので、つまったらドキュメントを漁ればトラブルシューティングできると思います。
英語が苦手な人も日本語ページもそれなりに充実してますので、積極的に活用してください。
USBインストールメディア作成
まずはArch LinuxをUSBメモリからブートできるように、USBインストールメディアを作成します。
ThinkPadの他にMacBookしかなかったので、今回はMacBookで作成します。
diskutilコマンドでデバイス一覧を取得します。
xxxxxがUSBメモリですね。
$ diskutil list
USBメモリをアンマウントします。
$ diskutil unmountDisk /dev/disk2
そしたらddコマンドで予めダウンロードしておいたArch Linuxのisoイメージを配置します。
$ dd if=/Users/whosown/Downloads/archlinux-2024.01.01-x86_64.iso of=/dev/rdisk2 bs=1m
インストールメディアを使ってライブブート
先程作成したインストールメディアを使って、Arch Linuxをライブブートします。
インストールしたい端末(今回はThinkPad)にUSBメモリを挿入して電源ボタンを押します。
Lenovoのロゴが出たら素早くF12を押して、起動オプションの中からUSBメモリを選択。※BIOSの設定でセキュアブートが有効になっていると正常に起動できないのでOFFにしてください。
キーボードレイアウトの設定
デフォルトのキーボードレイアウトがUSなので、日本語キーボードの場合はレイアウトを変更します。
まずは利用可能なレイアウトにjp106が含まれていることを確認。
# localectl list-keymaps | grep jp106
jp106
確認できたらキーマップをロードする
loadkeys jp106
ブートモードの確認
ブートモードを確認しておきます。今回の環境だとUEFI 64bitで起動されているようですね。後述しますが、ブートローダーのインストールの際に参考にします。
# cat /sys/firmware/efi/fw_platform_size
64
インターネットに接続
Ethernetケーブルがある場合は、PCに接続するだけでインターネットに接続できます。
WiFiネットワークに接続したい場合はiwctlを使います。
iwctlはiwdを利用するためのインタラクティブなプロンプトです。
https://wiki.archlinux.org/title/iwd
ライブブート後はiwdがオートスタートされているので、そのままプロンプトを起動します。
# iwctl
[iwd]#
プロンプトを起動したらWi-Fiデバイス一覧を表示します。
wlan0などが表示されるはず。
[iwd]# device list
利用可能なネットワークを表示して、
[iwd]# station device get-networks
ご家庭のネットワークのSSIDを指定してパスワードを入力して接続します。
[iwd]# station device connect [SSID ここを書き換える]
ちゃんと接続されているのか確認します。
# ping archlinux.org
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=44 time=356 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=44 time=380 ms
大丈夫そうですね。
ここでpingが届かなかったら8.8.8.8に届くのか確認して、届いたらsystemd-resolvedでdhcpの設定を確認してください。
ディスクパーティショニング
ディスクパーティショニングとブートローダーのインストールは初心者にとって難関な場合が多いですが、ThinkPadなどよく出回っているPCを使う場合は情報が多いのであきらめずに頑張りましょう。
今回使っているThinkPad E14 Gen3 AMDでは、公式ドキュメント通りやるとうまくできるので、今回は特別なことをせずにそのままやります。
fdiskを使ってパーティショニングします。
レイアウトはExample LayoutsのUEFI with GPTのとおり作成します。
コマンドがわからなかったらpを押したら一覧が表示されます。あとはプロンプトに丁寧に説明が出るのでそのとおりやればよいです。

PCのストレージがNVMe SSDで、/dev/nvme0n1がそれなので、写真のPartitionを下記に置き換えてください。
/dev/efi_system_partition => /dev/nvme0n1p1
/dev/swap_partition => /dev/nvme0n1p2
/dev/root_partition => /dev/nvme0n1p3
パーティションフォーマット
作ったパーティションをそれぞれフォーマットします。
rootパーティション
# mkfs.ext4 /dev/nvme0n1p3
swapパーティション
# mkswap /dev/nvme0n1p2
EFIシステムパーティション
# mkfs.fat -F 32 /dev/nvme0n1p1
マウント
ボリュームのファイルシステムをマウントします。
rootボリューム
# mount /dev/nvme0n1p3 /mnt
EFIボリューム
# mount --mkdir /dev/nvme0n1p1 /mnt/boot
最後にSwapを有効化
# swapon /dev/nvme0n1p2
インストール
必要なパッケージのインストールをします。
pacmanのミーラーは端末がネットワークに接続されると自動で並び替えられるので特に変更する必要はないです。
pacstrapで必要なパッケージをrootにインストール
# pacstrap -K /mnt base linux linux-firmware
fstab
fstabを生成する。
これを忘れると再起動したときにbootできない。
genfstab -U /mnt >> /mnt/etc/fstab
Chroot
これから先はこれまでに作成した環境で作業をします。
# arch-chroot /mnt
時間
タイムゾーン設定(JST)
ln -sf /usr/share/zoneinfo/Japan /etc/localtime
ハードウェアクロックをシステムクロックに合わせる
hwclock --systohc
時間のズレが気になる人はNTPを使った時間同期を設定してください。
https://wiki.archlinux.org/title/Systemd-timesyncd
ローカリゼーション
日本語を有効にします。
/etc/locale.genの中のja_JP.UTF-8 UTF-8をアンコメントしてlocale-genを実行
# locale-gen
locale.confファイルを作成して、LANG環境変数を記述
LANG=ja_JP.UTF-8
/etc/vconsole.confにキーマップを記述
KEYMAP=jp106
ネットワーク
ホストネームを設定
/etc/hostnameを書き換える
なぁぜなぁぜ's PC
ルートパスワード
ルートユーザーのパスワードを設定する。
passwd
ブートローダー
GRUB 2を使う。
ブートモードの確認でUEFI 64bitでしたので、下記のコマンドでgrubをインストールします。
grub-install --target=x86_64-efi --efi-directory=/mnt/boot --bootloader-id=GRUB
wifi-menu
wifi接続の場合はwifi-menuを入れておくとreboot後の再接続が楽です。
$ pacman -Sy wifi-menu dialog wpa_supplicant
reboot
rebootしてrootでログインできることを確認します。
reboot
終わり
長くなってしまったので今回はここまでです。
user追加したり、display managerでLightDMいれたり、window managerでi3いれたり、polybarいれたり、みたいなことはまた別の記事で紹介します。