LoginSignup
6
4

More than 3 years have passed since last update.

Arch Linux Installation Battle

Last updated at Posted at 2020-02-09

この記事は,今回,デスクトップ用途で Arch Linux をインストールし,その後基礎的な環境セットアップまで行った戦いの記録を,およそ未来の自分のために簡単に書き残したものです.
基本的には,ArchWiki の Installation guideGeneral 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 ファイルの内容は以下のように編集します.

/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 の末尾を以下のように編集します.

˜/.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 の(自分的に)最低限の設定を書いておきます.

˜/.xmonad/xmonad.hs
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 を書いていれば modSuper(Windows キー),そうでない素の状態なら Alt です.

タッチパッド設定

libinput で管理します.素の状態だとタッチパッドを押し込まないとクリックとして認識してくれないので,タップでクリックできるように設定します.
以下のような /etc/X11/xorg.conf.d/30-touchpad.conf を作成します.

/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

~/.xinitrcexec 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

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

以上です.

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4