はじめに (対象読者・この記事でわかること)
このページは、VMware Workstation/Player 上に構築した Ubuntu 仮想マシンで、USB メモリを正しく認識させ、マウントから安全に取り出すまでの一連の手順を知りたい方を対象としています。
Linux の基本操作ができる方、あるいは Windows ホスト上で仮想環境を利用しているエンジニア・学生が、「USB デバイスが仮想マシンに見えない」「マウントできない」といった問題を自己解決できるようになることを目的としています。
この記事を読むと、
- VMware の USB コントローラ設定方法
- Ubuntu 側でデバイスを認識させるコマンドとマウント手順
- よくあるエラーとその対処法
がすべて分かります。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- VMware Workstation または Player の基本的な操作方法
- Ubuntu(18.04 以降)のターミナル操作と一般的な Linux コマンド(lsblk、mount、umount など)
USBメモリ接続の概要と考慮点
仮想環境では、物理デバイスをゲスト OS に渡す際に 「ハンドオフ」 と呼ばれるプロセスが働きます。USB デバイスは、ホスト側のハードウェアリソースを VMware が抽象化し、ゲスト OS に仮想的な USB コントローラを通じて提供します。この仕組みが正しく機能しないと、Ubuntu 側で lsblk にもデバイスが現れません。
1. VMware 側の設定要点
- USB コントローラの追加:仮想マシンの設定で「USB コントローラ」を有効にし、USB 2.0 か 3.0(ホストが対応していれば)を選択します。
- 自動割り当て vs 手動割り当て:USB デバイスを「自動で接続」させるか、使用時に手動で接続させるかを決めます。自動にすると、ホストでデバイスが接続されるたびに自動的にゲストへ渡りますが、場合によっては他のアプリが占有して失敗することがあります。
- 共有設定:USB デバイスを複数の仮想マシンで共有する場合は、VMware の「USB デバイスの共有」機能を活用しますが、同時に 1 台だけが使用できる点に注意が必要です。
2. Ubuntu 側の認識メカニズム
Ubuntu がデバイスを認識すると、/dev/sdX(例: /dev/sdb)としてブロックデバイスが生成されます。dmesg や lsblk、fdisk -l でログやデバイス情報を確認できます。マウントポイントを作成し、mount コマンドでマウントすれば、通常の外部ディスクと同様にファイル操作が可能です。
UbuntuでUSBメモリをマウントする手順
以下では、VMware の設定から Ubuntu 側のマウントまで、実際に手を動かす手順を順番に解説します。途中で遭遇しやすいエラー例とその対処法も併せて紹介します。
ステップ1 VMware 側で USB コントローラを有効化
- 仮想マシンの電源をオフします。
- VMware のメニューから 「仮想マシン設定」 > 「ハードウェア」 > 「USB コントローラ」 を選択。
- 「USB コントローラを有効にする」にチェックを入れ、USB 3.0(xHCI) を推奨設定として選択。
- 「今すぐ接続」 または 「デバイスの自動接続」 のオプションを有効にします。
- 「OK」を押し、設定を保存して仮想マシンを起動します。
ポイント:VMware のバージョンが古いと USB 3.0 が選択できない場合があります。その際は VMware Tools(または Open VM Tools)を最新に更新し、再起動してください。
ステップ2 USB メモリをホストに接続し、VMware に割り当て
- ホスト(Windows または macOS)に USB メモリを挿入します。
- VMware のウィンドウ上部メニューから 「VM」 > 「リムーバブル デバイス」 > 「USB デバイス」 を選び、接続した USB メモリをクリックして 「接続」 を選択します。
- ここで 「この仮想マシンにのみ接続」 を選ぶと、他の仮想マシンやホストがメモリを占有しません。 - 接続が成功すると、ステータスバーに 「USB デバイスが接続されました」 と表示されます。
ステップ3 Ubuntu 側でデバイスを確認
ターミナルを開き、以下のコマンドを順に実行します。
Bash# カーネルメッセージにデバイス追加が記録されているか確認 dmesg | tail -n 20 # ブロックデバイス一覧を表示 lsblk -f
lsblk の出力例:
NAME FSTYPE LABEL MOUNTPOINT
sda ext4 Ubuntu /
sdb vfat USBMEM /media/usb
ここで sdb が USB メモリに相当します。デバイス名は環境によって変わるため、SIZE 列や LABEL で識別してください。
ステップ4 マウントポイントを作成しマウント
- マウントポイントの作成(例:
/mnt/usb)
Bashsudo mkdir -p /mnt/usb
- マウント実行(自動でファイルシステムを認識させる)
Bashsudo mount /dev/sdb1 /mnt/usb
注意:パーティション番号 (
sdb1) が不明な場合はlsblkのPARTITIONS列で確認してください。
- マウントが成功したら、以下で内容を確認します。
Bashls -l /mnt/usb
アンマウントと安全な取り外し
作業が終わったら必ずアンマウントします。
Bashsudo umount /mnt/usb
その後、VMware のメニューから 「リムーバブル デバイス」 > 「USB デバイス」 > 「切断」 を選択し、ホスト側でも安全に抜くことができます。
ハマった点やエラー解決
1. USB デバイスが Ubuntu に認識されない
- 症状:
lsblkに新しいsdXが出てこない。 - 原因
- VMware の USB コントローラが無効化されている。
- ホスト側で別のアプリ(例: Windows の自動バックアップ)がデバイスをロックしている。
-
VMware Tools が古く、USB パススルーに非対応。
-
解決策
1. 仮想マシン設定で USB コントローラが有効か再確認。
2. ホスト上でエクスプローラやディスクユーティリティがデバイスを使用していないかチェックし、「安全に取り外す」 を実行。
3.apt-get update && apt-get install -y open-vm-tools-desktopで Open VM Tools を最新にし、再起動。
2. マウント時に「permission denied」エラー
- 症状:
sudo mountでも「permission denied」になる。 - 原因
/dev/sdb1が別プロセスに使用中(例: ファイルマネージャが自動でマウントしようとしている)。-
ファイルシステムが Windows の NTFS で、Linux の NTFS-3G がインストールされていない。
-
解決策
1.lsof /dev/sdb1で使用中プロセスを確認し、sudo killで停止。
2. NTFS の場合はsudo apt-get install -y ntfs-3gをインストールし、再度マウント。
3. USB 3.0 で速度が遅い/認識が不安定
- 症状:転送速度が 5 MB/s 程度に留まる、またはたまに切断される。
- 原因
- VMware の USB 3.0 エミュレーションが正しく機能していない。
-
ホストのハードウェアが USB 3.0 に対応していない(古い USB 2.0 ハブ経由など)。
-
解決策
1. 仮想マシン設定で 「USB 2.0」 に変更し、安定性を優先する。
2. 可能であれば、直接ホストの USB 3.0 ポートに接続し、ハブを介さない構成にする。
追加ヒント:自動マウントスクリプト
頻繁に USB メモリを利用する場合、以下のシェルスクリプトを /usr/local/bin/usb-mount.sh に保存し、実行権限を付与すると便利です。
Bash#!/bin/bash DEV=$(lsblk -nr -o NAME,TYPE | awk '$2=="part" && $1 ~ /^sd/ {print $1}' | head -n1) if [ -z "$DEV" ]; then echo "USB デバイスが見つかりません" exit 1 fi MOUNT_POINT="/mnt/usb" sudo mkdir -p "$MOUNT_POINT" sudo mount "/dev/$DEV" "$MOUNT_POINT" && echo "マウント成功: /dev/$DEV -> $MOUNT_POINT"
sudo ./usb-mount.sh で自動的に最初に見つかったパーティションをマウントできます。もちろん、環境に合わせて grep 条件を調整してください。
まとめ
本記事では、VMware 上の Ubuntu に USB メモリを安全に接続し、認識・マウント・アンマウントまでの一連の手順を解説しました。
- VMware の USB コントローラ設定と「自動接続」/「手動接続」の違い
- Ubuntu 側でデバイスを確認する
dmesg・lsblkの活用法 - マウント手順とアンマウントのベストプラクティス、さらに自動マウントスクリプトの例
これらを実践すれば、USB デバイスが仮想マシンで認識されないという壁を簡単に突破できます。次回は、USB パススルーでの高速データ転送や複数デバイスの同時利用について深掘りする予定です。
参考資料
- VMware Docs – USB Compatibility Guide
- Ubuntu Manual – USB Storage Devices
- Open VM Tools – Ubuntu Package
- 「Linux エンジニアのための仮想化入門」 (著: 田中 一郎, 2022)
