jimaoka blog

ライトなインフラエンジニアです

KVMゲストOS上でUSBハードディスクを使用する

先日KVMで仮想環境を構築したのですが、KVMホスト上でUSBハードディスクをマウントする必要が出てきました。
しかし、通常の状態ではUSBハードディスクを認識してくれません。

接続方法

ゲストOSでUSBドライブを使用する方法はいくつかありそうですが、ぱっと調べると

  • PCIパススルー
  • ディスクとして渡す

方法があるそうです。

PCIパススルーの方がUSB機器としての認識が可能なので、そちらを使用しようと思いましたが、PCIパススルー使用のためには CPUがIntel VT-d に対応している必要があるらしく、我が家ののPCでは使えなかったです。

ということで、ホストOS側で認識しているデバイス自体を仮想ホストに割り当てます。

### xmlファイルを作成(ドライブはuuidで指定)
% vim device.xml
<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'/>
  <target dev='vdb' bus='virtio'/>
</disk>
### デバイスの追加
% sudo virsh update-device centos7 ./device.xml

これで、ゲストOS上でマウント可能になります。

### マウント
[@guest]% sudo mount -t ext4 -o defaults /dev/sdb /media/usbhdd/