【2025年06月版】Proxmox + TerraMaster TDAS：HDDホットスワップ後の認識エラー解決メモ (can't set config #1, error -110)

# はじめに

HDDベイにHDDをホットスワップで入れ替えたけど認識しない。。。

`can't set config #1, error -110` ってエラーログはいてる。。。

USB自体は認識してそう。。。ケースもケーブルも問題なさそう。。。さっきまで認識してたし。。。

この状態でUSBの抜き差し、OSの再起動をすることなく、認識できた方法のメモ

# 環境

- Proxmox VE 8.4 + TerraMaster TDAS の4ベイエンクロージャー（USBドライブ）
- 4ベイのうち、3ベイを使用中で、そのうち2ベイは NAS として VM から使用中
  - このUSBデバイスの別のHDDを NAS としてつかっているので
    - Proxmox の再起動はしたくない
    - USBデバイスの抜き差しもしたくない
- ここで使っていないベイで HDD を抜き差し、その時 `can't set config #1, error -110` となった

# 現象

```
Jun 14 08:19:54 pve kernel: usb 10-1.1: new SuperSpeed Plus Gen 2x1 USB device number 14 using xhci_hcd
Jun 14 08:20:05 pve kernel: usb 10-1.1: New USB device found, idVendor=174c, idProduct=235c, bcdDevice= 1.00
Jun 14 08:20:10 pve kernel: usb 10-1.1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Jun 14 08:20:10 pve kernel: usb 10-1.1: Product: TDAS
Jun 14 08:20:10 pve kernel: usb 10-1.1: Manufacturer: TerraMaster
Jun 14 08:20:10 pve kernel: usb 10-1.1: can't set config #1, error -110
```

というログを吐いて `lsblk` しても認識されていない。

# 対応

```termnal
$ lsusb -t
/:  Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
    |__ Port 1: Dev 10, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 2: Dev 13, If 0, Class=Mass Storage, Driver=usbfs, 10000M
        |__ Port 3: Dev 11, If 0, Class=Mass Storage, Driver=usbfs, 10000M
$
# 接続されているUSBハブとポートの情報を表示
$ uhubctl
Current status for hub 9-1 [0bda:5423 TerraMaster 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0100 power
  Port 2: 0100 power
  Port 3: 0100 power
  Port 4: 0100 power
Current status for hub 10-1 [0bda:0423 TerraMaster 4-Port USB 3.2 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 0203 power 5gbps U0 enable connect [174c:235c TerraMaster TDAS             ZXA0B6SS]
  Port 2: 0203 power 5gbps U0 enable connect [174c:235c TerraMaster TDAS             ZXA0XCEN]
  Port 3: 0203 power 5gbps U0 enable connect [174c:235c TerraMaster TDAS             WVT07T8J]
  Port 4: 02a0 power 5gbps Rx.Detect

# 特定のポートをリセット (例: Bus 10, Port 1の場合)
# uhubctl の出力でハブのロケーションとポート番号を確認し、正確なコマンドを実行する。
# 
# Bus 10-Port 1 は、通常はルートハブのポート。
# TerraMaster TDASが USB 10-1.1 に接続されている場合、
# 親ポートは 10-1 となるので、通常はルートハブのポート1が対象になる。
$ uhubctl -l 10-1 -p 1 -a off # ポートをオフにする
Current status for hub 9-1 [0bda:5423 TerraMaster 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0100 power
Sent power off request
New status for hub 9-1 [0bda:5423 TerraMaster 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0000 off
Current status for hub 10-1 [0bda:0423 TerraMaster 4-Port USB 3.2 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 0203 power 5gbps U0 enable connect [174c:235c TerraMaster TDAS             ZXA0B6SS]
Sent power off request
New status for hub 10-1 [0bda:0423 TerraMaster 4-Port USB 3.2 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 00a0 off
$
$ uhubctl -l 10-1 -p 1 -a on  # 数秒待ってポートをオンにする
Current status for hub 9-1 [0bda:5423 TerraMaster 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0000 off
Sent power on request
New status for hub 9-1 [0bda:5423 TerraMaster 4-Port USB 2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0100 power
Current status for hub 10-1 [0bda:0423 TerraMaster 4-Port USB 3.2 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 00a0 off
Sent power on request
New status for hub 10-1 [0bda:0423 TerraMaster 4-Port USB 3.2 Hub, USB 3.20, 4 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
$
$ lsusb -t
/:  Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
    |__ Port 1: Dev 10, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 1: Dev 15, If 0, Class=Mass Storage, Driver=uas, 10000M
        |__ Port 2: Dev 13, If 0, Class=Mass Storage, Driver=usbfs, 10000M
        |__ Port 3: Dev 11, If 0, Class=Mass Storage, Driver=usbfs, 10000M
```

認識されて使えるようになった。

# さいごに

リモートワークでやってると困りますね。