VentoyでUSBブートでセキュアなマルチOS環境構築

概要

少し前にUbuntuのLiveUSBに永続化用パーティションを追加して、USBブードできるUbuntu環境を作ってみましたが、今回はVentoyを利用して複数のISOファイルを指定して起動できるセキュアブート対応の環境を作ってみました。

VentoyはISOファイルを置くことで、インストール用メディアなどを選択して起動できる便利ツールですが、永続化用の設定も可能でしたので便利なブータブルUSB環境と、UbuntuのLiveUSBで永続化対応のものを作ってみました。

かなり手間ですがVirtualBoxを使ってOSインストール済みイメージを作成して、そのイメージを実行することも可能ですが、

Ventoyとは?

ISOイメージをUSBに書き込む際はRaspberry Pi Imagerや、Rufusを使うのが一般的です。Ventoyはこのツール自体をUSBに書き込んで、USBメモリの空き容量にISOファイルをいれることで任意のISOを起動してくれる便利ツールです。

いままではUbuntuやWindowsのインストール用メディアを作ろうとおもったら、複数のUSBメモリなどに書き込んで使い分ける必要がありましたが、Ventoyであれば少し大きめのUSBメモリに複数のISOファイルをコピーするだけで利用可能です。

バージョンアップなどがあった場合にも新しいISOファイルを転送するだけで利用できるので便利です。

利用したUSBメモリ

【Amazon.co.jp限定】 バッファロー SSD 外付け 250GB USB3.2 Gen2 読込速度 1050MB/秒 スティック コンパクト 小型 Type-Cアダプター付属 エコパッケージ 【 iPhone 17 / 17 pro 動作確認済み 】 SSD-SCH250U3BA/N
バッファロー
¥6,480(2025/10/18 22:01時点)
【高速スティックSSD】コンパクトながら読込速度1050MB/sの高速データ転送を実現。ケーブルレスで、さまざまなデバイスにすっきり接続できます。

上記の普通のUSBメモリより高速で動作するSSDタイプのものを利用しました。容量はとりあえず250GBのもので問題ないと思います。

通常のUSBメモリでも速度は遅いですが、問題ありません。ただ32GBよりは64GBや128GBぐらいあった方が便利な気がします。

容量分配

まずどれぐらいISOを入れるのか、永続化の容量をどれぐらい確保するのか、一般的なUSBメモリとして利用するのかを検討して分配をきめます。

全体領域250GB128GB64GB32GB
ISO領域186GB96GB40GB20GB
永続化領域32GB16GB16GB8GB
汎用USBメモリ領域32GB16GB8GB4GB

上は適当な参考値です。値自体は好きに割り振ることが可能です。実際のところISO領域はそんなに使わない気もしますので、汎用USBメモリ領域は大きめでもいいかもしれません。

ISO領域

ISOを保存する領域です。永続化領域と同じパーティションなので、設定する必要はないのですがどれぐらい保存したいのかを目安として意識する必要があります。

Windows11やUbuntuの場合、ISOファイルは1個5GB前後です。10個保存する場合には50GB前後必要です。

永続化領域

通常のLiveUSBですと、再起動したら変更点がリセットしてしまいますが、永続化領域を確保することで保存することができます。ただし、アカウント管理がされていないLiveUSBですので、気密性の高いものを保存することはできません。

Ubuntu24.04のLiveUSBを永続化した際にはapt upgradeするだけで4GBぐらいの領域を使いましたので、8GB以上を割り当てるのがおすすめです。この領域はあとで拡張可能です。

複数の永続化領域を保存して起動時に使いわけることができますので、確保する領域としては8GBから32GBを必要な数だけ確保しておきます。

汎用USBメモリ領域

一時的なファイルを保存する領域です。ここだけはあとから変更するのが非常に難しいです。Ventoyから起動したOSから、Ventoy自体のドライブは見えないので、UbuntuのLiveUSBで起動して利用する設定ファイルや、Windowsなどと共有したい画面キャプチャファイルなどをここに保存します。

1GBもあれば通常は問題ないと思いますが、利用するメディアの大きさに合わせて少し大きめのサイズを割り振ることをおすすめします。ただオンラインストレージや別のUSBメモリを利用すればこの領域は必要ありませんので必須ではありません。

4GB以上のファイルを扱う場合には33GB以上を割り当ててexFATを使うのがよさそうです。

