VirtualBox(3) VirtualBoxでUSBメモリを使う

## はじめに

VirtualBox のゲストOS として前回、 [MX Linux 19 をインストール](https://qiita.com/FuRuYa7/items/954e8aab926ab99ec95e) しました。

USB メモリがマウントできなかったので、やり方について書きました。たぶん、他のゲストOS でも役立つと思います。


参考:

VirtualBox でのUSB デバイス認識
(https://qiita.com/civic/items/684c4b82428feb0c4ae1)


---
#### ゲストOS でUSB メモリのマウントが出来きないときの確認:

- 「VirtualBox マネージャ」でUSB メモリを認識（USB デバイスの一覧に表示）しているか確認します。

１. ホストマシンにUSB メモリを挿します。

２. virtualbox を起動します。

３. 設定 →USB →USB デバイスフィルター にて、右にある「＋」アイコンをクリック。
→「利用できるデバイスがありません」と表示されました。

正常なら、挿しているUSB メモリだけでなく、ホストマシンに接続されている機器（USB マウス、USB キーボードなど）も、一覧として表示されます。


---
#### 1. Virtualbox Extension pack が入っているか確認

USB 2.0、USB 3.0 を使うには、VirtualBox に、「Extension Pack」の追加インストールが必要です。

ホストOS の端末で、Extension Packs のリストを確認:

```
$ vboxmanage list extpacks

Extension Packs: 2
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:      6.0.12
Revision:     133076
Edition:      
Description:  USB 2.0 and USB 3.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM, Disk Encryption, NVMe.
VRDE Module:  VBoxVRDP
Usable:       true 
Why unusable: 

Pack no. 1:   VNC
Version:      6.0.12
Revision:     132055
Edition:      
Description:  VNC plugin module
VRDE Module:  VBoxVNC
Usable:       true 
Why unusable: 
```

---
#### 2. ホストOS にて、virtualbox を起動するユーザ を vboxusers グループに追加


```
$ sudo gpasswd -a USER_NAME vboxusers

[sudo] USER_NAME のパスワード: 
ユーザ USER_NAME をグループ vboxusers に追加
```

再起動


---
#### 3. virtualbox にてゲストOS を選び、設定で USB デバイスフィルターにこれから使うUSB メモリを登録

- USB メモリでブートしている場合（ホストOS がUSB メモリに存在）、そのUSB メモリの登録は必要ありません。

- USB メモリでブートしている場合、そのUSB メモリと同じ製品を複数使うときは、必ず「シリアルNo」を登録します。
→そうしないと、ブートしているUSB メモリがゲストOS にマウントで奪われ、ホストOS にて、ファイルが見えなくなったりします。回避するため、ブートしたUSB メモリと同じ製品は出来るだけストレージとして使わない方が無難です。


---
### USB メモリの登録手順:

１. Virtualbox にて、ゲストOS が起動していたらシャットダウンします。

２. ゲストOS を選択 →設定 →USB

「USB コントローラーを有効化」にチェック

- USB 2.0 ポートしかない場合:  
→「USB 2.0(EHCI)コントローラー」にチェック

もしくは、

- USB 3.0 ポート（コネクタの中が青色）を使う場合:  
→「USB 3.0(xHCI)コントローラー」にチェック

「OK」をクリックしてメインメニューに戻ります。

３. USB メモリをホストマシンに挿入します。

４. ゲストOS を選択 →設定 →USB

USB デバイスフィルターで、「＋」アイコンをクリック。
ホストマシンに接続されているUSB 機器（キーボード、マウス）の一覧が表示されます。
その中で、挿したUSBメモリを選択します。

→そのUSB メモリ（のフィルタ）が登録されます。

５. 追加登録されたフィルタは、そのUSB メモリ固有の情報です。

このままだと、認識の条件が厳しいので、認識できないときがあります。少し甘めのフィルターに編集します。
→ブートしたUSB メモリと同じ製品の場合は、そのままにします。


---
#### 追加したフィルタをダブルクリックして編集

```
ベンダーID（大文字） は残します。
プロダクトID（大文字） は残します。
リビジョン は残します。

メーカー は消します。
製品名 は消します。
シリアルNo は消します。
リモート: いいえ
```

「OK」をクリック
「OK」をクリックしてメインメニューに戻ります。


---
例:

```
名前: ELECOM MF-TKU3 [0110]
ベンダーID: 056E
プロダクトID: 604D
リビジョン: 0110
メーカー: 
製品名: 
シリアル No.: 
ポート: 
リモート: いいえ
```

---
#### 特定のUSB メモリだけ表示されないとき:

「＋」アイコンの上のアイコンをクリックして、USB フィルター（空）を追加。
「＋」アイコンの下のアイコンをクリックして、それを編集します。

手動で登録するには、最低2つの情報（Vendor ID、Product ID）が必要です。名前は任意。

```
$ lsusb
:
Bus 002 Device 008: ID 056e:604d Elecom Co., Ltd 
```

↑この情報（USB デバイスの Vendor ID、Product ID、メーカー名）を利用して、編集します。

その他の情報は、「ディスク」(gnome-disks)アプリで確認できます。
「モデル名」→名前: ELECOM MF-TKU3 (PMAP)
「シリアルナンバー」→シリアル No.: 07017262853DF688

```
名前: ELECOM MF-TKU3 (PMAP)
ベンダーID: 056E
プロダクトID: 604D
リビジョン: 
メーカー: 
製品名: 
シリアル No.: 
ポート: 
リモート: いいえ
```

---
#### ちなみに、「ディスク」(gnome-disks)アプリがインストールされていないとき:

```
$ sudo apt update
$ sudo apt install gnome-disk-utility
```


---
### ゲストOS でUSB メモリの操作を確認

１. USB メモリをホストOS (Lubuntu) で初期化（FAT32、ボリューム名: USB32）してアンマウント、抜きます。

２. Virtualbox を起動。ゲストOS を選んで、起動

３. ゲストOS のウィンドウの右下の「USB」アイコンを右クリックすると、USB メモリだけでなく、USB キーボードやUSB マウスもリスト表示されました。

４. パソコンにUSB メモリを挿入。

５. ゲストOSで認識
デスクトップに「USB32」アイコン（USB メモリのボリューム名）が追加表示されました。つまり、マウントされました。


---
### あとがき

USB メモリが使えるようになると、ホストOS とゲストOS のデータ交換に使えます。データ交換用にUSB メモリ（出来たら違うメーカー品）を「FAT32」でフォーマットして準備しておくと書き込み制限を気にせずに使えます。



（[次の投稿に続く]
(https://qiita.com/FuRuYa7/items/6bd3bdce005f06da1769)）


---

今までの**投稿一覧**は 「[ここ](https://qiita.com/FuRuYa7/items/f82312cd7670408dfa8b#%E6%8A%95%E7%A8%BF%E4%B8%80%E8%A6%A7) 」


-