みなさん、こんにちは。
今回は、Raspberry Pi 4やRaspberry Pi 5をお使いの方で、「USBメモリもしくは外付けHDDのファイル転送速度がどうも遅いな…」と感じている方、必見の情報をお届けします。
もしかしたら、その原因はUSBメモリもしくは外付けHDDがUSB 3.0ではなく、USB 2.0として認識されてしまっていることにあるかもしれません。
USB 3.0のはずなのに遅い?その原因はUSB 2.0認識かも!
Raspberry Pi 4および5には、青い端子でお馴染みのUSB 3.0ポートが搭載されています。USB 3.0は、理論値で最大5Gbps(5000Mbps)という高速なデータ転送速度を誇り、外付けHDDやSSDを接続する際には、その速度を最大限に活かしたいですよね。
しかし、いざファイルを転送してみると、どうも期待通りの速度が出ない…そんな経験はありませんか?もしそうなら、USBメモリもしくは外付けHDDがUSB 2.0(理論値最大480Mbps)として認識されてしまっている可能性が高いです。
USB 3.0とUSB 2.0では、その転送速度に約10倍もの差があります。例えば、1GBのファイルを転送するのに、USB 3.0なら数秒で終わるところが、USB 2.0だと数十秒かかる、といった具合です。大容量のファイルを扱う方にとっては、この速度差は非常に大きな問題となります。
なぜUSB 2.0として認識されてしまうのか?
「きちんとUSB 3.0ポートに挿しているのに、なんでUSB 2.0になっちゃうの?」と疑問に思われるかもしれませんね。その原因の一つとして考えられるのが、「USBケーブルの差し込み方」です。
USB 3.0のコネクタは、内部にUSB 2.0用の4本のピンと、USB 3.0用の5本のピン(SuperSpeedと呼ばれる高速通信用)が並列に配置されています。つまり、USB 3.0のポートにケーブルを挿入する際、ゆっくりと差し込むと、まずUSB 2.0のピンだけが先に接触し、その状態でデバイスが認識されてしまうことがあるのです。一度USB 2.0として認識されてしまうと、その後のUSB 3.0ピンの接続が確立されても、デバイスがモードを切り替えない限り、USB 2.0のまま動作してしまうことがあります。
この現象は、USB 3.0の規格が策定される段階で考慮されていたものの、物理的な接続のしやすさから、ゆっくり挿入した場合の動作がUSB 2.0として認識されやすいという特性が残ってしまったと考えられます。
参考:USB3.0をゆっくり挿すとUSB2.0として認識してしまう
確認方法 | あなたのHDDはUSB 3.0で認識されている?
まずは、実際にUSBメモリもしくは外付けHDDがUSB 3.0として認識されているか確認してみましょう。
Raspberry Piのターミナルを開き、以下のコマンドを実行します。
lsusb -t
このコマンドは、USBデバイスのツリー構造と、それぞれのデバイスがどのUSBバージョン(速度)で接続されているかを表示してくれます。
もし、次のように表示されていたら、残念ながらUSB 2.0として認識されてしまっています。
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 480M
上記の例では、「Bus 01」がUSB 2.0ポートを示しており、その下の「Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 480M」の部分に、USBメモリもしくは外付けHDDが「480M」(480Mbps)という転送速度で認識されていることがわかります。本来USB 3.0で接続されるべきデバイスが、Bus 01(USB 2.0)にぶら下がってしまっている状態です。
一方で、以下のように表示されていれば、USB 3.0として認識できています!
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
この例では、「Bus 02」がUSB 3.0ポートを示しており、「Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M」の部分に、USBメモリもしくは外付けHDDが「5000M」(5000Mbps)という高速な転送速度で認識されていることが確認できます。先ほどと同じポートに差し込んでいるのに、Bus 02(USB 3.0)にぶら下がっているのがポイントです。
対応方法 | USB 3.0として認識させるには
もしUSB 2.0として認識されてしまっていた場合でも、ご安心ください。いくつかの簡単な方法でUSB 3.0として認識させることができます。
1. 物理的な再接続(基本中の基本!)
最も手軽で効果的な方法です。
- マウントされている場合はアンマウントする
まず、もしUSBメモリもしくは外付けHDDがRaspberry Piにマウントされている場合は、データ破損を防ぐためにアンマウントします。
マウントポイントは環境によって異なりますので、適宜読み替えてください。sudo umount /path/to/your/mountpoint
- USB 3.0ポートから抜いて、素早く差し直す
これが一番のポイントです。USB 3.0ポートからUSBメモリもしくは外付けHDDのケーブルを抜き、今度は迷わず、しっかりと、そして素早く差し込んでください。
爪のあるLANケーブルのように「カチッ」と音がするまで一気に奥まで挿入するイメージです。これにより、USB 3.0のピンが最初にしっかりと接触し、デバイスがUSB 3.0として認識されやすくなります。
再接続後、再度lsusb -t
コマンドを実行して、USB 3.0(5000M)として認識されているか確認してみてください。
2. ソフトウェア的な再接続(離れた場所にある場合に便利)
もしRaspberry Piが手の届かない場所に設置されているなど、物理的な再接続が難しい場合は、ソフトウェア的にUSBポートの切断と接続を行うことができます。ただし、このコマンドを実行すると、一時的にすべてのUSBポートが切断されるため、実行時は十分注意してください。 Raspberry Piにキーボードやマウスを接続している場合、一時的に操作ができなくなる可能性があります。SSH接続などでリモートから実行するのがおすすめです。
- マウントされている場合はアンマウントする
物理的な再接続と同様に、まずUSBメモリもしくは外付けHDDをアンマウントします。sudo umount /path/to/your/mountpoint
- USBポートをリセットするコマンドを実行
以下の2つのコマンドを順番に実行します。sudo sh -c "echo 1 > /sys/bus/pci/devices/0000:00:00.0/remove"
sudo sh -c "echo 1 > /sys/bus/pci/rescan"
最初のコマンドはPCIデバイス(USBコントローラもこれに含まれます)を一時的に無効化し、次のコマンドで再スキャンして有効化します。これにより、USBデバイスが再認識され、USB 3.0としての接続が試みられます。
参考:Raspberry Pi4でUSBメディアを認識しなくなったときの対応コマンド
コマンド実行後、しばらく待ってから再度lsusb -t
コマンドを実行し、USB 3.0(5000M)として認識されているか確認しましょう。
まとめ | 接続が遅いと思ったら、まずは確認!
Raspberry Pi 4や5でUSBメモリもしくは外付けHDDのファイル転送速度が遅いと感じたら、まずはlsusb -t
コマンドでUSB 2.0として認識されていないか確認してみてください。もしそうだった場合は、本記事で紹介した物理的またはソフトウェア的な再接続を試すことで、本来のUSB 3.0の高速転送を取り戻せる可能性が高いです。
ちょっとしたことですが、この認識の違いが快適なRaspberry Piライフを左右することもあります。ぜひ、お試しください!
本日も最後までお読みいただきありがとうございました。
それでは、よいRaspberry Piライフを!