【令和最新版】Arch Linuxのインストール方法と日本語環境設定
構築済みARUみたいなリポジトリは追加しない
ARUをビルドしてあるような便利そうなリポジトリが時々ありますが
バージョンの衝突を引き起こすことがあるのでやめておきましょう。
カーネルなんかはビルドが面倒なので便利ですけど
その際にもビルド済みのカーネル単独で提供している小型のリポジトリがある場合はそちらを優先していきます。pyenvでglobalのpythonを変更しない
ピンポイントすぎる話ですが
Arch LinuxではAURのパッケージのビルドの際に
/usr/bin/pythonではなくpythonコマンドを利用する場合がるので
pyenvでglobalのpythonを変更しているとハマります。
これはAURでパッケージを配布したユーザーが
内部のスクリプトで"python"と決め打ちしてるのが原因なので回避は結構大変です。
これを防ぐために、pyenvなどを利用する際には、globalのpythonのバージョンを変更しないようにしておきましょう。KDEを使わない
KDEは不安定なので使わないことをオススメします。
日本語環境設定でKDEは特有のハマり箇所が結構あります。 -->
今回解説すること
単なるインストールと起動までの解説ではなく
快適に利用できる状態にまで持っていく方法を詳細に解説していきます。
可能なことは全部盛りで導入していくので
必要ない部分は適宜飛ばして作業してください。
Btrfsで圧縮とTrimを有効化しておきます。
SSDかつデュアルブートなしで使うことを想定
インストール手順の概要
細かい手順を解説する前に
ざっくりと手順の概要を列挙しておきます。
Arch Wikiにはない、日本語環境設定特有の手順もあるので最初に眺めておきましょう。
- 環境共通のインストール手順の実行
- cfdiskを利用したパーティショニング (ホームディレクトリ暗号化の設定あり)
- マウント(ここでBtrfsのTrimと圧縮を有効にしておく)
- https://www.reddit.com/r/archlinux/comments/dbip45/is_there_any_advantaged_in_using_systemd/
- nanoの使い方を予習
- pacmanの最低限の設定
- インストールとchroot (networkmanagerとbluezとnanoを忘れずに)
- systemd-hooksを利用する(起動時間が短いから) (暗号化特有の手順あり)
- systemd-bootの設定 (起動時間が短いから) (暗号化特有の手順あり)
- ユーザーの作成
- ユーザーにsudo権限を与える
- 暗号化ホームパーティション特有の設定 (設定しないとログイン時にマウントしてくない)
- pacmanの最低限の設定
- 【オプション】zshの導入
- 日本語環境の必須パッケージのインストール(入力関連パッケージ(fcitx5-mozc)と最低限のフォント)
- 日本語入力の最小限の設定 (CUI上でも簡単に行える設定はこの段階で実行しておきます)
- ホームディレクトリ名の英語化の設定 (日本語のままでは一部ソフトでハマるので推奨)
- Xfceのインストール (DEは好みがあると思いますが、とりあえずXfceで話を進めます)
- DMのインストール
- systemd enableでネットワークとDMとBluetoothを有効化
- 再起動 (ここからはGUI上で作業可能なはずです)
- 【オプション】ccacheの導入、キャッシュ容量の設定、環境設定
- 【オプション】pacmanの設定 (ビルド時の最適化など)
- paruの導入 (AURの管理ソフト、事実上必須)
- 日本語環境特有の推奨パッケージのインストール (追加フォントなど、強く推奨、結構時間かかります)
- フォントの設定 (Xfceのフォントと、コンソールのフォント、文字化け対策でシステムのフォントも変更)
- 【オプション】フォントの更に細かい設定 (ヒンティングなどを変更してギザギザ感を軽減しておく)
- 【オプション】zramの導入 (特にデメリットはないので導入を推奨、設定はFedoraの初期設定を流用します)
環境共通のインストール手順の実行
インストール用のDVD(USB)を起動したら
最初にキーボードレイアウトを変更しておきます。
loadkeys jp106
これで準備完了
cfdiskを利用したパーティショニング
cfdiskを使ってgptでパーティショニングを実行していきます。
今回の構成は
/dev/sda1 EFI System (2GB程度)
/dev/sda2 Linux FileSystem (ルートとswapで使う、多くても120GBで十分)
/dev/sda3 Linux FileSystem (ユーザーのホームディレクトリ用、個別に暗号化しないならsda2とまとめてもいい)
上記のような構成にしておきます
bootパーティションは作るべき?
デュアルブートやBootの暗号化をしないのであれば
BootもまとめてEFIパーティションに突っ込むほうが管理が楽です。
他のディストリビューションのようなecryptfsでのフォルダ単位での暗号化ではダメ?
ecryptfsでの暗号化をすると
ファイル名の最大長の制限が短くなるので
ユーザーディレクトリ内でのアプリの動作で不具合が出ることがあります。
またパフォーマンスも悪いのでオススメはしません。
luksの作成
sda2とsda3をluksでフォーマットしていきます。
確認画面では、大文字で「YES」と打ち込まないと続行できないので注意。
cryptsetup luksFormat /dev/sda2 # 起動時に入力する解除パスワードを設定 cryptsetup luksFormat /dev/sda3 # ユーザーのログインパスワードと同一にしておく
フォーマットが終わったらluksを開いておきましょう
cryptsetup open /dev/sda2 root cryptsetup open /dev/sda3 userdir
lvmの作成
/dev/sda2にlvmを作成しておきましょう
pacman -S lvm2 pvcreate /dev/mapper/root vgcreate crypt /dev/mapper/root lvcreate -L 20G crypt -n swap # Swapパーティションの作成、ハイバーネートしないなら不要 lvcreate -l 100%FREE crypt -n root # ルートパーティション
フォーマット
フォーマットしていきます
mkfs.vfat /dev/sda1 mkfs.btrfs /dev/mapper/crypt-root mkfs.btrfs /dev/mapper/userdir mkswap /dev/mapper/crypt-swap
パーティションを確認する
fdisk -l
特にdev/sda1が EFI Systemになっているかを念入りに確認してください。
ここが違っていた場合、作業終盤で最初から仕切り直しになります。
パーティションのマウント
フォーマットが完了したらマウントしましょう
マウントオプションが入るので注意
ホームディレクトリ用のパーティションはまだマウントしなくていいです。
mount -o compress-force=zstd:1,discard=async /dev/mapper/crypt-root /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot swapon /dev/mapper/crypt-swap
「zstd:1」はFedoraのデフォルトで
Fedoraコミュニティの計測の結果、最もパフォーマンスの利益が大きいと判断された値。
compressにするかcompress-forceかに関しては
個人的にはcompress-force=zstd:1で何の問題もなく、容量の削減効果も大きいのでこちらを勧めたいのですが
とりあえずFedoraのデフォルトということで通常のcompressオプションも十分にありかと思います。
forceの有無に関しては現時点ではFedoraコミュニティでも計測結果が出ていないので
今後どちらが良いと判断されるかはまだ不明。
nanoの使い方の予習
Arch Linuxのインストールでは
マウス操作可能なテキストエディタを利用しません。
今回はnanoという比較的初心者にも優しいエディタで解説します。
その前に軽く操作を予習しておきしましょう。
保存 Ctrl + s
終了 Ctrl + x
切取 Ctrl + k
貼付 Ctrl + u
コピ Alt + 6
取消 Shft + Alt + u
とりあえず上記の6操作を覚えておけば大丈夫です。
pacmanの設定
この後のインストールを高速化させるために
並列ダウンロードを有効化しておきます。
この設定はインストーラー内でしか使われないので注意
nano /etc/pacman.conf ParallelDownloads = 5 # ← この行のコメントアウトを外しておく
pacstrapの実行
ディスクにArch Linuxの必須パッケージをインストールしておきます。
この後の作業で使う一部パッケージと
無線LANやBluetooth関連の必須パッケージもインストールしておきます。
pulseaudioもこの段階でインストールしておきましょう
(pipewireはイヤホンとの切り替えで不具合が出る場合があるので、最初にpulseaudioで動作確認してから切り替えることを推奨)
最後のintel-ucodeは、AMDユーザーの方はamd-ucodeに置き換えてください。
pacstrap /mnt base base-devel lvm2 linux linux-firmware nano networkmanager bluez bluez-utils pulseaudio intel-ucode
fstabの作成
genfstab -U /mnt >> /mnt/etc/fstab
chroot
arch-chroot /mnt
タイムゾーンの設定
ln -sf /usr/share/zoneinfo/Japan /etc/localtime timedatectl set-timezone Japan
pacman -S nano-syntax-highlighting## 言語関連の最低限の設定
nano /etc/locale.gen ja_JP.UTF-8 UTF-8 # ← ここのコメントアウトをはずす言語設定を作成
locale-gen言語をセット
nano /etc/locale.conf LANG=ja_JP.UTF-8キーボードレイアウトをセット
nano /etc/vconsole.conf KEYMAP=jp106
locale -a
hostnameの設定
hostnameのセット
nano /etc/hostname <hostname> # なんでもいい
nano /etc/hosts 127.0.0.1 localhost ::1 localhost 127.0.1.1 <hostname>
mkinitcpioの設定
今回は起動が高速なsystemd hooksを採用します。
順番も大事なのでそのまま書き写してください。(HOOKS=(xxxx)の部分)
nano /etc/mkinitcpio.conf # usr, fsck and shutdown hooks. HOOKS=(systemd autodetect modconf block keyboard sd-vconsole sd-encrypt lvm2 filesystems fsck) # COMPRESSION
上記のようにセットしておく。
完了したら更新
mkinitcpio -P
ブートの設定
今回は起動が高速なsystemd-bootを採用します。
最初に解説したパーティション構造を前提にするので
独自のパーティション構造を採用した場合には適宜読み替えてください。
とりあえずEFI関連のインストール
パーティションの作り方を間違えているとここで失敗します。(振り出しに戻る)
bootctl install
ローダーの設定
nano /boot/loader/loader.conf default arch.conf timeout 4 # ←慣れたら0に設定しなおしてください。スペースを押しながらの起動で開けます。 console-mode max editor no
エントリーの設定。
UUIDを打ち込むのが面倒なので最初に貼り付けておきます。
blkid >> /boot/loader/entries/arch.conf
エントリーを編集します。
AMDの場合はintel-ucodeをamd-ucodeに置き換えてください。
先程コピーしたIDをうまく活用しながら完成させましょう。
nano /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options luks.uuid=/dev/sda2のUUID luks.name=/dev/sda2のUUID=crypt luks.options=discard root=UUID=/dev/mapper/cryptーrootのUUID resume=UUID=/dev/mapper/cryptーswapのUUID rw
zsh等のインストール
あとで楽になるので、この段階でzshをインストールしておきます。
pacman -S zsh
ユーザーの作成
とりあえずrootを作成
passwd
ユーザーを作成
useradd -m -G wheel -s /bin/zsh ユーザー名
パスワードを割り当て
このとき、最初に作ったユーザーの暗号化ディレクトリ用のパーティションと同じパスワードに設定してください。
passwd ユーザー名
ユーザーにsudoを付与
一応sudoが入っているか確認
pacman -S sudo
wheelを編集します
EDITOR=nano visudo
スクロールすると
「%wheel ALL=(ALL) ALL」という行があるので
コメントアウトを外して保存します。
## Uncomment to allow members of group wheel to execute any command %wheel ALL=(ALL) ALL
暗号化ホームディレクトリの設定
ログイン時に、最初に作成したホームディレクトリ用の暗号化パーティションをマウントするように設定しておきます。
暗号化ホームディレクトリを作ってない場合はこの作業は不要です。
必要なパッケージをインストール
pacman -S pam_mount
pamの編集
nano /etc/pam.d/system-login auth required pam_shells.so auth requisite pam_nologin.so auth optional pam_mount.so ← 追加 auth include system-auth account required pam_access.so account required pam_nologin.so account include system-auth password optional pam_mount.so ← 追加 password include system-auth session optional pam_loginuid.so session optional pam_keyinit.so force revoke session optional pam_mount.so ← 追加 session include system-auth (・・・以下略)
マウントオプションなどの設定
最初に対象となるディスクのUUIDをコピーしておきます
要はホームディレクトリ用に切ったパーティションのUUIDを引っぱっておきます。
blkid | grep sda3 >> /etc/security/pam_mount.conf.xml
次に、メモ用にコピーしたしておいたUUIDを利用して
設定を完成させましょう。
メモ用のメッセージが設定ファイルの末尾に付与されているのでコピーを駆使してください。
メモ部分が残ったままにならないように注意してください。
(長いですが打ち込まないと起動しないので頑張りましょう)
nano /etc/security/pam_mount.conf.xml <!-- requires ofl from hxtools to be present --> <logout wait="0" hup="no" term="no" kill="no" /> <!-- pam_mount parameters: Volume-related --> <volume user="ユーザー名" fstype="crypt" path="/dev/disk/by-uuid/先程メモしたUUID" mountpoint="/home/user" options="crypto_name=userdir,compress-force=zstd:1,discard=async" /> <mkmountpoint enable="1" remove="true" /> </pam_mount>
この後の作業で使うのでマウントしておきます
mount -o compress-force=zstd:1,discard=async /dev/mapper/userdir /home/ユーザー名
ちゃんとマウントされているか確認しておきます
lsblk
userdirの右端の項目が/home/"ユーザー名"になっていればOK
ホームディレクトリの権限をユーザーに戻す
この時点ではホームディレクトリなのにユーザーにアクセス不可な状態ですので
ホームディレクトリの権限をユーザーに戻します
chown -R ユーザー名:ユーザー名 /home/ユーザー名
pacmanの最低限の設定
ここから大量のインストールが入るので
pacmanの並列ダウンロードを有効化しておきます。
nano /etc/pacman.conf ParallelDownloads = 5 # ← この行のコメントアウトを外しておく
日本語環境の必須パッケージのインストール
日本語の表示と入力に使うパッケージをインストールします。
zshパッケージをインストールします。
pacman -S fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt noto-fonts-cjk## 日本語入力の最小限の設定 ログイン後に日本語入力が可能になるように設定を加えておきます。 打ち間違いに注意してください。 sudo -u ユーザー名をつけておかないと 後で編集が難しくなります。
sudo -u ユーザー名 nano /home/user/.pam_environment GTK_IM_MODULE DEFAULT=fcitx5 QT_IM_MODULE DEFAULT=fcitx5 XMODIFIERS DEFAULT="@im=fcitx5"## ディレクトリ名の英語化
pacman -S xdg-user-dirs sudo -u ユーザー名 LANG=C xdg-user-dirs-update英語のディレクトリが出来上がっていたら成功
ls /home/ユーザー名## デスクトップ環境とディスプレイマネージャーのインストール 好みはあると思いますが、今回はXfceで話を進めます。 途中の選択肢は特にこだわりがなければデフォルトにしておくと問題を抑えられます。
pacman -S xorg xfce4 xfce4-goodies lightdm lightdm-gtk-greeter## Xfce用の追加パッケージのインストール (ゴミ箱など) Xfceは初期状態ではゴミ箱すらないので追加のパッケージを導入しておきます。
pacman -S gvfs network-manager-applet blueman## ブラウザのインストール ブラウザをインストールしておきます ここは特にこの先の解説には影響しないので好みで選んでください
pacman -S firefox firefox-i18n-ja## systemd enableでネットワークとDMとBluetoothを有効化 再起動の前に必要なサービスを有効化しておきます
systemctl enable lightdm systemctl enable bluetooth systemctl enable NetworkManager## 再起動 一旦再起動します。 簡素なパスワード入力画面になるので そこで最初に設定した暗号化解除用のパスワードを入力してください。
exit exit reboot## キーボードレイアウトを調整する ログイン後にキーボードレイアウトがjp106から外れている場合があります。 これについては別記事で対処方法をまとめたので修正しておきましょう。 - 日本語環境の必須パッケージのインストール(入力関連パッケージ(fcitx5-mozc)と最低限のフォント) - 日本語入力の最小限の設定 (CUI上でも簡単に行える設定はこの段階で実行しておきます) ## ccacheの導入 ここからはARUはふんだんに扱う作業となります。 早い話がビルドをしまくるので、ccacheを導入しておきましょう。
sudo pacman -S ccacheインストール完了したら .zshrcに以下を追記します。
nano ~/.zshrc # ccacheの設定 export PATH="/usr/lib/ccache/bin/:$PATH"最大キャシュ容量も設定しておきましょう 自身のストレージ容量とのバランスを見て決めてください。 例えば50GBまでに設定する場合にはこのようにします。
ccache -M 50G## pacmanの設定(ビルド関連) AURを扱うにあたって pacmanのビルド関連の設定も多少煮詰めておきます。 好みに合わせて、複数コアでのビルドを許可する設定を追加しておきます。
sudo nano /etc/makepkg.conf MAKEFLAGS="-j$(nproc)" # ← コア数分だけ並行してビルドする設定他にも最適化の調整をしたい場合には このファイルで調整をしてみてください。 ## paruの導入 いよいよAURの管理ソフトparuを導入します。 以下のコマンドで導入しましょう。 途中で必要パッケージを聞かれるので適宜追加してください。
sudo pacman -S git git clone https://aur.archlinux.org/paru.git cd paru makepkg -si## paruの設定 デフォルトでは1つだけ使いにくいオプションがあるので設定変更します。
sudo nano /etc/paru.conf BottomUp # ← ここのコメントアウトを外しておく## 日本語フォントのインストール paruの導入が完了したら いよいよ日本語フォントのインストールに入ります。 ビルド時にコケるので 先にビルドで扱う依存パッケージをインストールしておきます。 上書き警告が出ますが気にせず続行してください。
paru -S unzip-iconvとりあえずAURで入手可能な日本語フォントを並べておくので ここから適当に抜き出してインストールしてください。
paru -S adobe-source-han-sans-jp-fonts adobe-source-han-serif-jp-fonts otf-ipaexfont otf-ipafont otf-ipamjfont ttf-hanazono ttf-sazanami mplus-font nerd-fonts-noto-sans-mono nerd-fonts-noto-sans-regular-complete nerd-fonts-ubuntu-mono noto-fonts-sc otf-harenosora-mincho otf-kodomo-maru-gothic otf-kodomo-maru-gothic-narrow otf-oriental otf-source-han-code-jp otf-takao otf-takaoex otf-takaomj ttf-choc ttf-genshin-gothic ttf-ipa-mona ttf-kh-dotfont ttf-kochi-substitute ttf-komatuna ttf-koruri ttf-meguri ttf-meslo-nerd-font-powerlevel10k ttf-mgenplus ttf-migu ttf-mikachan ttf-misaki ttf-mona ttf-monapo ttf-mplus ttf-ms-win10-auto-japanese ttf-mutsuki ttf-nasu ttf-noto-sans-kannada ttf-oradano-mincho ttf-osaka-sans-serif ttf-ricty ttf-ricty-diminished ttf-rounded-mplus ttf-sawarabi-gothic ttf-sawarabi-mincho ttf-ume ttf-umeplus ttf-vlgothic## 細かいフォントの設定 フォントのヒンティングなどの設定を行うと 字が見やすくなるとか。
nano /etc/fonts/conf.d/71-no-embedded-bitmaps.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> <edit mode="assign" name="hintstyle"> <const>hintnone</const> </edit> </match> </fontconfig>## Zramの導入 必要パッケージを導入して
sudo pacman -S zram-generator sudo pacman -S zram-generator.conf zramctl設定はFedoraのデフォルトを流用。
sudo nano /usr/lib/systemd/zram-generator.conf [zram0] zram-fraction = 1.0 max-zram-size = 8192