ZBOXにUbuntu 22.04をインストールして、Windows 11 Proとのデュアルブート環境を構築した際のトラブルとその対処法をまとめました。
air-ghさんの記事を参考にしつつ、自分の環境で追加で対応したことだけ記録しておきます。
思い返せば、過去にも同じようなことをしていました。
条件
- プロセッサ: 13th Gen Intel(R) Core(TM) i7-13700HX 2.10 GHz
- 実装 RAM: 64.0 GB (63.8 GB 使用可能)
- OS: Windows 11 Pro
SSDの導入と初期化
デフォルトで、1TBのSSDにWindowsがインストールされています。
別のPCで使わなくなった Samsung 970 EVO Plus 2TB を追加し、こちらにUbuntuをインストールすることにしました。
ZBOXはPCIeバージョン4対応ですが、このSSDはPCIeバージョン3。性能差はありますが問題なしと判断。
筐体が小さいため、低背のヒートシンク(高さ3mm)を装着。ただし、あと数mm高くても良かったかもしれません。
- Windows上でディスクの初期化を行い、GPT (GUID パーティション テーブル) を選択
- MBRではなくGPTにすることでUEFIブートに対応
USBインストールメディアからインストール
Secure Boot での SBAT エラー
インストール時に以下のエラーが発生:
Verifying shim SBAT data failed: Security Policy Violation
Something has gone seriously wrong: SBAT self-check failed; Security Policy Violation
→ BIOSで Secure Boot を無効化することで解決。
インストール画面で画面が見切れる
ZBOXのインストール画面では、画面下部が見切れて操作ができない状態に。
- 解決方法:
Alt + F7
キーでウィンドウを移動できるようになる
GRUBインストール時のエラー
Ubuntuインストール中に以下のエラーが発生:
GRUBを /dev/ にインストールできません
→ 手動でパーティションを指定して解決。
インストール後:カーネルバージョン指定
ディスクチェックが進まない問題
インストール後、初回起動時に以下の状態でフリーズ:
Checkint Disk complete
Checking in progress on 1 disk
Press Ctrl+C to cancel all filesystem checks in progress
→ Ctrl+Cを押しても反応なし。
最終的に、特定のカーネルバージョンでしか起動できないことが判明。
カーネルバージョンによる起動の可否
カーネルバージョン | 起動状況 |
---|---|
5.15.0-25-generic | 起動成功(安定動作) |
6.8.0-60-generic | 起動せず(フリーズまたはリセット) |
GRUB画面の「Advanced options for Ubuntu」からカーネルバージョンを選択して起動。
GRUBのデフォルトを5.15.0-25に固定する
sudo nano /etc/default/grub
以下のように編集:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-25-generic"
設定を反映:
sudo update-grub
不安定なカーネル(6.8など)の削除
uname -r # 現在のカーネルを確認
dpkg --list | grep linux-image # インストール済みカーネル一覧
不要なカーネルを削除:
sudo apt remove linux-image-6.8.0-60-generic
sudo apt autoremove
sudo update-grub
カーネルの自動アップデートを防ぐ
6.x系の自動インストールを防ぐには:
sudo apt-mark hold linux-generic linux-image-generic
これにより、apt upgrade
を行っても 6.x 系が自動でインストールされるのを防止できます。
パーティションが意図通り設定されていない
この記事で使用したマシン(Zotac製)には以下の構成のストレージが接続されています:
- nvme0n1: Windows用SSD(1TB)
- nvme1n1: Ubuntu用SSD(2TB)
Ubuntuのインストール後、/(ルート)が約19GBしか割り当てられておらず、Dockerイメージの取得時に空き容量不足の問題が発生しました。
ストレージ構成の確認と対応
lsblk -ip によるパーティション構成
$ lsblk -ip
/dev/nvme0n1 931.5G
/dev/nvme0n1p1 100M
/dev/nvme0n1p3 487.3G
/dev/nvme1n1 1.8T
/dev/nvme1n1p1 19.1G ← /(ルート)
/dev/nvme1n1p2 119.2G
/dev/nvme1n1p3 191.0M
/dev/nvme1n1p4 1.7T ← /home にしたい!
df -h で空き容量を確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme1n1p1 19G 12G 5.7G 68% /
/dev/nvme1n1p4 1.7T 555M 1.6T 1% /home
/ が既に68%使用されており、Dockerイメージの取得に支障をきたす状態でした。
/home を大容量領域に切り替える手順
# 既存のホームをバックアップ
sudo cp -a /home /home.bak
# 一時マウントして確認
sudo mkdir /mnt/newhome
sudo mount /dev/nvme1n1p4 /mnt/newhome
ls /mnt/newhome
# rsyncでデータ移行
sudo rsync -aXS /home/ /mnt/newhome/
# マウント差し替え
sudo mv /home /home.old
sudo mkdir /home
sudo mount /dev/nvme1n1p4 /home
/etc/fstab にUUIDで追記
$ sudo blkid /dev/nvme1n1p4
/dev/nvme1n1p4: UUID="3c0da76a-e03b-44cf-ad0d-bc86d8bd072f" TYPE="ext4"
UUID=3c0da76a-e03b-44cf-ad0d-bc86d8bd072f /home ext4 defaults 0 2
sudo mount -a
/var/lib/docker の移動
Dockerのデータ保存先が /var/lib/docker(ルート配下)であるため、容量不足に陥るリスクがあります。以下の手順で移動します:
# Docker停止
sudo systemctl stop docker
# データ移動
sudo mv /var/lib/docker /home/docker
# シンボリックリンク作成
sudo ln -s /home/docker /var/lib/docker
# Docker再起動
sudo systemctl start docker
これにより、大容量の /home 配下にDockerイメージが保存され、空き容量不足の問題が解消されました。
ディスク構成
マウントポイント | デバイス名 | ファイルシステム | サイズ | 使用量 | 空き容量 | 備考 |
---|---|---|---|---|---|---|
/ | /dev/nvme1n1p1 | ext4 | 19GB | 12GB | 5.7GB | Ubuntuルート、容量は小さいまま |
/boot/efi | /dev/nvme0n1p1 | vfat | 96MB | 33MB | 64MB | EFI領域、Windowsと共用 |
/home | /dev/nvme1n1p4 | ext4 | 1.7TB | 555MB | 1.6TB | ホーム領域として活用 |
swap | /dev/nvme1n1p2 | swap | 119GB | - | - | スワップ領域として定義済 |
- | /dev/nvme1n1p3 | vfat | 191MB | - | - | 未使用(/boot/efi用に想定されていた) |
/var/lib/docker | /home/docker | ext4 (リンク) | - | - | - | Dockerデータを/homeに移動 |
未使用のパーティションはあとで消しておきます。
おわりに
ZBOXへのUbuntu導入は、コンパクトなデバイスでのLinux運用に最適ですが、画面表示やGRUB、カーネルの相性など、地味なハマりポイントがありました。
今後、何度かインストールし直すこともあると思うので、備忘録として残しておきます。
同様の環境で困っている方の参考になれば幸いです。