我的 ubuntu 20.04 桌面最近在如何安装可移动介质(如 USB 存储驱动器)方面发生了一些变化。
以前,此类设备会出现在位置/media/$USER/....
但是现在当连接 USB 存储设备时,该目录为空。
对于非 root 用户来说,设备仍然出现在启动器中,并且可以从 GUI 正常操作。
但是我需要能够从命令行和脚本引用它们,因为从 ubuntu 16.04 及以上版本开始这已经工作了很多年,直到最近发生了一些变化。
例如,当我使用启动器打开我的随身听,然后使用其“在终端中打开”时,我可以看到我的随身听的路径现在是:
/run/user/1000/gvfs/mtp:host=SONY_WALKMAN_104316F6127986/Storage Media
而之前则是: /media/$USER/WALKMAN
我怎样才能恢复以前的行为?
lsusb
编辑1:连接随身听后,非root用户的输出是:
Bus 002 Device 002: ID 8087:8002 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 04f2:0939 Chicony Electronics Co., Ltd USB Optical Mouse
Bus 003 Device 003: ID 413c:2113 Dell Computer Corp. Dell KB216 Wired Keyboard
Bus 003 Device 074: ID 054c:0882 Sony Corp. WALKMAN
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
编辑2:/etc/udev/rules.d/90-sony.rules
内容如下:
ATTR{idVendor}=="054c", ATTR{idProduct}=="0882", ENV{ID_MTP_DEVICE}="0", ENV{ID_MEDIA_PLAYER}="1"
请注意,受影响的不仅是随身听,甚至我用于备份的 USB3 旋转驱动器也受到影响。
在 root 运行后连接 walkmanudevadm control -R
并没有改变症状(/media/$USER 仍然为空),并且 dmesg 显示以下内容:
[665818.085033] usb 3-1: new high-speed USB device number 75 using xhci_hcd
[665818.233352] usb 3-1: New USB device found, idVendor=054c, idProduct=0882, bcdDevice= 0.01
[665818.233361] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[665818.233366] usb 3-1: Product: WALKMAN
[665818.233369] usb 3-1: Manufacturer: SONY
[665818.233372] usb 3-1: SerialNumber: ...
[665818.234208] usb-storage 3-1:1.0: USB Mass Storage device detected
[665818.234550] scsi host4: usb-storage 3-1:1.0`
答案1
您的设备现在已使用 mtp 协议挂载。这样,挂载后,设备本身就可以真正控制对存储介质的读写,从而大大降低了设备驱动器系统损坏的可能性。libmtp
在较新的 Ubuntu 版本中默认安装。
以前,您的设备将作为 USB 驱动器安装。然后 Ubuntu 会直接访问介质的存储。但是您报告说普通的 USB 驱动器也会这样安装。请仔细检查。
我做过测试,但不会再测试,但删除 mtp 库可能会恢复到您特定设备的旧行为。但是,您将无法再安装较新的 Android 手机。如今只能使用 mtp 访问这些手机,并且不再支持“传统”安装。
或者,您可能仍可以完全手动安装您的 Walkman。其分区可能会出现在lsblk
或 的输出中sudo fdisk -l
。