archinstall で ArchLinux インストールバトルをする
近年の ArchLinux では、 archinstall
というコマンドが Live ISO にバンドルされており、インストーラによるインストールが可能になっています。
これを使って、適当なマシンの環境を構築してみます。
操作方法
archinstall を実行する
- Live ISO をダウンロードし、適当な USB に焼く
- UEFI でセキュアブートを切って、Live ISO を起動
-
archinstall
を実行- 要ネットワーク接続。公式の Live イメージはデフォルトで DHCP が有効になっているので、有線だったら差すだけで、無線だったら iwctl で適当な AP につなぐだけで外に出られる
archinstall を実行すると、このようなウィザードが出てきます。
適宜操作していきましょう。
いくつか補足しておきます。
-
Mirrors
- インストーラまかせでもとりあえずは動くとおもうけど、自分で設定するのがおすすめ
インストーラに任せたら、10MiB/s 程度しか出ないミラーが選択されていました。というわけで、自分で適当に選ぶといいと思います。
速度、安定性、ミラー頻度が高いところでいくと、JAIST、筑波大学の WIDE プロジェクト、 cat.net
あたりのミラーがよいでしょうか。これらは HTTP/S や IPv6 にも対応していてすてきです。
-
Locales
-
en_US.UTF-8
かja_JP.UTF-8
を選ぶ -
ja_JP
にする場合、コマンドや GNOME、DE が作る/home
下のディレクトリ(e.g.デスクトップ
、ピクチャ
)が日本語になる。操作性の観点や、状況によっては豆腐文字になってしまうことなどから、en_US
がおすすめ
-
-
Disk configuration
-
best-effort default partition layout
だと/boot
(536MB) と/
(21GB, ext4) と/home
(残りすべて, ext4) で切られるので、お好みでレイアウトやファイルシステムを変える
-
-
Profile
- ここでは GNOME、KDE、i3-wmなど、主要な DE / WM を指定することができる
-
Optional Repositories
- Wine などを使う予定があるなら multilib を追加しておく
自分は以下の通りに設定しました。
user_configuration.json
{
"additional-repositories": [],
"archinstall-language": "English",
"audio_config": {
"audio": "pipewire"
},
"bootloader": "Systemd-boot",
"config_version": "2.7.1",
"debug": false,
"disk_config": {
"config_type": "manual_partitioning",
"device_modifications": [
{
"device": "/dev/sda",
"partitions": [
{
"btrfs": [],
"dev_path": "/dev/sda1",
"flags": [
"Boot",
"ESP"
],
"fs_type": "fat32",
"mount_options": [],
"mountpoint": "/boot",
"obj_id": "********",
"size": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "B",
"value": 536870912
},
"start": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "sectors",
"value": 2048
},
"status": "existing",
"type": "primary"
},
{
"btrfs": [],
"dev_path": "/dev/sda2",
"flags": [],
"fs_type": "ext4",
"mount_options": [],
"mountpoint": "/",
"obj_id": "********",
"size": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "B",
"value": 254986420224
},
"start": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "sectors",
"value": 2097152
},
"status": "existing",
"type": "primary"
}
],
"wipe": false
}
]
},
"disk_encryption": null,
"hostname": "kandy",
"kernels": [
"linux-zen"
],
"locale_config": {
"kb_layout": "us",
"sys_enc": "UTF-8",
"sys_lang": "ja_JP.UTF-8"
},
"mirror_config": {
"custom_mirrors": [],
"mirror_regions": {
"Japan": [
"https://mirrors.cat.net/archlinux/$repo/os/$arch",
"https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch",
"http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch",
]
}
},
"network_config": {
"type": "nm"
},
"no_pkg_lookups": false,
"ntp": true,
"offline": false,
"packages": [
"vim",
"fish",
"git"
],
"parallel downloads": 0,
"profile_config": {
"gfx_driver": "All open-source",
"greeter": "gdm",
"profile": {
"custom_settings": {
"Gnome": {}
},
"details": [
"Gnome"
],
"main": "Desktop"
}
},
"script": "guided",
"silent": false,
"skip_ntp": false,
"skip_version_check": false,
"swap": true,
"timezone": "Asia/Tokyo",
"uki": false,
"version": "2.7.1"
}
一通り設定を終えたら、コンフィグを書き出してインストールを実行します。
このコンフィグは Live 環境が作成してくれる一時的なファイルシステム上に保存されているので、インストール完了後にディスクかなにかにコピーしておくといいでしょう。このコンフィグを使えば、将来 archinstall
を実行することになったとき、コンフィグを指定するだけでインストールの実行ができて便利です。また、 /var/log/archinstall
あたりに実行ログが吐き出されるので、これもディスクに書き出しておくとよいでしょう。
その後の設定
archinstall の実行が終わったら、再起動しましょう。
これで DE/WM/DM が起動してくれるはずです。
日本語フォントの導入
archinstall
は、ロケールが日本であっても日本語フォントを導入してくれません。
たとえば、GNOME を ja_JP.UTF-8
で導入すると豆腐文字だらけたいへんです。
そこで、日本語を含む幅広い言語に対応した Noto Sans / Serif / Mono を導入します。
$ sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
noto-fonts-cjk
というパッケージが、中国語・日本語・韓国語用フォントにあたります。ついででウェイト違いや絵文字なんかも使えたほうがべんりなので、noto-fonts とその Optional Dependencies すべてを導入しています。
フォントの設定は環境ごとに異なると思うので割愛します。
AUR ヘルパーの導入
今回は paru を導入します。
paru は yay の作者が作った Rust 製の AUR ヘルパーで、pacman と操作感が似ています。普段遣いにべんりです。
$ git clone https://github.com/Morganamilo/paru.git
$ cd paru
$ sudo makepkg -si
日本語 IME の導入
日本語フォント同様、IME も導入されていないので、自分で作業する必要があります。
好みや環境の差異があると思うので、お好みのものを適宜導入してください。
自分が使っている GNOME には IBus がバンドルされているので、ibus-mozc を使うことにしました。
参考までに作業手順を書いておきます。
$ paru -S ibus-mozc
$ ibus-setup
ibus-setup
でお好みの設定にできます。GNOMEのキーボード設定と一部重複している部分があるので、自分はこんなふうに、GNOMEとMozcの設定を干渉しないようにしています(よく内部の仕組みを知らないのでひどいことになってしまっている……)。
(Optional) Control と Super の位置を入れ替える
Mac を使っているユーザーだと、Control、Alt、Super の位置が入れ替えたほうが自然に操作できるだろう。
よくある環境では xmodmap を使って入れ替えるのが定番ではあるが、
GNOME では xmodmap など各種設定の統一的なフロントエンドである GNOME Tweaks を使って設定するとコンフリクトしづらく設定できる。
ここはお好みで設定してもらえばよい。
archinstall をつかってみて
かんたん。
5分もウィザードを操作すれば、あとは待つだけでインストールが終わるのはありがたかった。
それのみならず、設定可能な項目もわりあい充実している。
一方、どんな設定を行われるかはインストーラ次第なところがあるので、シンプルさは一定損なわれる。それでも Ubuntu や Debian、CentOS 、Manjaro ほどの過保護さはないから、カジュアルに ArchLinux を使っていきたいときには archinstall はいいな、と思った。
あと、じぶんは GNOME ユーザーなので特に困っていないけれど、i3-wm のようなカスタマイズが前提の WM ユーザーだと自分好みでない設定を取り除く作業が必要なわけで、また違った感想を抱きそうだな、と思った。
なにがうれしいか
- GNOME や i3-wm など、よく使う DE/WM を勝手にいれてくれる
- Zen Kernel のような、カスタマイズされたカーネルの利用もできる
- Pipewire のような、モダンなオーディオサーバーを設定してくれる
なにがうれしくないか
インストーラに頼る時点でしかたないところがあるけれど……
-
自分好みの設定で Arch を使い始めることができない
- パーティションの最適化
- ネットワーク周り(systemd-networkdを使うとか)
- パッケージの選択
- GNOME の最小限インストール
こうした些細な悩みごとは、あとからどうとでもできるわけだけれど、前もって細かく設定するつもりがあるなら手でインストールするのがもっともシンプルでかんたんだというのは変わらないとおもう。
- Linux や計算機自体のお勉強があんまりできない
ここが一番重要だと思う。
個人的には、Arch や Gentoo なんかのインストールバトルはLinux や計算機の入門にぴったりだと思っている。適度な抽象化レイヤーの上で、比較的低レイヤーな作業ができるからだ。それができないのはすごくすごくもったいないとおもう。
(Optional) GNOME でリモートデスクトップ
需要があるかはわからないですけれど、リモートデスクトップ環境を構築したのでそれもメモしておきます。
いずれもたいていの GNOME 環境に標準で備わっているものを使うことにします。
簡単であるため、また、現代の GNOME が動いている wayland が前提の実装を使うためです。
ホスト側の設定
GNOME の WM である mutter は既定でリモートデスクトップ機能が有効化された状態でコンパイルされているほか、設定画面の「共有(Share)」から、ホスト側の設定をすることも可能です。
一応、公式ドキュメントはこれになります。
設定画面をポチポチすればそれで動きます。
このとき、ホスト側のIPアドレスとユーザー名・パスワードを控えておきましょう。
クライアント側の設定
リモートデスクトップクライアントには、今回は gnome-connections
を使うことにします。
gnome-connections は RDP と VNC 両方に対応したリモートデスクトップクライアントです。
今回は RDP を使って接続してみます。
さきほど控えておいた、IPアドレス、ユーザー名、パスワードを入力すれば、ホスト側のマシンをリモートで操作することができるようになるはずです。
なお、今回はテストのために適当に動作させていますが、本来ならばセキュリティのために SSH でトンネルを掘るであるとか、FWを設定しておくであるとかするとよいでしょう。