Проверка и монтирование SD‑карты через ADB — краткая инструкция
Вкратце: подключите устройство, проверьте adb devices, затем через adb shell выполните df -h, ls -l /storage/ и mount | grep -E 'sd|storage' — эти команды покажут, какие накопители видит система и где они смонтированы. Для ручного монтирования потребуется root и корректный путь к блочному устройству (например /dev/block/mmcblk1p1).
Как быстро проверить подключение и доступность накопителей
- Подключите устройство в режиме передачи файлов (MTP/File Transfer). Убедитесь, что ПК видит устройство:
adb devices
- Просмотреть точки монтирования и размеры:
adb shell df -hadb shell mount | grep -E 'sd|storage'
- Посмотреть список доступных каталогов:
adb shell ls -l /storage/adb shell ls -l /sdcard/Обратите внимание на папки видаXXXX-XXXX— это идентификаторы внешних томов (microSD).
- Найти блочное устройство:
adb shell ls -l /dev/block/ | grep mmc- или
adb shell ls -l /dev/block/vold*
- Для ошибок на уровне ядра/файловой системы:
adb shell dmesg | tail— полезно при проблемах с распознаванием карты.
Если внешний том не отображается, переключите режим USB (PTP/MTP), попробуйте другой кабель/порт и перезагрузите устройство. На Windows проверьте драйверы ADB.
Как вручную смонтировать SD‑карту через ADB (практическая инструкция)
Предупреждение: большинство операций монтирования требуют root. На стоковых устройствах права часто ограничены.
Шаги:
- Получите root в shell (если доступен):
adb rootилиadb shell+su. - Найдите блочное устройство карты, например:
adb shell ls -l /dev/block | grep mmcblkЧастый результат:/dev/block/mmcblk1p1или/dev/block/vold/179:33.
- Создайте точку монтирования:
adb shell mkdir -p /mnt/ext_sd
- Выполните монтирование (пример для FAT/exFAT):
adb shell mount -t vfat /dev/block/mmcblk1p1 /mnt/ext_sdДля ext4:mount -t ext4 /dev/block/... /mnt/ext_sd
- Проверьте доступность:
adb shell ls -la /mnt/ext_sd
- Если нужно скопировать файлы на ПК:
adb pull /storage/XXXX-XXXX/путь/файл ./И обратно:adb push local.file /sdcard/Download/
Неправильное указание устройства или типа файловой системы может привести к потере данных. Всегда делайте бэкап перед форматированием.
Диагностика и способы решения проблем
- Карта не видна устройством:
- Проверка физической вставки, очистка контактов, тест карты в кардридере.
- Проверить логи ядра:
adb shell dmesg | tail.
- Доступ ограничен (permissions/SELinux):
- Проверьте права и контекст:
ls -Z /storage/.... - На приложениях используйте Storage Access Framework вместо прямого доступа.
- Проверьте права и контекст:
- Некорректная ФС (ошибки чтения):
- Попробуйте смонтировать на ПК и выполнить проверку диска; при необходимости форматируйте в FAT32/exFAT/EXT4 в зависимости от требований устройства.
- Карта монтируется, но файлы недоступны:
- Выполните
adb shell syncи проверьте, не мешает ли MediaScanner; также проверьте UID/GID владельца.
- Выполните
Практические команды для быстрой диагностики:
adb devicesadb shell df -hadb shell ls -l /storage/adb shell mount | grep -E 'sd|storage'adb shell dmesg | tailadb pull /storage/XXXX-XXXX/путь ./
Частые ошибки
- Попытка смонтировать без root — большинство устройств запретят операцию.
- Неправильный тип ФС в команде mount (
vfatvsexfatvsext4). - Форматирование без бэкапа — потеря данных.
- Путаница между внутренним emulated
/sdcardи внешним томом/storage/XXXX-XXXX.
FAQ
- Нужно ли root для всех операций?
Нет — базовая проверка видимости и копирование черезadb pull/pushобычно работают без root. Ручное монтирование почти всегда требует root. - Как узнать идентификатор внешней карты?
Смотритеadb shell ls -l /storage/— внешний том обычно имеет имя видаXXXX-XXXX. - Можно ли изменить точку монтирования без рут‑прав?
Нет, это системная операция; используйте официальные API (Storage Access Framework) для доступа из приложений. - Как безопасно извлечь карту?
Отмонтируйте на устройстве через настройки хранилища или выполнитеadb shell am broadcast -a android.intent.action.MEDIA_UNMOUNTED --ez read-only true(команды зависят от версии Android) и дождитесь завершения операций записи.
Если нужно, адаптирую команды под вашу платформу (Windows/macOS/Linux) или конкретную модель устройства.