Mounting USB drive that is not recognized

Using Arch Linux / XFCE, I frequently have problems with USB drives that are not properly mounted. Sometimes they automatically show up in Thunar and I can mount them with one click. However, at other times (it’s about fifty/fifty) the drive is just not recognized. I have had this problem with USB External Hard Drives, USB Memory Sticks, and cameras. If the external drive is not recognized, this is the situation:

  • The drive does not show up at fdisk -l at all (it only shows my hard drives)
  • The drive does not appear at /dev/disk
  • The drive DOES appear when running lsusb

So there is some sort of recognition, but I do not understand why, nor do I know how to mount the drives when this happens. I just reboot and hope it works next time, which is clearly not convenient…

UPDATE

When I monitor /var/log/everything.log (no info in syslog), then I see this happen when plugging in the 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

This is another requested output:

$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)

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

The problem seems to be a catchall rule in /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"

Commenting out that line, as shown below, fixed the problem:

# 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"

In my case, I had to reboot, but there’s probably a service that could be restarted instead.

Method 2

I used ENV{MTP_NO_PROBE}="1" to stop the MTP Probe.
That way I didn’t have modify the Arch’s /lib/udev/rules.d/69-libmtp.rules.

export MTP_NO_PROBE="1"

Method 3

Logging shows that there’s something going on with the MTP device detection.

Try uninstalling libmtp if you can get away with it, or just comment out the udev rule in the relevant file.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x