VMware ESXiから仮想マシンへのUSBデバイスパススルー設定ガイド
VMware ESXiホストに接続されたローカルのUSBデバイス(USBメモリや外付けディスクなど)を、仮想マシン内部で直接利用できるようにする技術があります。これがUSBパススルー(USB Passthrough)と呼ばれる機能で、ESXi 4.1以降で利用可能です。
本記事では、ESXi 6.7ホストにローカル接続された外付けUSB 3.0ドライブを仮想マシンにリダイレクトする手順を解説します。仮想マシンから直接データをコピーし、別のUSBドライブへ素早く保存するようなケースを想定しています。
VMwareのUSBパススルーとは
パススルーモードを使用すると、ESXiホストに物理的に接続されたデバイスを、仮想マシンのゲストOSへ直接リダイレクトできます。このモードでは、USBドライブやモデム、PCI/USBコントローラへの直接アクセスを仮想マシンに許可することが可能です。
ESXiでUSBデバイスをリダイレクトするには、主に以下のコンポーネントが必要です。
- USBアービトレータ(Arbitrator): ESXiホスト上で動作する独立したサービスです。接続された物理USBデバイスをスキャンし、ホストと仮想マシン間のUSBトラフィックをルーティングします。また、デバイスへのアクセス制御も行い、1台のUSBデバイスは同時に1台の仮想マシンからのみ使用できます。USBアービトレータは最大15個のUSBコントローラを同時に追跡できます。
- USBコントローラ: 物理ホスト側と仮想マシン側の両方にUSBコントローラが必要です。
VMware ESXi上の仮想マシンにUSBコントローラを追加するには、仮想マシンの設定を開き、新しいデバイスとしてUSBコントローラを追加します。追加時にコントローラの種類を選択してください。
- USB 2.0(EHCI+UHCI): USB 2.0およびUSB 1.1デバイスをサポートするコントローラ。
- USB 3.0(xHCI): 高速なUSB 3.0デバイスをサポート。仮想ハードウェアバージョン8以上が必要です。
USB 3.0モードはvSphere 5.5 Patch 3以降で利用可能です。ゲストOS側ではxHCIコントローラが動作している必要があり、対応ゲストOSはWindows 8.1/Windows Server 2012 R2、およびカーネルバージョン2.6.35以降のLinuxです。

ESXi仮想マシンへのUSBデバイスのパススルー設定
ネイティブのUSBパススルーモードでは、ホストに接続された物理USBデバイスをVMware仮想マシンに接続できます。
このリダイレクト方式の主な要件と制限事項は以下の通りです。
- 仮想ハードウェア7.0以降であること。
- 1台のUSBデバイスに直接アクセスできるのは1台の仮想マシンのみ。
- 仮想マシンあたりのUSBデバイスのリダイレクト数は最大20台。
- 接続したUSBデバイスからの仮想マシンの起動(ブート)はサポートされない。
仮想マシン用の仮想USBコントローラを追加したら、ホストに接続されたUSBドライブをリダイレクトできます。
- 仮想マシン設定で新しい「ホストUSBデバイス(Host USB device)」を追加し、「追加」をクリックします。
- ドロップダウンリストから接続済みのUSBデバイスを選択して追加します。
- 物理USBドライブが接続された状態の仮想マシンでvMotionを有効にしたい場合は、「Support vMotion while device is connected(デバイス接続中のvMotionをサポート)」オプションにチェックを入れます。

- 設定後、USBドライブが仮想マシンのゲストOS内に表示されます。
USBドライブをリダイレクトした仮想マシンには、vMotionに関していくつかの制限があります。
- 仮想マシンの停止やサスペンド(一時停止)はできません。仮想マシンを起動したままにする場合は、USBデバイスが接続されているホストへ手動でマイグレーションする必要があります。
- DPM(Distributed Power Management)モードはサポートされません。vCenterが省電力化のため、USBデバイスが接続されたホストをシャットダウンする可能性があるためです。
- 仮想マシンと物理USBデバイスを配置するESXiホスト間は、vmk0経由でTCPポート902が到達可能である必要があります。
新しいUSBデバイスを追加する際に、vSphereクライアントに「No available USB devices(利用可能なUSBデバイスがありません)」というメッセージが表示される場合は、そのUSBドライブがVMwareのUSBパススルーモードでのリダイレクトに対応していないことを意味します。互換性のあるUSBデバイスの一覧はVMware公式サイトで確認できます(一覧はそれほど長くありません)。KB記事「https://kb.vmware.com/s/article/1021345」の「USB Devices tested for Passthrough from an ESXi Host to a Virtual Machine in ESXi 6.7」のセクションを参照してください。

