Ubuntu 預設 MTP (Media Transfer Protocol) 支援較舊,無法正確識別 Windows Phone 設備 (VID:PID 01b1:01b1 等),導致檔案管理器無法掛載存儲。解決方案:添加 gvfs-mtp PPA 更新核心 MTP 後端 + 建立 udev 規則強制識別裝置。本文提供完整指令流程。
sudo add-apt-repository ppa:langdalepl/gvfs-mtp
sudo apt-get update && sudo apt-get upgrade
sudo nano /etc/udev/rules.d/69-libmtp.rules
# Nokia/Microsoft Lumia 系列
ATTR{idVendor}=="0421", ATTR{idProduct}=="06e8", SYMLINK+="libmtp-%k", MODE="660", ENV{ID_MTP_DEVICE}="1"
ATTR{idVendor}=="0421", ATTR{idProduct}=="01c8", SYMLINK+="libmtp-%k", MODE="660", ENV{ID_MTP_DEVICE}="1"
# 通用 Microsoft 實現
ATTR{idVendor}=="045e", ATTR{idProduct}=="04ec", SYMLINK+="libmtp-%k", MODE="660", ENV{ID_MTP_DEVICE}="1"
# 文中提到的 01b1:01b1 (可能為特定型號)
ATTR{idVendor}=="01b1", ATTR{idProduct}=="01b1", SYMLINK+="libmtp-%k", MODE="660", ENV{ID_MTP_DEVICE}="1"
sudo udevadm control --reload-rules
sudo udevadm trigger
# 查看裝置是否被識別為 MTP
lsusb
# 輸出應含 ID 0421:06e8 Nokia Mobile Phones 等
# 手動測試 mtp 工具
mtp-detect
mtp-files
mtp-folders
gvfs-mtp PPA 更新了 libmtp (裝置識別資料庫) 與 gvfs-backend-mtp (GVfs 虛擬檔案系統後端),支援更新機型。udev 規則在核心層面賦予裝置節點正確權限 (MODE="660") 與標籤 (ENV{ID_MTP_DEVICE}="1"),讓 GVfs 自動掛載。SYMLINK+="libmtp-%k" 建立穩定符號連結供 libmtp 程式庫使用。