仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

はじめに:VirtualBoxの起動オプションと課題

VirtualBoxで新しい仮想マシンを作成する場合、通常、ゲストOSを起動するための選択肢は「2つ」あります。ISOイメージから起動する(CD/DVDドライブと同等)、または仮想ハードディスクから起動するかです。しかし、オペレーティングシステムがUSBドライブ上にあり、それを起動メディアとして使いたい場合はどうすればよいのでしょうか?

そうしたい理由はさまざまあります。たとえば、OSがISOのようなシンプルで扱いやすい形式では提供されていないケース。あるいはソースのISO自体を持っておらず、外部ドライブ上のパーティションテーブルとデータという最終成果物しかないケースもあります。本チュートリアルでは、既存の起動可能なUSBドライブから起動し、そこに格納されたOSをそのまま実行する方法を解説します。プラットフォームにはLinuxを使用します。

rawディスクオプションと重大な注意点

VirtualBoxは「raw」デバイスからの起動をサポートしています。つまり、内蔵・外付けを問わず既存のストレージデバイスをrawデバイスとして設定し、そこから起動できるのです。対象となるOSは何でも構いません。デュアルブートやマルチブート環境も含まれます。技術的には、自分のOSドライブ(WindowsならC:\のあるパーティション)をマッピングして起動することさえ可能です。

ここにrawデバイス使用の大きな危険性があります。ディスクの設定を間違えるのはあまりにも簡単で、たった一文字違うだけで、既存のディスクと保存データを取り返しのつかない形で破壊しかねません。したがって、rawデバイス機能を試す際は細心の注意を払ってください。実際にこの方法でノートパソコンを壊してしまった知人がいます。本当の話です。十分ご注意ください。それでは進めましょう。

ディスクファイルを作成してrawデバイスにマッピングする

以下のコマンドでrawディスクを作成します:

sudo VBoxManage createmedium disk --filename=[file.vmdk] --format=VMDK --variant=RawDisk --property RawDrive=[device]

コマンドのポイント

最も重要な要素は次の2つです:

  • filename – VirtualBoxがrawデバイスを認識するためのファイル(VMDK形式)。
  • RawDrive – ファイル名にマッピングしたい実際のrawデバイス。

ファイルの保存場所はあまり重要ではありませんが、正しいrawデバイスを特定することは極めて重要です。Linuxではfdiskでデバイス一覧を確認できます。ハードディスクの命名規則と正しいサイズを把握しておく必要があります。まずはシンプルなfdisk -lでローカルデバイスをすべて表示しましょう。ループバックデバイス(Snapなど)も表示されます。ストレージ構成の全体像をつかめたら、リストを絞り込みます。たとえば:

sudo fdisk -l /dev/nvme*
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: C096EC37-7278-4E24-98C6-6A3906628E91

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 4550655 3500032 1.7G Linux filesystem
/dev/nvme0n1p3 4550656 1953523711 1948973056 929.3G Linux filesystem

同様に:

sudo fdisk -l /dev/sdb
Disk /dev/sdb: 14.91 GiB, 16008609792 bytes, 31266816 sectors
Disk model: Cruzer Switch
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A674DC54-3E17-4C42-8B62-90E4DCE4AEB3
...

この場合、fdiskはディスクモデル情報も出力してくれるため非常に便利です。これにより、外付けのUSBメモリと、操作を避けたい内蔵ハードディスクを識別・区別するのがはるかに容易になります。GUIでデバイス情報を確認できるディストリビューションもあります:

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

たとえば、USBメモリが/dev/sdbとして認識されている場合(Linuxの場合)、次のようにrawデバイスマッピングコマンドを実行できます:

sudo VBoxManage createmedium disk --filename=./Rdisk.vmdk --format=VMDK --variant=RawDisk --property RawDrive=/dev/sdb

ここで特に注意が必要なのは、USBドライブを正しく特定しなければならない点です。誤ったデバイスをマッピングすると、後で問題やデータ損失につながる恐れがあります。

sudo VBoxManage createmedium disk --filename=./Rdisk.vmdk --format=VMDK --variant=RawDisk --property RawDrive=/dev/sdb
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 041a84a8-9d9a-4ae3-a4a1-5393a24f6f7d

コマンドが完了したら、VirtualBoxを起動します。

利用可能なストレージデバイスに新しいディスクを追加する

次のステップは、作成したディスクを仮想マシンに接続することです。VirtualBoxのハードディスクセレクターから行えます。「ツール > メディア > 追加」をクリックし、VMDKファイルを選んで追加してください。ただし待ってください。これを行うには適切な権限が必要です。実際、ディスクを追加できても、仮想マシンが起動しなかったり、さまざまなエラーに遭遇したりすることがあります。これについては後ほど対処します。今は権限が正しく設定されているものとして話を進めます。

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

ディスクを追加したら、仮想マシンの設定を開き、「ストレージ」をクリックします。デフォルトでは、1台のディスク(VDI)が割り当てられたSATAコントローラーがすでに存在しているはずです。それを選択し、青い+アイコンをクリックしてディスクを追加し、VMDKファイルを選びます。SATAコントローラーがない場合は、まず緑の+アイコンでSATAコントローラーを追加してから、改めて+アイコンでディスクを追加します。以下の例では、最終的な構成として2台のディスク(Windows 11用のVDI形式と、Rdisk.vmdkのVMDK形式)が割り当てられています。ISOファイルから起動しないため、デフォルトの仮想光学ドライブは削除しました。

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

私がやりたかったことはこうです。Rufusという優秀なツールでWindows 11のインストールメディアを作成しました。このツールを使うとインストール体験をカスタマイズでき、具体的には、Windowsセットアップ中に通常表示される余計な要素をいくつか除去できます。ただし、Rufusはメディアと設定を外部デバイスにのみ書き込む仕様で、ISOファイルは作成しません。

