Linux не удается смонтировать Android-устройство в режиме USB MSC

Я хочу подключить свой Sony Xperia ST21i (Android 4.0.4) под Linux (Debian) через USB. Однако я получаю эту ошибку:

# mount /dev/sdb /mnt
mount: no medium found on /dev/sdb

Что я сделал до сих пор:

Со стороны телефона: «Настройки» > «Xperia» > «Подключение» > «Режим USB-подключения»: установите «Режим накопителя» (MSC) вместо режима передачи мультимедиа (MTP) по умолчанию.

На стороне ПК: dmesg уступает

[...] usb 2-1.3: USB disconnect, device number 12
[...] usb 2-1.3: new high-speed USB device number 13 using ehci-pci
[...] usb 2-1.3: New USB device found, idVendor=0fce, idProduct=e170
[...] usb 2-1.3: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[...] usb 2-1.3: Product: Android
[...] usb 2-1.3: Manufacturer: Android
[...] usb 2-1.3: SerialNumber: **********
[...] scsi14 : usb-storage 2-1.3:1.0
[...] scsi 14:0:0:0: Direct-Access     SONY     Mass storage     0000 PQ: 0 ANSI: 2
[...] sd 14:0:0:0: Attached scsi generic sg2 type 0
[...] sd 14:0:0:0: [sdb] Attached SCSI removable disk

Для сравнения, при монтировании дешевой карты памяти dmesg дает

[...] usb 2-1.3: USB disconnect, device number 13
[...] usb 2-1.6: new high-speed USB device number 14 using ehci-pci
[...] usb 2-1.6: New USB device found, idVendor=1307, idProduct=0165
[...] usb 2-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[...] usb 2-1.6: Product: USB Mass Storage Device
[...] usb 2-1.6: Manufacturer: P Technology
[...] usb 2-1.6: SerialNumber: 00000000000280
[...] scsi15 : usb-storage 2-1.6:1.0
[...] scsi 15:0:0:0: Direct-Access     UT165    USB Flash Disk   0.00 PQ: 0 ANSI: 2
[...] sd 15:0:0:0: Attached scsi generic sg2 type 0
[...] sd 15:0:0:0: [sdb] 3948544 512-byte logical blocks: (2.02 GB/1.88 GiB)
[...] sd 15:0:0:0: [sdb] Write Protect is off
[...] sd 15:0:0:0: [sdb] Mode Sense: 00 00 00 00
[...] sd 15:0:0:0: [sdb] Asking for cache data failed
[...] sd 15:0:0:0: [sdb] Assuming drive cache: write through
[...] sd 15:0:0:0: [sdb] Asking for cache data failed
[...] sd 15:0:0:0: [sdb] Assuming drive cache: write through
[...]  sdb:
[...] sd 15:0:0:0: [sdb] Asking for cache data failed
[...] sd 15:0:0:0: [sdb] Assuming drive cache: write through
[...] sd 15:0:0:0: [sdb] Attached SCSI removable disk

Еще несколько строк - это существенно? Означает ли это, что мне нужно настроить свой телефон по-другому, прежде чем я смогу установить его?

Следуя советам в некоторых связанных темах, я создал правило udev,

# cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"

но это не имело никакого эффекта.

Это скорее похоже на проблему Linux. Вы проверили Unix & Linux или Super User ?
Установка USB-накопителя не проблема. При подключении устройства Android в выводе dmesg отсутствуют некоторые соответствующие строки. Поэтому я склонен думать об этом как о проблеме Android.

Ответы (4)

Это обычно происходит, когда вы пытаетесь смонтировать диск, когда вы должны смонтировать раздел на этом диске. Используйте ls /dev/sdb*, чтобы увидеть, существуют ли какие-либо разделы (например, /dev/sdb1) на диске, а затем смонтируйте их вместо того, чтобы пытаться смонтировать весь диск.

ls /dev/sdb*дает только /dev/sdb, так что, к сожалению, это не решение
Я согласен с этим ответом. У меня была такая же проблема. «lsusb» показал телефон. 'ls /dev/sdb*' показал sdb и sdb1. Телефон настроен на USB-накопитель - также включена отладка Android. Но он не монтировался автоматически. Создание точки монтирования «sudo mkdir /media/sonyxperia» и монтирование «sudo mount /dev/sdb1 /media/sonyxperia» сработало.

Все, что я мог придумать на стороне Android (включение UMS), вы уже сделали. Но устройства Android могут не раскрывать свое полное хранилище через UMS. Обычно таким образом вы можете получить доступ только к внешней и внутренней SD-картам .

Для всего остального вы можете взглянуть на adbfs (см. также на XDA ) и mc-exfs-adb (который я немного модифицировал, чтобы он лучше работал в моей системе Linux; эту версию вы можете найти здесь ). Оба варианта требуют, чтобы на вашем компьютере была хотя бы минимальная установка ADB (см.: Существует ли минимальная установка ADB? ).

Я пробовал оба варианта и предпочитаю adbfs-rootless. Работает как шарм. Если ваше устройство рутировано, вы можете комбинировать это с adbd insecure от Chainfire, чтобы получить полный доступ ко всей файловой системе.

На этот вопрос ответил @derobert по адресу https://unix.stackexchange.com/q/90069/46841 : режим MSC работает только для доступа к карте памяти, которой у меня нет; для доступа к собственной файловой системе телефона мне нужен другой режим доступа.

Соглашусь с Иоахимом...

Чтобы получить доступ к внутренней памяти телефона, вам необходимо установить libmtp и mtpfs для вашего дистрибутива Linux. Что-то вроде :

sudo mtpfs -o allow_other/mnt

... должно помочь.

Хорошее обсуждение здесь: http://forum.xda-developers.com/showthread.php?t=1720464