28. February 2020
Arch Linux をインストールして遊ぶ
家で遊びたいことが増えてきたので、クラウド全盛の時代に逆行して古い PC に Linux を入れて遊んでみることにしました。 Arch Linux を入れて遊んでいたのは数年前の話なので、すっかり忘れてしまった部分も多いのですが、それを思い出すのも楽しみの一つかなと思っています。
TOC
- 準備
- ネットワークの接続と sshd の起動
- パーティションの作成とフォーマット
- ミラーサーバの選択
- システムのインストール
- root のパスワード設定
- initramfs の作成
- grub のインストール
- OS のシャットダウンと起動
- 必須ではないけどやっておくと便利な設定たち
準備
インストール用の USB スティックを作成します。iso をダウンロードして dd するのが簡単です。
USB flash installation media:
https://wiki.archlinux.org/index.php/USB_flash_installation_media
ネットワークの接続と sshd の起動
Arch に優しいインストーラーはありません。 私はインストール中にググりたいしコピペもしたい軟弱者なので、何よりも先に IP アドレスを割り当てて ssh で接続します。
dhcpd はあらかじめ有効になっているので、dhcp が有効なネットワークでは固定 IP アドレスを設定しなくても大丈夫です。
|
|
パーティションの作成とフォーマット
BIOS か UEFI か、私は特にこだわりはないのです。今回は UEFI が使えるマシンだったので UEFI で作ることにします。 ファイルシステムは一般的な感じで作ります。ZFS とか btrfs で遊ぶのもいいですが、今回は手間をかけずに動いてほしいので一般的なの環境を作ります。
|
|
Unified Extensible Firmware Interface:
https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface
LVM (Linux):
https://wiki.archlinux.org/index.php/LVM
ミラーサーバの選択
デフォルトでは各国のサーバが有効になっているので日本の距離が近いサーバを選びたいです。mirrorlist の上から順番に使われるので、以下の行をファイルの先頭に持ってきます。
|
|
なお、万が一 mirrorlist を消してしまった時は、このサイト から元のリストを入手できます。
システムのインストール
基本的なパッケージのインストールなど Arch インストールお決まりの作業。
|
|
Installation guide: https://wiki.archlinux.org/index.php/Installation_guide#Install_essential_packages
root のパスワード設定
私、この作業をよくやり忘れます・・・。 リブート後に root でログインできずに USB スティックで起動し直す羽目になるので地味に面倒です。忘れずにやりましょう。
また、次の initramfs の設定前に 必須ではないけどやっておくと便利な設定たち の中から気分で選んで設定しています。最低限ネットワークは設定した方がいいかなと思います。
initramfs の作成
lvm2 を hooks に追加します。
|
|
initramfs を作成します
|
|
mkinitcpio:
https://wiki.archlinux.org/index.php/Mkinitcpio
Install Arch Linux on LVM: https://wiki.archlinux.org/index.php/Install_Arch_Linux_on_LVM#Adding_mkinitcpio_hooks
grub のインストール
|
|
UEFI 環境によっては指定の場所 /EFI/boot/bootx64.efi
に置かないと起動できないものがあり、--removable
をつけるとそこにインストールしてくれます。手動でコピーしてもいいのですが、ブートエントリが 1 つであればこのオプションが楽です。
|
|
|
|
OS のシャットダウンと起動
緊張の瞬間ですね。シャットダウン後に USB スティックを抜いて起動します。次に起動した時に無事にローカルディスクから起動してくれれば成功です。もし起動しなかった時は USB スティックから起動して必要な箇所を修正します。
|
|
必須ではないけどやっておくと便利な設定たち
いずれ使いそうなパッケージたちのインストール
|
|
管理者ユーザの作成
|
|
Users and groups:
https://wiki.archlinux.org/index.php/Users_and_groups
タイムゾーンとローカライゼーション
サーバとして使うので最低限の設定ですね。デスクトップとして利用される場合は ja_JP.UTF-8 UTF-8
などのロケールを有効にするといいと思います。
|
|
ネットワーク
基本的なネットワーク周りを設定していきます。systemd-networkd はシンプルで使いやすいので気に入っています。
hostname の設定
|
|
nic 名の変更。MAC アドレスか DEVPATH かどちかを指定して固定します。
- MAC アドレスは
ip link show <dev>
で調べられます - DEVPATH は
file /sys/class/net/*
で調べられます
|
|
systemd-networkd 設定ファイルの作成
- DHCP の場合
|
|
- Static の場合
|
|
systemd-networkd 自動起動の設定
|
|
Network configuration:
https://wiki.archlinux.org/index.php/Network_configuration
systemd-networkd:
https://wiki.archlinux.org/index.php/Systemd-networkd
ファイアウォール
iptables
より使いやすくなった(らしい)ntfables
を使ってみたいと思います。私は今回が初めてのチャレンジです。
|
|
デフォルトでは icmp, ipmpv6, ssh が許可されています。インストール直後はこれで困りませんのでこのまま利用します。
|
|
ミラーの選択
|
|
lvm
LVM の discard サポートを有効にします。lvremove などで物理ディスクの領域を必要としなくなった時に破棄してくれるようになります。(この設定は SSD の Trim とは関連しないようです。)
|
|
lvm.conf(5) - Linux man page:
https://linux.die.net/man/5/lvm.confissue_discards - Issue discards to a logical volumes’s underlying physical volume(s) when the logical volume is no longer using the physical volumes' space (e.g. lvremove, lvreduce, etc). Discards inform the storage that a region is no longer in use. Storage that supports discards advertise the protocol specific way discards should be issued by the kernel (TRIM, UNMAP, or WRITE SAME with UNMAP bit set). Not all storage will support or benefit from discards but SSDs and thinly provisioned LUNs generally do. If set to 1, discards will only be issued if both the storage and kernel provide support.
ntpd
一般的な ntpd をセットアップします。お好みで systemd-timesyncd
とか chrony
とかを使ってもいいと思います。
|
|
インターネットマルチフィード(MFEED) が提供してくれている NTP サーバを設定 ntpd を有効にします。
|
|
|
|
NTP:
https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
sshd
|
|
Secure Shell:
https://wiki.archlinux.org/index.php/Secure_Shell
Arch User Repository (AUR)
Arch には、公式リポジトリとは別にコミュニティで運用されている AUR と呼ばれるリポジトリがあります。通常、AUR のパッケージは自分でビルドする必要がありますが、この作業をやってくれるヘルパープログラムがあるのでインストールします。yaourt
というパッケージが人気かつ有名でしたが今は廃止されていました。AUR ヘルパーはいろいろあるのでお好きなものを使えばいいと思うのですが、みんなが使ってるパッケージな方が情報も多くなにかと便利なので、yay
をインストールします。
- makepkg コマンドは root 以外のユーザで実行しないと怒られてしまいますのでご注意ください
- yay コマンドは root 以外のユーザで実行してください
|
|
AUR (en) - yay:
https://aur.archlinux.org/packages/yay/
rsyslog
ElasticSearch に直接ログを投げ込みたいなーともくろんでいるので rsyslog を使います。rsyslog は AUR で提供されているので、yay でインストールします。
|
|
systemd-journald からログを引き取るために imjournal モジュールを追加します。
|
|
|
|
Bash Tab 補完
bash-completion のインストール
|
|
|
|
scop/bash-completion: Programmable completion functions for bash:
https://github.com/scop/bash-completion#Installation