そのため、Rufusがきちんと動作したかテストするには、USBデバイスをどこかで実際に起動してみる必要がありました。物理マシンでも可能ですが、必ずしも簡単な選択肢ではありません。特にディスクをフォーマットしてシステムをインストールする必要がある場合はなおさらです。代わりに仮想マシンはテストに最適ですが、その場合は仮想CD(ISOファイル)ではなくUSBドライブから起動しなければなりません。

したがって、上記の例では、仮想マシンに(空の)Windowsディスクとrawデバイスを接続しており、rawデバイスはインストール時にのみ使用します。技術的には、複数の起動可能なディスクを仮想マシンに接続することも可能で、その場合はBIOSで正しい起動順序が設定されていることを確認する必要があります。

発生しうるエラーと対処法

新しいrawディスクを作成すると、Linuxではその権限は0600、所有者はroot:rootになります。つまり、このファイルにアクセスできず、VirtualBoxで使用することもできません。他ユーザーにrwx権限を付与するか、所有者を変更する(こちらが推奨)ことで権限を変更する必要があります。たとえば:

sudo chown roger:roger file.vdmk

あるいは:

sudo chown roger:vboxusers file.vdmk

しかし、これだけでは不十分です。おそらくVERR_ACCESS_DENIEDエラーに遭遇するでしょう:

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

Permission problem accessing the file for the medium 'path-to-your-vmdk-file' (VERR_ACCESS_DENIED).
Result Code: VBOX_E_FILE_ERROR (0X80BB0004)
Component: MediumWrap
Interface: IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
Callee: IVirtualBox {7682d5eb-f00e-44f1-8ca2-99d08b1cd607}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0X80BB0001)

原因は、ユーザーが正しく設定されvboxusersグループのメンバーであっても、rawデバイス(diskグループ)へのアクセス権を個別に付与する必要があるためです。次のコマンドで対応できます:

sudo usermod -a -G disk $USER

その後、一度ログアウトして再ログインすると変更が有効になります。ログアウトせずに反映させる方法もありますが、ほとんどの方にとってこれが最も簡単です。WindowsとLinuxの両方における別の回避策として、管理者権限でVirtualBoxを起動する方法もあります。しかし一般的にはおすすめできません。何を行っても、ミスを含むすべての操作が昇格された権限レベルで実行されるためです。

起動とテスト

すべての問題を解決したところで、実際に動作するか確認してみましょう。カスタマイズされた起動画面が表示され、Rufusが正常に機能していることがすでに確認できました。セットアップ段階では、2つのハードディスク、つまり実際にはrawデバイス(USBドライブ)である小さい方と、インストール先となる100GBの空の仮想ディスクの両方が認識されていました。

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】

2つのドライブが表示されています。ドライブ0は2つのパーティションを持つ16GBのUSBドライブで、これをインストール先にはしたくありません(だからこそVirtualBoxでのrawデバイス使用にはリスクが伴うのです)。ドライブ1はパーティションテーブルのない100GBの空の仮想ディスクです。それでも、選択肢が複数ある場面では細心の注意を払う必要があります。

まとめ

このチュートリアルをマスターすれば、本格的にさまざまな活用が可能になります。マルチディスク構成のテストや、外部(場合によっては内部)デバイス上の既存OSの起動を試すこともできます。さらに、マルチブートUSBデバイスを作成し、物理ハードウェアで本格的に試す前にVirtualBoxで正しく動作するか検証することも可能です。いずれの場合も注意が必要です。rawディスク機能は、物理ホストと仮想ゲスト間の分離境界を突破してしまうからです。

本記事がお役に立てば幸いです。VirtualBoxでrawデバイスを使用する最初の一歩は、正しいストレージメディアを正確に特定することです。やり方がわからない、自信がないという方は、今すぐ作業を中止してください。このステップが完了したら、vmdkファイルを作成して適切なデバイスへマッピングします。次に権限の問題が発生する可能性があり、最後にディスクを接続してUSBドライブから仮想マシンを起動できます。今日は以上です。VirtualBoxに関するご質問があればお気軽にどうぞ。また新たなrawデバイスガイドをお届けするかもしれません。それでは!

  1. VMware Converterで仮想マシンを変換する方法を徹底解説

    仮想化は、ソフトウェアのテストやデバッグ、同一デスクトップ上での複数OSの同時稼働、ハードウェアコストの削減、そしてシステムのモジュール性と効率の向上など、多くのメリットをもたらす優れた技術です。パワーユーザーにとっては、時間と費用を節約しながら、通常では手を出しづらいタスクにも挑戦できる強力な手段となります。仮想化とは、その名の通り仮想マシンを活用することであり、これらの仮想マシンは仮想ハードディスク上に保存されます。 しかし問題があります。各仮想化製品はそれぞれ独自のファイルシステム形式を採用しているのです。例えばVirtualBoxとVMwareを併用している場合、両者の作成する仮想マシ

  2. VirtualBoxでLinuxゲストが非アクティブ後に黒画面のまま復帰しない問題の解決方法

    オペレーティングシステムを仮想マシンとして実行できるのは、まさに魔法のような技術です。試したい環境があっても予備のハードウェアがない場合でも、ハイパーバイザーを起動して仮想マシンを作成すれば、Windows、Linux、DOS、さらにはもっと古くニッチなOSまで、何でも気軽にテストできます。ただし、このエレガントな仕組みには独自の課題もあり、その代表格がディスプレイ設定や3Dアクセラレーションに関わるトラブルです。 以前、当サイトではVirtualBoxにおけるLinuxの黒画面(ブラックスクリーン)問題について取り上げました。あちらの対処法は現在でも有効ですが、今回はまったく新しい症状に遭遇