ArchLinuxインストール手順
ArchLinuxのオレオレインストール手順。GUI環境の構築まで書いている記事がまだまだ少ないので、少しでも助けになれば幸いです。インストール手順記事なんてなんぼあってもええですからね。
基本的にarchwikiに従っているのでそっちも見てね。見なさい。
事前準備
インストールメディアの用意
- どこかしらからisoファイルをダウンロードしてくる
- USBメモリを用意
- Windowsの場合はrufusとかを使ってisoをUSBに書き込む
- このときddモードで作成すること
- なんかisoモードを推奨してくるがこれは罠
- Linuxの場合はddコマンドとかで
インストールメディアから起動
- USBメモリを対象マシンに刺して、BIOSで起動順序をUSBからにする
- 当方はThinkpad/Let's note信者なのでRJ45ポートが付いています。なのでLANケーブルを刺すだけでネットワークの用意が整います。おやあなたのマシンには付いていないのですか??可哀想に。
- 有線ネットワーク疎通確認
ping archlinux.jpip a
- 時刻設定確認
timedatectl status- ntpがacvtiveになっていればOK
ファイルシステム作成
- ディスク確認
lsblk -l- ディスク名を控える
nvme0n1とか
| マウントポイント | パーティション | パーティションタイプ | 容量 |
|---|---|---|---|
| /mnt/boot1 | /dev/efi_system_partition | EFI システムパーティション(ef00) |
最低 300 MiB。複数のカーネルをインストールする場合は、最低 1 GiB。 |
| [スワップ] | /dev/swap_partition | Linux swap(8200) |
512 MiB 以上 |
| /mnt | /dev/root_partition | Linux x86-64 root (/)(8304) |
デバイスの残り容量全て |
cgdisk /dev/nvme0n1- TUIで操作できる
- 必要に応じて既存のパーティションをDELETE
- efiパーティション
- \<new>
- First sector: enter
- Size in sectors:
+2G - Hex code or GUID:
ef00 - Enter new partition name:arch efi(好きに決めて良い)
- swapパーティション
- \<new>
- First sector: enter
- Size in sectors:
+32G - Hex code or GUID:
8200 - Enter new partition name:swap(好きに決めて良い)
- rootパーティション
- \<new>
- First sector: enter
- Size in sectors: enter
- Hex code or GUID:
8304 - Enter new partition name: arch root(好きに決めて良い)
- \<Write>
- [ ]
ls /devでnvme0n1p1,p2,p3があればOK
フォーマット
- EFI システムパーティションを作成した場合、mkfs.fat(8) を使って FAT32 に フォーマット してください。(arch wiki)
mkfs.fat -F 32 /dev/nvme0n1p1
- スワップ 用のパーティションを作成した場合は、mkswap(8) で初期化してください:
mkswap /dev/nvme0n1p2
- ext4 ファイルシステムを /dev/root_partition に作成するには、以下のコマンドを実行:
mkfs.ext4 /dev/nvme0n1p3- 一瞬固まるからビビる
マウント
- root
mount /dev/nvme0n1p3 /mnt
- efi
mount --mkdir /dev/nvme0n1p1 /mnt/boot
- swap
swapon /dev/nvme0n1p2
- [ ]
mountでnvme0n1p1とnvme0n1p3がマウントされているか確認
インストール
- ミラーの選択
/etc/pacman.d/mirrorlistを編集してServer = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$archを追記
- パッケージインストール
pacstrap -K /mnt base linux linux-firmware networkmanager helix vim zsh
システム設定
- fstabの生成
genfstab -U /mnt >> /mnt/etc/fstab
- chroot
arch-chroot /mntzsh
これ以降はpacmanが使える
- タイムゾーン
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtimehwclock --systohc
- ローカリゼーション
helix /etc/vconsole.conf(新規作成)- 必要ならば
KEYMAP=jp106
- 必要ならば
helix /etc/locale.genen_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8をアンコメント
locale-genhelix /etc/locale.conf(新規作成)LANG=en_US.UTF-8を記入
- ホストネーム設定
/etc/hostnameにお好きな名前を記入
- ブートローダー
- 無難にGRUB
pacman -S grub efibootmgr os-probergrub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB- なんかエラー吐いたらmount周りでミスっている可能性。1からやり直した方が早い。
- GRUBいじったらメイン設定ファイルの生成
grub-mkconfig -o /boot/grub/grub.cfg
- micro code
pacman -S intel-ucodegrub-mkconfig -o /boot/grub/grub.cfg
- root password
passwd- 大事
- user passwd
pacman -S sudo- 一応
/etc/shellsにzshがいるか確認 useradd -m -G wheel <USERNAME>passwd <USERNAME>visudo%wheel ALL=(ALL:ALL) ALLのコメントアウトを解除(結構下の方にある)
再起動
exit- chroot環境から抜ける
- zshで作業していた場合、2回打つ。
arch-chroot /mnt ...が表示されたらOK
reboot
ここまでが一般的なインストール手順。
この状態で起動すると、いつもの真っ暗な画面にカーソルがチカチカするターミナルが立ち上がる。サーバー用途の方はこのままコマンドラインでの作業を進めてください。インストール素振りの方は初めに戻ってやり直しましょう。
日常使いの方は何らかのGUIを入れたくなるでしょう。
一旦LinuxGUIの理解に必要な用語を簡単に整理しておきますか。
X Window System(X11)
GUIの土台として長く用いられてきた表示システム。キーボード/マウスの操作を管理し、アプリケーションから飛んでくる要請に応じて画面のどこに何を表示するかを司る。 Xはサーバー/クライアントシステムを採用しており、実際に画面にコンテンツが表示される流れは以下のようになる。
アプリケーション → Xクライアント → Xサーバ → GPU/ディスプレイ
Xは正確には表示プロトコル。リファレンス実装としてXorgがある。
Window Manager
ウィンドウの位置や装飾を司る。これによってマウスでウィンドウの縁をドラッグして移動したり、最大化/最小化したりできるようになる。 windowsのようにウィンドウを自由に移動したり重ねたりできるFloating型や、一つ一つのウィンドウを画面に敷き詰めていくTiling型などがある。
Xを使う場合、ウィンドウの構築はWindow Manager、アプリ描画はXサーバーと役割を分担してGUIを実現している。
Wayland
色々ゴチャゴチャ取り込んで塊魂の終盤みたいに成り果てたXに対して、後継として開発されたのがWayland。Wayland Compositorという合成エンジンがXサーバーに代わって直接描画管理を司り、ついでにWindow Managerの役目も務めてくれる。なんだこれすげえ。セキュリティも向上しているらしい。
Desktop Environment
デスクトップ環境。ウィンドウマネージャーに加えてタスクバーとか通知とか色々詰め込んだオールインワンパッケージ。要するに”普通のパソコン”になれる。最大手はGNOMEだが、他にもKDE PlasmaとかXfceとか色々あるので好みの環境を選ぼう。
Display Manager
ログイン画面を表示する。名前がややこしいんじゃ。ログイン処理を終えたらデスクトップ環境を立ち上げてすっと消える存在。
さて時代はWaylandなのでそれに対応したアプリケーションを選定したいところです。シンプル軽量エレガントを家訓としているArchユーザーはGNOMEなどという2Tトラック重量級環境をインストールしてはいけません。
以下はコンポジターとしてNiriを入れる手順を紹介します。スクロール型最高。画面の領域を気にしなくて良いのは本当にストレスフリー。みんな使おう。
ネットワーク設定
- 立ち上げた直後はまだインターネットに接続できないはず
- 入れ忘れていたら
sudo pacman -S networkmanager sudo systemctl enable NetworkManagersudo systemctl start NetworkManagernmcli device statusで使用したいDEVICEのSTATEがconnectedになっていることを確認- もしなっていなければ
nmcli device connect enp...
- もしなっていなければ
ping archlinux.jpで疎通確認
AUR
- 別に必須ではないが、今後のためparuを入れます
- rustの用意
sudo pacman -S rustuprustup default stablerustup update
sudo pacman -S --needed base-devel gitgit clone https://aur.archlinux.org/paru.gitcd parumakepkg -si
結構時間かかるのでこの間におやつでも食べよう
wayland環境構築
ぶちこめー
- paru -S niri fuzzel alacritty firefox
- xdg-desktop-portalはxdg-desktop-portal-wlrを選択
- jackを聞かれたらpipewire-jackを選択
これで一旦niriは起動するはず。試しにコマンドラインでniriと打ち込むと、灰色のデスクトップが立ち上がる。デフォルトではsuper(windowsキーかコマンドキーかAltキーのどれか)+Tでターミナル(alacritty)が起動、Super+Dでランチャー(fuzzel)が起動。
wayland toolsとかはniriの依存関係で自動的に入れてくれる。
Display Manager
ここではgreetdという軽量マネージャーを使う。
- paru -S greetd greetd-tuigreet
- systemctl enable greetd
tuigreetは名前の通りTUIでログイン画面を表示するプログラム。一旦ここで再起動してみると、画面中央にログイン画面が表示される。味気ない?じゃあ他のgreeterを入れよう。
デフォルトではログイン後にいつものコンソールが立ち上がるが、これをniriを立ち上げるようにすれば快適デスクトップの出来上がり。
/etc/greetd/config.tomlをいじって設定する。--cmdが、ログイン処理後に実行するコマンド。
...
[default_session]
command = "tuigreet --cmd niri-session"
...
日本語入力
paru -S fcitx5-im fcitx5-mozcfcitx5-configtoolで設定を開き、Mozcを右側のAvailable Input Methodから左側のCurrent Input Methodに移動させる。Mozcが右側に表示されていない場合は下の方にあるOnly show current languageをオフにすると出てくるはず。Global Options > Hotkey > Toggle Input Method から入力切り替え方法を設定できる。Temporarily Toggle Input Methodは邪魔なので削除(Empty)することを推奨。他のキーコンフィグと競合して勝手に入力が切り替わったりしてしまう。以前スペースバー押すたびに日英切り替わって発狂しかけた。- 何か足りない(Qtとか)と言われたら言われるがままに入れれば良し。
音声周り
paru -S alsa-utils pipewire pipewire-pulse wireplumberalsamixerで音量調節できる。インストール後はデフォルトで音声がミュートになっているので慌てないように。
Bluetooth
paru -S bluez bluez-utilsbluetoothctlscan on- 接続したい端末をペアリングモードにする
- bluetoothctl側で端末が見つかるはずなので、そのアドレス(AA:BB:CC:DD:EE:FFみたいなやつ)を控える
- 邪魔なら
scan off pair <アドレス>connect <アドレス>- 接続に成功したら、次回移行は
bluetoothctl connect <アドレス>で一発
完了!
お疲れ様!
あとはArchwikiの推奨事項を読みながらまったりArchライフを楽しみましょう。