この記事は,今回,デスクトップ用途で Arch Linux をインストールし,その後基礎的な環境セットアップまで行った戦いの記録を,およそ未来の自分のために簡単に書き残したものです.
基本的には,ArchWiki の Installation guide や General recommendations を参照しつつ進めます.日本語訳もあります.
今回インストールに使用したマシンは NEC LAVIE Direct PM です.
Arch Linux のインストール
前準備
Arch Linux の USB インストールメディアを準備し,PC に挿します.
PC 起動後すぐのメーカーロゴで F2
を連打し,青い設定画面を立ち上げます.ここで Secure Boot を無効化し,デバイス起動順序も変更(USB device を最上位へ)します.
保存して再起動し,USB から Arch Linux を立ち上げると,自動で root にログインします.
今回キーボードは日本語配列なので,以下のコマンドで読み込んでおきます.
$ loadkeys jp106
パーティショニング
NEC 公式から購入した新品なので Windows10 が入っていますが,デュアルブートはしないので,Windows くんには消えてもらいます.
$ sgdisk -z /dev/nvme0n1
$ sgdisk -n 1:0:+512M -t 1:ef00 -c 1:"EFI System" /dev/nvme0n1
$ sgdisk -n 2:0: -t 2:8300 -c 2:"Linux filesystem" /dev/nvme0n1
/dev/nvme0n1
は環境に合わせて読み替えます.
また,構成は lsblk
で適宜確認できます.
フォーマット
$ mkfs.vfat -F32 /dev/nvme0n1p1
$ mkfs.ext4 /dev/nvme0n1p2
マウント
$ mount /dev/nvme0n1p2 /mnt
$ mkdir /mnt/boot
$ mount /dev/nvme0n1p1 /mnt/boot
システムインストール
ディスクにインストールしていきます.
pacstrap
はそこそこ時間がかかります.
$ wifi-menu # 無線接続
$ vim /etc/pacman.d/mirrorlist
$ pacstrap -i /mnt base base-devel linux linux-firmware
$ genfstab -U -p /mnt >> /mnt/etc/fstab
インストールしたシステムに潜って作業します.
$ arch-chroot /mnt
$ echo "Arch Linux" > /etc/hostname
$ ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ pacman -S vi # なんか入ってなかった……
$ vi /etc/locale.gen
# 以下の行を uncomment
# en_US.UTF-8 UTF-8
# ja_JP.UTF-8 UTF-8
$ locale-gen
$ echo "LANG=en_US.UTF-8" > /etc/locale.conf
$ mkinitcpio -p linux
$ passwd # root のパスワードを設定
ブートローダインストール
難敵ブートローダくんです.Systemd-boot を使います.
$ bootctl --path=/boot install
$ cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
$ pacman -S intel-ucode
$ blkid -s /dev/nvme0n1p2 -o value /dev/nvme0n1p2 >> /boot/loader/entries/arch.conf
$ vi /boot/loader/entries/arch.conf
/boot/loader/entries/arch.conf
ファイルの内容は以下のように編集します.
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=/dev/nvme0n1p2 rw noefi
ブートローダ は GRUB がメジャーっぽいですが,4年くらい前(2016年頃)は GRUB が NVMe 未対応でブートできませんでした.最近は対応してできるようになっているかもしれませんが,調べてないのでわかりません.
【参考】
ArchLinuxをインストールした - ふれめも
VAIO Z で Arch LinuxとWindows 10をデュアルブートする - Qiita
再起動
リブートして本体ディスクから起動しますが,その前にワイヤレス接続のための諸々を入れておきます.
$ pacman -S linux-headers netctl wireless_tools wpa_supplicant dialog net-tools
$ exit
$ umount -R /mnt
$ reboot
うまく起動すれば,インストールは成功です.
インストール後の基本設定
root でログインし,無線接続します.
$ wifi-menu
マシンのキーボードは日本語配列を使うので,設定を書いておきます.
$ echo "KEYMAP=jp106" > /etc/vconsole.conf
ユーザの追加
ログインシェルに Z shell を使いたいので,最初に入れておきます.
ついでに sudo 設定も行います.
$ pacman -S zsh
$ which zsh # /usr/bin/zsh
$ useradd -m -G wheel -s /usr/bin/zsh flare
$ passwd flare
$ visudo
# 以下の行を uncomment
# %wheel ALL=(ALL) ALL
# %wheel ALL=(ALL) NOPASSWD: ALL
$ exit # ログアウト
flare
は私のユーザ名なので,自分のものに読み替えます.
また,sudo
するたびにパスワード入力を求めたい場合は,%wheel ALL=(ALL) NOPASSWD: ALL
をコメントアウトしたままにしておきます.
電源管理
省電力化のための便利アイテムを入れて起動します.
ここからは先程追加したユーザ(root でない)でログインして作業しています.
sudo pacman -S powertop tlp
sudo systemctl enable tlp
sudo systemctl start tlp
AUR helper
R.I.P. yaourt... 代わりに yay を使います.
DL のために Git が必要です.
sudo pacman -S git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ../ && rm -rf yay
X 環境の準備
X Window System 関連を準備します.
$ sudo pacman -S xorg xorg-xinit xorg-drivers xorg-apps
$ lspci | grep -e VGA -e 3D # Intel Corporation UHD Graphics 620
$ sudo pacman -S xf86-video-intel
ドライバの対応表は Xorg - ArchWiki にあります.
X 環境で使うターミナルをインストールします.Termite を入れました.
sudo pacman -S termite
ウィンドウマネージャ
XMonad を使います.XMonad はいいぞ!
$ sudo pacman -S xmonad xmonad-contrib
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
X で XMonad が起動するよう,~/.xinitrc
の末尾を以下のように編集します.
...(略)...
# twm &
# xclock -geometry 50x50-1+1 &
# xterm -geometry 80x50+494+51 &
# xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login
exec xmonad
また, ~/.xmonad/xmonad.hs
に XMonad の(自分的に)最低限の設定を書いておきます.
import XMonad
main = do
xmonad $ defaultConfig
{ terminal = "termite"
, modMask = mod4Mask
}
xmonad --recompile
でコンパイルして反映します.
startx
で GUI(XMonad)に移行します.mod + Shift + Enter
でターミナル起動,mod + Shift + c
でウィンドウクローズ,mod + Shift + q
で XMonad が終了します.上のような ~/.xmonad/xmonad.hs
を書いていれば mod
は Super
(Windows キー),そうでない素の状態なら Alt
です.
タッチパッド設定
libinput で管理します.素の状態だとタッチパッドを押し込まないとクリックとして認識してくれないので,タップでクリックできるように設定します.
以下のような /etc/X11/xorg.conf.d/30-touchpad.conf
を作成します.
Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
EndSection
日本語入力
fcitx で Mozc を使います.
$ sudo pacman -S fcitx-im fcitx-mozc fcitx-configtool
~/.xinitrc
の exec xmonad
の前に設定を書き足します.
...(略)...
# twm &
# xclock -geometry 50x50-1+1 &
# xterm -geometry 80x50+494+51 &
# xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx-autostart &
exec xmonad
fcitx-configtool
で設定画面を開き,Input method を Mozc のみに設定します.
Mozc の IME 設定は /usr/lib/mozc/mozc_tool --mode=config_dialog
で開くことができます.
サウンド管理
sudo pacman -S pulseaudio
pactl
コマンドで音量管理します.
フォント
ターミナル用のフォントとして Ricty を入れます.
本当は yay -S ttf-ricty
をすれば良いだけなのですが,スクリプトの場所の変更が git に反映されていないようで,うまくいきません(2020年2月現在).なので,リポジトリを clone してきて PKGBUILD
中の URL を編集し,手動でビルドします.
$ yay -S ttf-ricty # ricty_generator.sh の DL でコケる
$ sudo pacman -S ttf-inconsolata
$ yay -S ttf-migu
$ git clone https://aur.archlinux.org/ttf-ricty.git
$ cd ttf-ricty
$ vi PKGBUILD
# http://www.rs.tus.ac.jp/yyusa/ricty/ricty_generator-4.1.1.sh を
# http://www.yusa.lab.uec.ac.jp/~yusa/ricty/ricty_generator-4.1.1.sh に変更
$ makepkg -si
$ cd ../ && rm -rf ttf-ricty
【参考】
AUR (en) - ttf-ricty
brewでRictyがインストールできない! - Qiita
以上です.