VentoyをUSBメモリにインストールする

上記のサイトからVentoyをダウンロードしてください。この画面どれをクリックしてもSourceForgeのダウンロードページに飛びますので注意してください。

SourceForgeの最新版のダウンロードページに飛びますので、必要なファイルをクリックして5秒ぐらいすると自動的にダウンロードがはじまります。

適当なフォルダに展開してから「Ventoy2Disk.exe」を起動します。

上記のようなアプリが起動します。

まずはLanguageから日本語にしてみます。

日本語になりました。

オプションの中身をみてみます。セキュアブートはサポートのままで問題なく、パーティションのスタイルがデフォルトはMBRで、GPTも選べます。

上記のページでMBRとGPTの利点か書いてありましたが、ものすごい古い機材に利用するのでなければ新しいGTPでよいと思います。とくにWindows11のインストールメディアとかであればGTPの方がよさそうです。

あと設定すべき項目はパーティションの設定です。ファイルシステムは通常はexFATで良いはずです。設定すべきなのが「ディスクの最後にある程度の領域を確保する」の項目です。ここで指定した容量分が、汎用USBメモリ領域として利用できます。

私は画面キャプチャとかをWindowsとやりとりしたいので、この領域を確保しています。

設定が終わったら、書き込み先のデバイスが正しいことを確認して、インストールボタンを押します。確認がでますので、再度確認をしてから「はい」を選びます。

ディスクの管理から、できあがったパーティションを確認します。最後に32GBあるのが「ディスクの最後にある程度の領域を確保する」で指定した容量になります。

ここままではこの領域は未使用なので、「新しいシンプル ボリューム」で初期化します。

ウイザードの開始ページは「次へ」。

容量はそのまま全部で「次へ」

ドライブも初期設定のままで問題ありません。

ボリュームラベルはなんでもよいのですが、わかりやすい名前に変更。

これで先程の領域が初期化されて、ドライブとして認識されました。

ISOのダウンロード

Ventoyというボリューム名のドライブにISOを保存します。どこに保存してもよいのですが、isoフォルダを作成して、そこの中にいれることにします。

cd /mnt/e

mkdir iso
cd iso

# https://jp.ubuntu.com/download
curl -O https://old-releases.ubuntu.com/releases/24.04.2/ubuntu-24.04.2-desktop-amd64.iso

# https://www.system-rescue.org/Download/
curl -O https://sf-west-interserver-1.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/12.02/systemrescue-12.02-amd64.iso?viasf=1

# https://www.memtest.org/
curl -O https://www.memtest.org/download/v7.20/mt86plus_7.20_64.iso.zip
unzip mt86plus_*.iso.zip
rm mt86plus_*.iso.zip

# https://www.kali.org/get-kali/#kali-live
curl -O https://cdimage.kali.org/kali-2025.2/kali-linux-2025.2-live-amd64.iso

# https://www.microsoft.com/ja-jp/software-download/windows11

cd ..

私はVentoyがEドライブだったので、WSL上からcurlして保存しました。Windows11だけはブラウザから保存したほうが早いはずです。

何を保存するかは好みなのですが、メモリの確認用にMemtest86+、レスキューキットとしてSystemRescue、セキュリティー的なチェックツールとしてKali Linuxを入れておきました。

この他に使っているNAS用のISO、Windows11のインストールメディアなども保存しました。

永続領域用ファイル作成

cd /mnt/e

mkdir persistence
cd persistence
curl -O https://www.ventoy.net/download/CreatePersistentImg.sh
curl -O https://www.ventoy.net/download/ExtendPersistentImg.sh

sudo ./CreatePersistentImg.sh -o ubuntu24.04.2.dat
sudo ./ExtendPersistentImg.sh ubuntu24.04.2.dat 15360

永続化は実パーティションではなく、イメージファイルを起動時にマウントして行ってくれます。あらかじめマウントするイメージファイルを作成しておく必要があります。

上記にあらかじめ作成済みのイメージもありますが、容量が固定なのと大量のファイルが一つに圧縮されているため自分で作成することをおすすめします。

「CreatePersistentImg.sh」が作成するためのスクリプトで、サイズを1024MBで作成しています。このツールは非常に作成時に時間がかかるので、1024MBで作成してから領域を変更する「ExtendPersistentImg.sh」で拡張したほうが早く終わります。

