見出し画像

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いれたり、みたいなことはまた別の記事で紹介します。


この記事が気に入ったらサポートをしてみませんか?