SJ blog
Qubes OS
Z

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Qubes OS のアップデート手順と注意点

Qubes OSのdom0・テンプレートVM・Qubes OS自体のメジャーアップグレードの手順、アップデート後のトラブル対処、自動アップデートの設定方法を解説します。

一言結論

Qubes OSのアップデートはdom0・テンプレートVM・AppVMを別々に管理する必要があり、セキュリティの観点から定期的なアップデートは必須だが、dom0の更新後は必ず再起動してカーネルを反映させることが重要だ。

Qubes OS のアップデートの種類

種類内容頻度
dom0 アップデートカーネル、Qubes ツール、セキュリティパッチ定期的(週1〜月1)
テンプレートアップデートFedora/Debian のパッケージ更新定期的
Qubes OS メジャーアップグレード4.1 → 4.2 などのバージョンアップ数年に1度

GUI でのアップデート(推奨)

Q メニュー → System Tools → Qubes Update

Qubes Update ツールが全VMのアップデートを一括で管理します。

  1. dom0 を選択してアップデート
  2. テンプレートVM を選択してアップデート
  3. 変更を適用してVMを再起動

コマンドラインでのアップデート

dom0 のアップデート

# dom0 ターミナルで
sudo qubes-dom0-update

# 特定のパッケージだけアップデート
sudo qubes-dom0-update qubes-manager qubes-core-agent

# セキュリティアップデートのみ
sudo qubes-dom0-update --security-testing

テンプレートVMのアップデート

# Fedora テンプレートのアップデート
qvm-run --auto --pass-io fedora-40 "sudo dnf upgrade -y" && \
qvm-shutdown fedora-40

# Debian テンプレートのアップデート
qvm-run --auto --pass-io debian-12 "sudo apt update && sudo apt upgrade -y" && \
qvm-shutdown debian-12

# Whonix テンプレートのアップデート
qvm-run --auto --pass-io whonix-gateway-17 "sudo apt update && sudo apt upgrade -y" && \
qvm-shutdown whonix-gateway-17

全テンプレートを一括アップデートするスクリプト

#!/bin/bash
# update-all-templates.sh

templates=$(qvm-ls --type TemplateVM -O name)

for template in $templates; do
    echo "Updating $template..."
    
    if echo "$template" | grep -q "fedora"; then
        qvm-run --auto --pass-io "$template" "sudo dnf upgrade -y" && \
        qvm-shutdown "$template"
    elif echo "$template" | grep -q "debian\|whonix"; then
        qvm-run --auto --pass-io "$template" "sudo apt update && sudo apt upgrade -y" && \
        qvm-shutdown "$template"
    fi
    
    echo "$template updated successfully"
done

echo "All templates updated!"

アップデート後のテンプレートアップデートをAppVMに反映

# テンプレートのアップデート後、AppVMを再起動することで反映される
qvm-shutdown work
qvm-start work

# または全AppVMを一括再起動(注意: 作業中のものは保存してから)
qvm-ls -O name,state | grep Running | awk '{print $1}' | \
    xargs -I{} bash -c 'qvm-shutdown {} && sleep 5 && qvm-start {}'

Qubes OS のメジャーアップグレード(4.1 → 4.2)

メジャーアップグレードは手順が複雑です。事前にバックアップを取ってから行います。

# 1. バックアップを取る(必須)
qvm-backup --all /media/backup-drive

# 2. dom0 のリポジトリを更新
sudo qubes-dom0-update qubes-release-upgrade

# 3. アップグレードスクリプトを実行
sudo qubes-dist-upgrade --all

# 4. 段階的にアップグレードが進む(時間がかかる)

推奨: メジャーアップグレードより クリーンインストール + バックアップからの復元 の方が安全です。

アップデートのトラブルシューティング

”No internet connection” でアップデートできない

# sys-net の状態確認
qvm-run sys-net "ping -c 3 8.8.8.8"

# dom0 の updateVM を確認
qubes-prefs updatevm  # default: sys-firewall

# updateVM を変更
qubes-prefs updatevm sys-net

テンプレートのアップデートが失敗する

# Fedora でキャッシュをクリアして再試行
qvm-run fedora-40 "sudo dnf clean all && sudo dnf upgrade -y"

# Debian でリポジトリを修復
qvm-run debian-12 "sudo apt --fix-broken install -y"

アップデート後に AppVM が起動しない

# テンプレートが正常に起動するか確認
qvm-start fedora-40
qvm-run fedora-40 "echo OK"

# テンプレート自体が壊れた場合: 再インストール
sudo qubes-dom0-update qubes-template-fedora-40

# または バックアップから復元
qvm-backup-restore /path/to/backup --vms=fedora-40

自動アップデートの設定

完全な自動アップデートは Qubes OS では推奨されませんが、通知を受け取る設定はできます:

# dom0 で更新通知を確認
sudo qubes-dom0-update --check-only

# 定期チェックのcron設定
sudo crontab -e
# 毎日午前7時にアップデートをチェック
0 7 * * * /usr/bin/qubes-dom0-update --check-only 2>&1 | \
    /usr/bin/notify-send "Qubes Update" "$(cat)"

アップデートのベストプラクティス

  1. バックアップを取ってからアップデート(特に dom0)
  2. アップデート内容を確認してから適用(セキュリティアドバイザリを確認)
  3. テンプレートをアップデートした後は AppVM を再起動
  4. メジャーアップグレードより定期的な小さなアップデートを続ける

Qubes OS の公式ブログ(https://www.qubes-os.org/blog/)でセキュリティアドバイザリを定期的に確認することをお勧めします。

まとめ

アップデートは Qubes OS のセキュリティを維持するために最も重要な作業です。特にセキュリティパッチは速やかに適用することが原則です。GUI の Qubes Update ツールを使えば、複雑な手順なしに一括アップデートができます。