25 arch-linux usb mount usb-drive
使用 Arch Linux / XFCE,我经常遇到未正确安装的 USB 驱动器问题。有时它们会自动出现在 Thunar 中,我可以一键安装它们。但是,在其他时候(大约是五十/五十),只是无法识别驱动器。我在使用 USB 外置硬盘、USB 记忆棒和相机时遇到过这个问题。如果无法识别外部驱动器,则是这种情况:
fdisk -l(它只显示我的硬盘驱动器)/dev/disklsusb 所以有某种认识,但我不明白为什么,也不知道发生这种情况时如何安装驱动器。我只是重新启动并希望下次可以正常工作,这显然不方便......
更新
当我监控时/var/log/everything.log(系统日志中没有信息),然后我在插入 USB 时看到这种情况:
Dec 14 15:36:32 localhost kernel: [ 6591.042911] usb 1-3: new high speed USB device number 9 using ehci_hcd
Dec 14 15:36:32 localhost mtp-probe: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3"
Dec 14 15:36:32 localhost mtp-probe: bus: 1, device: 9 was not an MTP device
Run Code Online (Sandbox Code Playgroud)
这是另一个请求的输出:
$udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[6809.192268] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
KERNEL[6809.193421] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)
UDEV [6809.299246] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
UDEV [6809.306074] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)
Run Code Online (Sandbox Code Playgroud)
kby*_*yrd 13
问题似乎是一个包罗万象的规则/lib/udev/rules.d/69-libmtp.rules:
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
Run Code Online (Sandbox Code Playgroud)
注释掉该行,如下所示,解决了问题:
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
Run Code Online (Sandbox Code Playgroud)
就我而言,我不得不重新启动,但可能有一个可以重新启动的服务。
小智 8
我曾经ENV{MTP_NO_PROBE}="1"停止过 MTP 探针。这样我就没有修改 Arch 的/lib/udev/rules.d/69-libmtp.rules.
export MTP_NO_PROBE="1"
Run Code Online (Sandbox Code Playgroud)