/mnt/e/persistence$ sudo ./CreatePersistentImg.sh -h
Usage:  sudo ./CreatePersistentImg.sh [ -s size ] [ -t fstype ] [ -l LABEL ] [ -c CFG ] [ -e ]
  OPTION: (optional)
   -s size in MB, default is 1024
   -t filesystem type, default is ext4  ext2/ext3/ext4/xfs are supported now
   -l label, default is casper-rw
   -c configfile name inside the persistence file. File content is "/ union"
   -o outputfile name, default is persistence.dat
   -e enable encryption, disabled by default (only few distros support this)

イメージ作成ツールのヘルプです。通常は-sのサイズと、-lのラベルを指定します。

DistrosLabel
Arch Linuxvtoycow
Ubuntucasper-rw
MX LinuxMX-Persist
LinuxMintcasper-rw
elementary OScasper-rw
Zorincasper-rw
Kaspersky Rescue Diskcasper-rw
Kalipersistence
CloneZillapersistence
Fedoravtoycow

ラベルはLiveUSBの種類によって違うので気をつけてください。Ubuntuはデフォルトのcasper-rwで動きますが、Arch Linuxだとvtoycowを指定する必要があります。

上記の永続化のドキュメントに記述があるので参考にしてください。

永続化の設定追加

起動後の設定をするためには「VentoyPlugson.exe」を利用します。

起動するとVentoyが入ったメディアを選択して「Start」を選びます。

するとブラウザが開き、設定画面が表示されます。

設定すべき項目は「Global Control Plugin」のcontrolにあるVTOY_MENU_LANGUAGEです。デフォルトは英語になっているので、必要であればja_JPで日本語化します。ただし、あまり文字がないツールと、日本語化するとわかりにくいところがあるので英語のままでもよいかなと思います。

{
    "control":[
        { "VTOY_MENU_LANGUAGE": "ja_JP" }
    ]
}

変更後に上のメニューにあるPreviewを押すと上記が表示されます。

  • E:\ventoy\ventoy.json

最終的に上記のファイルが設定したもので上書きされているはずです。この「VentoyPlugson.exe」を利用しなくて直接書き換えても問題ありません。

永続化の設定は「Persistence Plugin」になります。Addを押して追加します。

設定すべきはISOファイルと永続化イメージファイルのフルパスになります。

OKで追加するとWindowsのフルパスから、実際にマウントされるときのパスに変換されます。同じISOファイルに対して複数の永続化イメージファイルを設定することや、永続化なしで起動することが可能です。タイムアウトとオートセレクトを利用して、時間が経過すると自動に起動する設定なども可能です。

{
    "control":[
        { "VTOY_MENU_LANGUAGE": "ja_JP" }
    ],
    "persistence":[
        {
            "image": "/iso/ubuntu-24.04.2-desktop-amd64.iso",
            "backend":[
                "/persistence/ubuntu24.04.2.dat"
            ]
        }
    ]
}

上記の様な設定になりました。

Ventoyを起動する

USBメモリをPCに接続したまま再起動します。使っているPCによって違いますがF12などのブートメニューを表示するキーを連打しながら起動させます。

すると、上記のような画面がでて起動に失敗したいと思います。セキュアブートの関係でUSB起動はデフォルトでは制限されています。

Ventoyの証明書をPCに追加することでセキュアブートに対応して起動するようになります。

追加方法は上記にありますが、「Enroll Key」を選びUSBの中にある「ENROLL_THIS_KEY_IN_MOKMANAGER.cer」を選択して証明書を追加します。

Ubuntu24.04のLiveUSB設定

sudo apt-mark hold 'linux-generic*' 'linux-headers*' 'linux-image*' 'linux-modules*'
sudo apt update
sudo apt upgrade
sudo apt autoremove

sudo timedatectl set-timezone Asia/Tokyo
sudo timedatectl set-local-rtc 1

sudo apt install language-pack-ja language-pack-gnome-ja
sudo update-locale LANG=ja_JP.UTF8

locale -a

sudo apt install fcitx5-mozc
ibus engine mozc-jp

reboot

とりあえず必要そうなコマンドです。この手のコマンドをテキストファイルに保存して、汎用USBメモリ領域に保存しておいて、LiveUSBで起動後に実行するのがおすすめです。

