web-dev-qa-db-ja.com

Virtualbox:ゲストOSへの仮想USB大容量ストレージデバイスを作成します

LinuxサーバーのBIOSを更新するには、Windowsプログラムを実行する必要があります。私のアイデアは、WindowsをUSBドライブにすばやくインストールして、ライブのWindows環境で起動できるようにすることでした。 USBドライブの書き込みが非常に遅いため、インストールが非常に遅くなります。

私のアイデアは、USBドライブと同じサイズのループバックデバイスを作成し、代わりにWindowsをインストールしてから、そのイメージをUSBにddすることでした。おそらくもっと速いでしょう。

ただし、WindowsをUSBドライブにインストールするために使用しているプログラム(WinToUSBと呼ばれます)は、(ご想像のとおり)USBマスストレージデバイスにのみインストールされます。 WinToUSBを実行しているWindows7ゲストOSを作成して渡したループバックデバイスは、標準の固定ディスクとして表示されます。そのため、WinToUSBはこの固定ディスクへのインストールを拒否します。

そこで、virtualboxにループバックデバイス(vmdkとして)をエミュレートされたUSBマスストレージデバイスとしてゲストOSに提示させ、WinToUSBがウィンドウをインストールしてddできるようにしようとしています。実際のUSBデバイスを使用して、BIOSをフラッシュします。なんて変なルーブゴールドバーグマシン!

ホストOS:Arch

ゲストOS:Windows 7

Virtualbox:5.2.6

3
Huckle

仮想ディスクをUSBデバイスとして接続するには:

VMNAME="test"
USB_SIZE_MB=$((16*1024))
vboxmanage storagectl "$VMNAME" --add usb --name usb --controller USB
vboxmanage createmedium disk --filename /tmp/test.vmdk --size "$USE_SIZE_MB"
vboxmanage storageattach "$VMNAME" --storagectl usb --medium /tmp/test.vmdk --port 0 --type hdd

これが完了すると、ディスクは空になるため、ゲストOSがパーティションテーブルを配置して使用するために必要なことは何でも行う必要があることに注意してください。

2
Huckle