Featured image of post ASUS ROG Zephyrus G14 に CachyOS を導入した記録

ASUS ROG Zephyrus G14 に CachyOS を導入した記録

Windows 11 と Pop!_OS のデュアルブート環境だった ASUS ROG Zephyrus G14に、CachyOS を追加インストールした記録です。Pop!_OS はほぼ使わなくなっていたので、NVMe の空き領域(約 528 GiB)に CachyOS を入れて3つのOSが共存する構成にしていみました。CachyOSはデスクトップでも入れていてかなり気に入ったので入れ替えです。

環境

項目 内容
機種 ASUS ROG Zephyrus G14 GA401QEC (Alan Walker Edition)
CPU Ryzen 9 5900HS
GPU AMD Cezanne iGPU + RTX 3050 Ti (Hybrid)
RAM 16 GB
NVMe MS950G75PCIe4 2048G
無線 MediaTek MT7921

ディスク構成

インストール前の NVMe の構成。

パーティション サイズ 内容
p1 200 MB Windows 予備 ESP
p2 16 MB Microsoft 予約
p3 399.2 GB Windows 11 C:
p4 850 MB Windows RE
p5 512 MB 現用 ESP(Windows + Pop 共用)
p6 953.9 GB Pop!_OS /
空き 528.2 GB ← CachyOS をここに入れる
p7 2 GB Pop swap
p8 22 GB ASUS リカバリ
p9 200 MB MyASUS

p5(ESP)は Windows と Pop!_OS が共用しているため、絶対に触らない。CachyOS 用に独立した /boot パーティションを新規作成することで回避しました。こんな領域が残っていたことをすっかり忘れていました。実行の計画なども最近はClaudeと会話しながら進めているので新しい気づきがあって助かる。

事前準備

バックアップ

外付け HDD(exFAT)への直接 rsync はシンボリックリンクやパーミッションが失われるため、以下のオプションを使いました。

rsync -rt --info=progress2 --partial --inplace \
  --exclude='.cache/' \
  --exclude='.local/share/Trash/' \
  --exclude='.local/share/Steam/steamapps/' \
  --exclude='.var/app/*/cache/' \
  /home/<user>/ /media/<user>/BackupVolum/home-<user>-full/

-a ではなく -rt にするのがポイントです。exFAT では所有者・パーミッション・シンボリックリンクの転送が失敗するため、最初から転送しない設定にします。

ESP のバックアップも取っておきます。p5 を誤操作した場合の保険です。

sudo tar -cpzf /media/<user>/BackupVolum/ext/esp-p5-backup-$(date +%F).tar.gz -C /boot/efi .

長時間の転送中に USB が切断される問題も発生しました。原因は autosuspend=2(2秒でサスペンド)でした。

echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend
for d in /sys/bus/usb/devices/*/power/control; do echo on | sudo tee "$d" > /dev/null; done

# 恒久化
echo 'options usbcore autosuspend=-1' | sudo tee /etc/modprobe.d/usb-noautosuspend.conf

CachyOS インストール USB の作成

sudo dd if=cachyos-*.iso of=/dev/sda bs=4M status=progress oflag=sync

BIOS 設定

設定項目
Secure Boot 無効
Fast Boot 無効
Legacy USB Support Auto
SATA Mode AHCI(変更不要)

NVMe が認識されない問題

Live USB で起動すると /dev/nvme0n1 が見えませんでした。

nvme 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible

原因は、Windows から再起動せずに電源を落とした場合、NVMe が D3cold(完全電源断)状態のまま Linux に渡されることでした。

Windows を起動して「シャットダウン」(再起動ではなく完全シャットダウン)してから USB で起動すると、NVMe が D0 状態に戻り正常に認識されました。なんかこの問題も以前あったなぁという感じですがすっかり忘れますね。

インストール後に以下を設定しないと、再起動のたびに同じ問題が発生します(とClaudeに教えてもらったけど試してはない)

echo 'options nvme_core default_ps_max_latency_us=0' | sudo tee /etc/modprobe.d/nvme.conf
sudo mkinitcpio -P

インストール

ブートローダーは Limine を選択。Btrfs スナップショット統合が標準で使えます。

インストーラで「手動パーティション」を選択し、528 GiB の空き領域に2つだけ作成しました。既存の p1〜p9 は一切変更していません。

サイズ FS マウント フラグ
/boot 4096 MiB fat32 /boot boot
/ 残り全部 btrfs / なし

インストール後の設定

sudo pacman -Syu
sudo chwd -a    # ドライバ自動検出

AMD と NVIDIA のドライバが自動で検出・インストールされました。

G14 用のツールも入れておきます。

sudo pacman -S asusctl supergfxctl rog-control-center
sudo systemctl enable --now asusd supergfxd

日本語入力の設定。

sudo pacman -S fcitx5-im fcitx5-mozc

環境変数の設定。

echo 'GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx' | sudo tee /etc/environment

動作確認結果

項目 状態
Wi-Fi (MT7921) OK
Bluetooth OK
日本語入力 (fcitx5-mozc) OK
GPU Hybrid (RTX 3050 Ti) OK
サウンド (ALC285) OK
画面 2560x1440 @120Hz OK
asusd / supergfxd OK
プロファイル切替 (Quiet/Balanced/Performance) OK
スリープ復帰 OK
スナップショット (snapper + Limine) OK

ハマった所

NVMe が D3cold から復帰できない問題は、Windows から完全シャットダウンして起動することで回避しました。インストール後は nvme_core default_ps_max_latency_us=0 を設定しておく必要があります。

p5(ESP)は Windows と Pop!_OS が同じものを使っているため、CachyOS 用に独立した /boot(4 GiB, fat32)を新規作成しました。p5 には一切触れていません。

外付け HDD への rsync は、exFAT に -a オプションで転送するとシンボリックリンクやパーミッションで大量エラーが発生します。-rt オプションを使うか、ext4 のボリュームに書き出すのが安全そうです。

USB オートサスペンドも長時間の転送中にデバイスが切断される原因になっていました。autosuspend=-1 で無効化しています。

指紋認証(Goodix 27c6:521d)は上流の libfprint では未サポートでした。コミュニティによるリバースエンジニアリング実装は存在するものの不安定だったので、今回は見送りました。

G14 は CachyOS が asus-linux コミュニティから最も推奨されているディストリビューションのようです。とClaudeは言っていました。

いずれにしても快適に動作しています。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。