内容的にはカーネルのバージョンアップをロックしてから、最新に更新。その後にタイムゾーンと時刻合わせと日本語化周りの処理になります。

OSなどに合わせてお好みの初期設定をしてみてください。

永続化ではない仮想ハードディスクのネイティブ実行

Linux vDiskブートプラグインを利用することで、LiveUSBではなく普通にインストールした状態のOSを利用することが可能です。

手順はかなり面倒で、一度VirtualBoxで仮想マシンを作成します。作成した仮想マシンにVentoy用のツールを入れることで直接起動できるディスクイメージができます。そのファイルをVentoyのISOイメージと同じ場所にコピーすることで実現可能です。

重要なのは「EFIの有効化」にチェックをすることと、ストレージの設定です。

上記のところで「全サイズの事前割当て」を選択する必要があります。またメモリとCPUは最終的には関係ないのですが、少なすぎるとインストールに時間がかかりすぎるので少し多めに割り当てたほうがいいです。デフォルトのメモリ2GBだとインストール中にハングアップしてしまいました。

セットアップが完了したら、上記のISOをVirtualBoxにマウントしてVentoy用のツールをセットアップします。ISOの中にはさらに圧縮されたファイルが入っているので、展開してから実行します。

cp /media/*/Vtoyboot/vtoyboot*.gz /tmp
cd /tmp
tar zxvf vtoyboot*.gz
cd vtoyboot*/
sudo sh vtoyboot.sh

使っているOSによってマウント先が違うと思いますがUbuntu24.04だと上記の感じで実行できました。

ただ、このvtoybootはカーネルのバージョンが上がったら再度実行しないとブートが失敗する可能性があるらしく、安全のためにはカーネルのバージョンアップを凍結したほうがいいかもしれません。(今のところ凍結しなくても最新版にアップできました)

速度的には永続化よりは、ネイティブ実行の方がオーバーヘッドが少ないので早い気もしますが、とにかくVirtualBoxでのインストールに時間がかかるので微妙なところです。

これだったら汎用USBメモリ領域で使った「ディスクの最後にある程度の領域を確保する」を大きめに確保して、そこにUbuntuを直接インストールしたほうがいいかもしれません。

USBに追加パーティション作成して通常インストール

ついでに、何度かUSBを「Ventoyを削除する」から初期化してから、「ディスクの最後にある程度の領域を確保する」の容量を増やして直接Ubuntuをインストールする容量を作りました。64Gで確保した場合には、32GBを通常の汎用USBメモリ領域にして、残りの32GBにUbuntuをインストールします。

インストール自体はVentoyの中に入っているUbuntu24.04のインストールディスクを永続化無しで起動して、パーティションの設定を「手動パーティショニング」から新しいパーティショニングを作って/にマウントします。そしてブートローダーをUSBの中に入れます。

ただし。。。Ventoyの起動が面倒になるのと、Ubuntu24.04のブートメニューからWindowsをまちがって起動してしまうとセキュアブートに対応していない状態で起動するので、保存してある指紋データとかが飛んでしまいます。

利用感的には仮想ハードディスクのネイティブ実行でUbuntuを動かしたほうが便利でした。セットアップした直後のディスクイメージを圧縮してVentoyに入れておくと、あとから別用途でも利用できそうですので便利です。

あと、ファイルをそのままコピーして環境をバックアップできるのは非常に楽です。

{
    "control":[
        { "VTOY_LINUX_REMOUNT": "1" },
        { "VTOY_MENU_LANGUAGE": "ja_JP" }
    ],
    "persistence":[
        {
            "image": "/iso/ubuntu-24.04.2-desktop-amd64.iso",
            "backend":[
                "/persistence/ubuntu24.04.2.dat"
            ]
        }
    ]
}

ちなみに最終的な設定ファイルですが、仮想ディスクを起動するためにはVTOY_LINUX_REMOUNTを有効にしないと起動に失敗しました。OSによるみたいですが、Ubuntu24.04だと有効化する必要があります。

まとめ

Ventoyはかなり便利そうでした。とくに永続化ができることである程度の設定を残すこともできますし、永続化無しの初期状態で起動することもできます。

細かい動作はVirtualBoxなどを使った仮想環境の方が便利なことも多いのですが、気軽に試すのには便利そうでした。なんらかのインストールメディアやLive USBを持ち運ぶのであれば、Ventoyでいいのかなと思っています。

コメント