この場合、代わりにESXiホストから仮想マシンへUSBコントローラ全体をリダイレクトする方法があります。
VMware PCIパススルー(VMDirectPath): USBコントローラを仮想マシンへリダイレクト
仮想マシンから物理USBデバイスへアクセスを提供するもう一つの方法(やや不便ですが)は、ESXiホストのUSBコントローラ全体をリダイレクトすることです。このモードはVMDirectPathと呼ばれます。利用するには、サーバーのチップセットがIntel Directed I/O(VT-d)またはAMD I/O Virtualization Technology(AMD-Vi/IOMMU)をサポートしており、BIOS/UEFI設定で該当モードが有効になっている必要があります。
サーバーにUSBコントローラが1つしか搭載されておらず、それを仮想マシンにリダイレクトすると、ホスト自体でローカルに接続されたUSBデバイス(キーボードやマウスなど)を使用できなくなります。その場合は、サーバーに追加のPCI USBコントローラを増設することをおすすめします。
ホストに複数のUSBコントローラがある場合、ESXiシェルから接続中のUSBデバイスとコントローラ番号を特定できます。USBデバイスの一覧を表示するには:
# lsusb -v | grep -e Bus -e iSerial
出力の中から対象のUSBドライブに関する行を探します。例:
Bus 002 Device 003: ID 0280:a00c Toshiba America Info. Systems, Inc.
次に、コントローラ番号(この例ではBus02)をもとに、ルートハブとそのiSerialを特定します。
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub iSerial 1 0000:00:1D.0
USBドライブが表示されない場合は、物理的に取り外して再接続してみてください。USBアービトレータがドライブを認識したかどうかは、vmkernel.logで確認できます。
tail -f /var/log/vmkernel.log | grep -i USB
cpu0:33271)<6>usb 4-2: new SuperSpeed USB device number 5 using xhci_hcd cpu0:33271)<6>usb 4-2: New USB device found, idVendor=0480, idProduct=b207 cpu0:33271)<6>usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 cpu0:33271)<6>usb 4-2: Product: External USB 3.0 cpu0:33271)<6>usb 4-2: Manufacturer: TOSHIBA cpu0:33271)<6>usb 4-2: SerialNumber: 20180528012427F cpu0:33271)<6>usb 4-2: Vendor: 0x0480, Product: 0xb207, Revision: 0x0315 cpu0:33271)<6>usb 4-2: Interface Subclass: 0x06, Protocol: 0x50 cpu0:33271)WARNING: LinScsiLLD: scsi_add_host:573: vmkAdapter (usb-storage) sgMaxEntries rounded to 255. Reported size was 65535 cpu0:33271)<6>usb-storage 4-2:1.0: interface is claimed by usb-storage cpu0:33271)<6>usb 4-2: device is not available for passthrough cpu0:33271)<6>usb 4-2: usbfs: registered usb0405 cpu0:33207)<6>usb-storage 4-2:1.0: suspended

USBドライブがESXiホストに認識されない場合は、usbarbitratorサービスが実行中であることを確認してください。
#chkconfig usbarbitrator --list
usbarbitratorサービスを停止するのは、ESXiシェルから直接USBメモリにアクセスしてファイルをコピーしたい場合だけにしましょう。
これで、仮想マシンへリダイレクトするUSBコントローラの番号が判明しました。
- 物理USBコントローラをリダイレクトするには、仮想マシンが稼働しているESXiホストを選択し、「管理(Manage)」→「設定(Settings)」→「PCIデバイス(PCI Devices)」→「編集(Edit)」の順に進みます。
- PCIデバイスの一覧から、IDで目的のUSBコントローラを選択します(この例では
00:1D.0、コントローラ名は「C610/X99 series chipset USB Enhanced Host Controller #1 Intel Corporation」)。 - USBコントローラのステータスが「Unavailable(利用不可)」(This device is not currently available for VMs to use)から「Available(利用可能)」(This device available for VMs to use)に変わったことを確認し、「OK」をクリックします。

- 変更を保存するため、ESXiホストを再起動します。
- ホスト起動後、仮想マシンをパワーオフし、新しいデバイスを追加します(New Device → PCI Device → Add)。ドロップダウンリストからUSBコントローラを選択します(例:
0000:00:1D| Intel Corporation USB Chipset…)。PCIデバイス追加時に「Warning: The VM will not power on until its memory reservation equals its memory size」という警告が表示された場合は、仮想マシン用にRAMを予約(リザーブ)してください。 - 仮想マシンをパワーオンし、USBドライブがゲストOSに表示されることを確認します。この例では、接続したUSBドライブ「Toshiba External USB 3.0 USB Device」がゲストOSのWindows Server 2012 R2上に表示されました。

VMDirectPathモードでは、1台の仮想マシンに対して最大2つの物理PCIデバイスをリダイレクトできます。
PCIデバイスをリダイレクトした仮想マシンにはいくつかの制限があります。仮想マシンのサスペンド、別ホストへのvMotion(物理コントローラに紐付くため当然です)、スナップショットの作成はできません。
なお、Hyper-Vでも物理USBデバイスの仮想マシンへのリダイレクトがサポートされています。
-
【Windows】USBデバイスがスリープモードからPCを勝手に復帰させないようにする2つの方法
Windowsには、電力管理を最適化するための「スリープモード」が標準で搭載されています。PCを長時間使用しない場合に電力を節約し、パーツの消耗を抑えるのに効果的な機能です。通常はマウスを少し動かすだけでスリープから復帰でき、USB機器の接続やCDの挿入でも同様に復帰します。 しかし、高DPI・高ポーリングレートのゲーミングマウスなどを使用していると、わずかな振動や動きを検知してPCが勝手に起きてしまうことがあります。意図せずスリープが解除されるのが困りごとなら、この設定を無効化しましょう。本記事では、スリープモード中にUSBデバイスがWindows 10を復帰させないようにする方法を2つ紹介
-
VMware ESXiで仮想マシンのクローンを作成する手順を徹底解説
本チュートリアルは、一般の家庭ユーザーにはあまり馴染みがないかもしれません。しかし、何らかの理由で環境にVMware ESXiを採用している方にとっては、きっと役立つ内容となるはずです。VMware ESXiは無料で提供されているベアメタル型ハイパーバイザーです。より多機能な有償製品「ESX Server」への購入を促すための、いわば導入版的な位置づけにあります。ESX Serverはあらゆる機能を備えている一方、価格も桁違いに高額です。ESXiは、ベアメタル仮想化における「低コストな選択肢」と言えるでしょう。そのため、上位製品にはある当たり前の機能がいくつか欠けており、クローン作成機能もその