Arch Linux 再インストール記録

Gott erhalte Franz den Kaiser のメロディーがマイブームを迎えている今日この頃、 OS 再インストールしたい症候群に掛かったので X1C (2015) にインストールしていた Arch Linux を再インストールした。

いつも Gentoo を使ってみようか迷うんだけど、 i7 とはいえ非力な 15W U プロセッサでコンパイルオンリーは自分には辛そうだったのでやっぱり Arch に。
基本は Arch Linux wiki 通りなので選択とトラブルシュートだけを記録していく。

パーティショニングとファイルシステム

今回の再インストールの大義名分の一つは btrfs のパーティション統合なので、酷く単純なパーティション分割にしている。

/dev/sda1 1G     /boot
/dev/sda2 8G     swap
/dev/sda3 128G   /
/dev/sda4 128G   /home
/dev/sda5 211.9G /var/container

    ↓

/dev/sda1 1G     /boot
/dev/sda2 8G     swap
/dev/sda3 467.9G /

この代わりに、btrfsのsubvolumeをパーティションの代わりに使うように変更している。
/ 用のsubvolumeは / (判りづらいな、これ)ではなく、 /root にするようにしている。
こうすることによって、 subvolume 構成の柔軟性を持つことが出来る……らしいのだが、そもそも再構成するか不明。

ROOT-+-root       /
     +-home       /home
     +-opt        /opt
     +-container  /var/container

これを作るためには、一旦 /dev/sda3/mnt にマウントしてから subvolume を作成してアンマウントし、 subvolume を/mntにマウントして、という流れで行う。
具体的なコマンドの流れはこんな感じ。

$ mount /dev/sda3 /mnt
$ btrfs subvolume create /mnt/root
$ btrfs subvolume create /mnt/home
$ umount -R /mnt
$ mount -o subvol=root,defaults,noatime,ssd,compress=lzo /dev/sda3 /mnt
$ mkdir -p /mnt/home
$ mount -o subvol=home,defaults,noatime,ssd,compress=lzo /dev/sda3 /mnt/home

ブートローダ

ブートローダは前回から引き続き systemd-boot を利用している。
btrfs の subvolume からブートさせるためには rootflagssubvol を追加して、 / になる subvolume を指定する必要がある。
気付かないで再起動させてしまってもう一度 LiveUSB 環境に入る必要があった。

options root=PARTUUID=</dev/sda3 partuuid> rw elevator=deadline rootflags=subvol=root

こっちは前回引っかかった奴だが、 genfstab で生成された /etc/fstab から UUIDPARTUUID と思ってコピペしたのだが、やっぱり LiveUSB 環境に戻ってブートエントリを修正するハメになった。
PARTUUID で指定する必要があるかまでは調べてないけど、指定するなら /dev/disk/by-partuuid/ 以下を ls -la して調べる必要がある。

Congratz! 再起動したらフレッシュなコンソールが出迎えてくれる。

ネットワーク

LiveUSB 環境と違い、再起動したらまずネットワーク設定から始める必要がある(※ X1C には有線があるのでそっちを使えば LiveUSB 環境では何もしないでネットワークが使える)。
Linux でネットワーク設定というと NetworkManager があるけど、今回はミニマムに netctl を使うことにした。

まずは有線から設定して、接続を確認してからwifiを、という流れを踏んだ。
有線の設定は凄く楽だ。
/etc/netctl/examples 以下に設定例があるので、それを /etc/netctl/ 直下にコピペしてきて Interface= の値を ip a で確認した有線LANのインターフェイス名に変更するだけで良い。

wifi は普通 WPA2 で暗号化したアクセスポイントを使うと思うけど、これにアクセスするための wpa_supplicant はデフォルトではインストールされないので追加インストールする必要がある。

$ sudo pacman -S wpa_supplicant

wifiの場合も設定例が /etc/netctl/examples 以下にあるのでコピペしてきて(ry

自動起動はwifiだけ設定しておく。
wpa_actiond をインストールしてから netctl-auto@<wifiのインターフェイス名>.service を enable するだけ。

$ sudo systemctl enable netctl-auto@wlp4s0.service

とっても簡単!

GUI

ウィンドウマネージャは今回は KDE ではなく、 i3wm を使うんだけど、色々やってたら長くなってきたので別に書く。