SONY VAIO Pro 13にArch Linuxをインストールしてみた
以前SONY VAIO Pro 13にWindows 11をインストールしたが、このWindowsはいにしえのUSBオシロの動作確認のために32bitのWindows 10に上書きされた。その後、USBオシロが32bit環境でなくても動かせるようになったのでこの32bit環境は不要になった。今回は、32bitのWindowsを吹き飛ばすついでに、以前からやるやる詐欺を連発していた𝐴𝑟𝑐ℎ 𝐿𝑖𝑛𝑢𝑥 𝐼𝑛𝑠𝑡𝑎𝑙𝑙 𝐵𝑎𝑡𝑡𝑙𝑒を決行することにした。
インストールメディアの準備
公式ミラーからISOイメージをダウンロードし、すでに外付けSSDに用意してあったVentoyのフォルダにぶちこんだ。
ちなみにこのISOの項目選択画面はなぜかクソほど重いので、余計なキーは押さず画面が出たらEnterを押すだけに留めるとよい。
また、ISOが古いとPGP署名のエラーでパッケージがインストールできないことがあるので、最新のISOを使うことをおすすめする。
インストール
基本的に公式wikiのインストールガイドに従うだけなのだが、日本語版は若干情報が古い部分があるので英語版を参照したほうがいいかもしれない。他の記事を参考にする場合も公式ドキュメントを合わせて読むとよい。
以下は自分用のメモ。とりあえず動けばいいという構成。たぶんどこかしらにガバがある。
ライブ環境の設定
キーボードレイアウトをJISにする。
loadkeys jp106
Wi-Fiに接続する。
iwctl --passphrase (パスワード) station wlan0 connect (SSID)
一応ping
でインターネットに接続できることを確認しておく。
ファイルシステムの準備
パーティションを切る。推奨の容量はESPが1 GiB、ルートが32 GiBらしい(日本語版だと残り全部とかいう何の役にも立たない表現だった)。スワップ領域も4 GiB求められているが無視した。もし必要になってもスワップファイルのほうが柔軟でよいと思われる。ルートは末尾に作った。
fdisk -l # 対象のドライブを確認
gdisk /dev/sda
# o 新規パーティションテーブル
# y 確認
# n 新規パーティション
# Enter パーティション番号: デフォルト
# Enter 開始セクタ: デフォルト(2048)
# +1G 終了セクタ: 開始セクタから1 GiB
# ef00 パーティションタイプ: ESP
# n 新規パーティション
# Enter パーティション番号: デフォルト
# -32G 開始セクタ: 末尾から32 GiB
# Enter 終了セクタ: デフォルト(末尾)
# Enter パーティションタイプ: デフォルト(8300)
# w 書き込み
# y 確認
フォーマットしてマウントする。ラベルをつけておくと後で幸せになれるかもしれない。
fdisk -l # 切ったパーティションを確認
mkfs.fat -F 32 -n SVP132ESP /dev/sda1 # いい感じのラベルをつけておくとrEFIndとかで判別しやすくなるかも?
mkfs.ext4 -L ArchRoot /dev/sda2
mount /dev/sda2 /mnt
mount -m /dev/sda1 /mnt/boot # -mはmkdir
本体のインストール
パッケージをインストールする。ミラーはインストール後の環境に引き継がれるが、どうせ自動更新するようにするので適当でいいかも。
reflector --save /etc/pacman.d/mirrorlist -p https -c JP -l 5 --sort age # ミラー設定
pacstrap -K /mnt base linux linux-firmware intel-ucode networkmanager msedit sudo # お好きなように
もしここでPGP署名のエラーが出た場合は、以下のように更新した後、もう一度pacstrap
を実行する。
pacman -Sy archlinux-keyring
なお、この操作は禁じられている「部分的なアップグレード」で、本来はすべてのパッケージを更新するpacman -Su
を続けて実行しなければならないが、archlinux-keyring
だけバージョンが異なっていても不整合は起きないし、ライブ環境は壊しても問題ないし、そもそもRAMディスクの容量が足りず-Su
はできないので、ここでは問題ない。
設定
基本設定
fstabを生成する。-L
か-U
か何も指定しないかはお好みで。
genfstab -L /mnt > /mnt/etc/fstab
インストールした環境に入る。
arch-chroot /mnt
タイムゾーン設定、ハードウェアクロックをUTCとして同期。
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
ロケール、キーボードレイアウト設定。
msedit /etc/locale.gen
# en_US.UTF-8とja_JP.UTF-8のコメントアウトを解除
locale-gen
echo LANG=ja_JP.UTF-8 > /etc/locale.conf
echo KEYMAP=jp106 > /etc/vconsole.conf
ホスト名を設定。
echo (ホスト名) > /etc/hostname
rootパスワードを設定。
passwd
# パスワード入力
ブートローダのインストール
ブートローダとしては、Windowsとのデュアルブートに対応するため、無難にsystemd-bootをインストールする。また、systemd-bootには同じESP以外から起動する機能はないので、USBメモリから起動したい時とかのためにrEFIndとEFI Shellのどちらかまたは両方もインストールしておく。rEFIndをインストールする際は、systemd-bootを後からインストールすることでUEFIのブートエントリでsystemd-bootが先に来るようにする。
pacman -S refind edk2-shell
refind-install
cp /usr/share/edk2-shell/x64/Shell.efi /boot/shellx64.efi
bootctl install
systemd-bootの設定を行う。最後に起動したエントリで起動するようにする。
echo default @saved >> /boot/loader/loader.conf
Arch Linux本体のエントリを作成する。ラベルを付けていたおかげでUUIDを書く必要がなく楽で保守性が高い。
# /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=LABEL=ArchRoot rw
rEFIndのエントリも用意する。
# /boot/loader/entries/refind.conf
title rEFInd
efi /EFI/refind/refind_x64.efi
WindowsやEFI Shellは自動で検出されるため何も書かなくてよい。
Linux単品であればEFIブートスタブを使いたいところだが、このVAIOのUEFIは馬鹿でブートエントリを無視したり忘れたりするので、引数とかを埋め込める(?)Unified Kernel Imageみたいなのを使うべきかもしれない。他に有名なブートローダにはGRUB2があるが、融通の利かない遺物のためおすすめしない。systemd-bootは機能を絞っている代わりに高速かつ簡潔な設定ファイルで管理でき、rEFIndは自動検出機能、EFI Shellは手動操作によって設定なしで柔軟性を持たせられるので、これらを使えるようにしておけばだいたいなんとかなる。レガシBIOS? 知らん。
再起動
exit
umount -R /mnt
reboot
なお、環境によっては(?)chroot環境ではbootctl
が正しく動作しないことがあるようなので、起動できなかったらライブ環境に戻って頑張ってなんとかする。
インストール後の設定
これもだいたい公式wikiのガイドに従うだけでよい。自分用にまとめておく。
rootでログインし、まだGUIを導入していなくてコンソールが文字化けするのでLANG=C
で一時的に英語にする。
ユーザの追加
useradd -m -G wheel -s /bin/bash (ユーザ名)
passwd (ユーザ名)
# パスワード入力
sudoの設定
wheel
グループのユーザがsudo
を使えるようにする。
EDITOR=msedit visudo
# %wheel ALL=(ALL) ALL のコメントアウトを解除
保存したらrootから抜け、追加したユーザでログインし直す。LANG=C
をもう一度。
rootアカウントを直接使えないようにする。rootにログインしたままやるとsudo
の設定を間違えていても気付けず詰む可能性がある。
sudo passwd -l root
ネットワーク
NetworkManager
を有効化し、Wi-Fiの設定を行う。
sudo systemctl enable --now NetworkManager
nmtui
# Wi-Fi設定
pacmanのミラー更新の自動化
Reflectorの設定を行う。インストール時に実行したときの引数をそのまま設定すればよいが、実はほぼ元々書いてあるままなので追加するのは地域指定くらい。
sudo msedit /etc/xdg/reflector/reflector.conf
# --save /etc/pacman.d/mirrorlist --protocol https --country Japan --latest 5 --sort age
タイマを有効化する。
sudo systemctl enable --now reflector.timer
デスクトップ環境の設定
Wayland対応で見た目が「普通」なKDE Plasmaを使う。ディスプレイマネージャは公式推奨らしく一緒に入ってくるSDDMを使う。日本語フォントはNoto CJKを使う。特に好きなわけではないが、英数フォントの選択肢にもNotoがあるので統一感を出すために選ぶ。意外とヒンティングがまとも。ついでにWindowsでお馴染みCascadia Mono/Codeも入れておく。
sudo pacman -S plasma-meta konsole dolphin noto-fonts-cjk ttf-cascadia-code
# フォントでnoto-fontsを選ぶ以外はデフォルト
sudo systemctl enable --now sddm.service
日本語入力
IMフレームワークとしてFcitx5を、IMエンジンとしてSKKを使う。レガシなX11環境を積極的に切り捨てるため、IMモジュール(互換レイヤ的なやつ?)のfcitx5-gtk
とfcitx5-qt
はインストールしない。XWaylandも見捨てるためXMODIFIER=fcitx
も設定しない。なお、もしIMモジュールを使用する場合でも、GTK_IM_MODULE=fcitx
やQT_IM_MODULE=fcitx
といった環境変数はグローバルには設定しない(X11時代の記事に惑わされないよう注意)。
sudo pacman -S fcitx5 fcitx5-configtool fcitx5-skk
KDEシステム設定の「仮想キーボード」を開き、「Fcitx 5」を選択する。
systemsettings kcm_virtualkeyboard &
# Fcitx 5を選んで適用
KDEシステム設定の「入力メソッド」を開き、もろもろ設定する。
fcitx5-configtool & # 画面が遷移する
「入力メソッドオフ」から「キーボード - 英語」を消して「キーボード - 日本語」を追加し、「入力メソッドオン」に「SKK」を追加する。入力メソッドがレイアウトと一致しないという警告が上に出るので「修正」を押し、適用する。
Chromiumではchrome://flags
で「Preferred Ozone Platform」を「Auto」か「Wayland」に設定するとWaylandネイティブの入力ができるようになる。Microsoft EdgeではGUIに設定は無いが、設定ファイルを配置することで同様の効果が得られる(後述)。それ以外のElectronなどの場合はデスクトップエントリを編集するなどしてコマンドラインオプションを追加する。他にも違ったオプションが必要なこともあるらしい。
個人的な設定
Windowsフォントのインストール
Notoを使い続けるのは癪なのでWindows(後からインストールした)のフォントを拝借する。
sudo mount -rm /dev/sda2 /mnt/c/
sudo mkdir /usr/local/share/fonts/
sudo mkdir /usr/local/share/fonts/Windows/
sudo cp /mnt/c/Windows/Fonts/YuGoth*.ttc /usr/local/share/fonts/Windows/
sudo cp /mnt/c/Windows/Fonts/yumin*.ttf /usr/local/share/fonts/Windows/
sudo fc-cache --force
UIとかの設定
個人的な好みの設定をメモしておく。ちゃんと使うならdotfilesを用意しておくとかするのだろうが、遊ぶだけなのでGUIでぽちぽちする。
タスクバー的なやつを右クリック→「代替を表示…」→下の説明が「アイコンとテキストを表示するウィンドウバー」のやつ(上の名前は嘘)を選ぶ。
もう一度右クリック→「アイコンだけのタスクマネージャを設定…」
- 外観
- タスクの最大幅: 狭い
- 挙動
- 1つのボタンに結合する: 解除
- ランチャーを分離して配置する: 解除
もう一度右クリック→「パネル設定を表示」→フローティングを無効にする。
KDEシステム設定
- クイック設定
- テーマ: Breeze Dark
- アニメーションの速度: 即時の1つ手前 (スムーススクロールが無効にならないように)
- マウスとタッチパッド
- マウス
- ポインタの速度: いい感じに
- 加速: なし
- スクロールの速さ: いい感じに
- タッチパッド
- いい感じに
- マウス
- ディスプレイとモニタ
- スケール: 100%
- 色とテーマ
- ログイン画面(SDDM): Breeze
- スプラッシュスクリーン: なし
- テキストとフォント
- フォント
- すべてのフォントを調整: Font: Yu Gothic UI
- 等幅: Font: Cascadia Mono
- サブピクセルレンダリング: なし
- ヒンティング: 完全に
- フォント
- 入力メソッド
- SKK
- 確定時にリターンキーを押しても改行を挿入しない: チェック
- 候補の選択に使用するキー: Qwertyキーボード中央行
- 辞書:
jinmei
geo
station
propernoun
を追加
- グローバルオプションを設定…
- 入力メソッドの切り替え: 「英数トグル」を追加
- SKK
SKKの;
でSticky ShiftとかEsc
で取り消しとかの設定はGUIではできないっぽい。
Microsoft Edgeのインストール
Windowsで使っている環境を同期できるようEdgeを使う。公式リポジトリには無いのでAURからインストールする。
pacman -S base-devel git
git clone https://aur.archlinux.org/microsoft-edge-stable-bin.git
cd microsoft-edge-stable-bin
makepkg -sirc
echo --ozone-platform-hint=auto > ~/.config/microsoft-edge-stable-flags.conf # Wayland対応
過去にあった不具合
archlinux-2024.12.01-x86_64.iso
を起動しようとしたところ、以下のようなエラーが無限に出力され、起動することができなかった。
ACPI Error: No handler or method for GE xx, disabling event (20140827/evgpe-839)
ACPI Error: No installed handler for fixed event - PM_Timer (0), disabling (20140827/evevent-255)
ACPI Error: No installed handler for fixed event - PowerButton (2), disabling (20140827/evevent-255)
ACPI Error: No installed handler for fixed event - SleepButton (3), disabling (20140827/evevent-255)
ACPI Error: Could not disable RealTimeClock events (20140827/evxfevnt-243)
ブートエントリの選択画面で「e」を押し、カーネルパラメータにpci=hpiosize=0
を追加することで起動できるようになった。pci=nomsi
, pci=noaer
, pci=nomm
, pci=nommconf
あたりは効果がなかった。acpi=off
でもエラーは出なくなるが、キーボードやSSDを認識しなくなるので無意味だった。libata.force=noncq
がないとSSDを認識しないみたいな情報があったが、そこは問題なかった。
毎回の起動時にこれを適用するには、arch.conf
のoptions
にpci=hpiosize=0
を追加すればよい。
archlinux-2025.06.01-x86_64.iso
では何もしなくても起動できるようになっていた。古いISOでインストール済の環境も、カーネルがアップデートされたのか同様に起動できるようになった。
あとがき
実用に耐えるかは怪しいが、とりあえず動くようにするだけであれば𝐵𝑎𝑡𝑡𝑙𝑒というほどでもない難易度だった。公式ドキュメントが充実しているというのはとてもありがたいことである。むしろ非自明な挙動の多いWindowsのインストーラ(使わないけど)やUbuntu等のインストーラのほうが難しい。
GUI環境についてはいろいろと選択肢があるが、自由()なLinuxの惨状を目の当たりにすると、改悪されまくったWindows 11でも最低限製品としての体裁は保たれているのだなという気持ちになってしまった。不自由なソフトウェアに依存することは決して素晴らしいことではないが、実用性が第一なので……。