Проблема с хранением?

У меня странная проблема. Я использую Sony Xperia Z1s под управлением Lollipop. Несколько дней назад я заметил, что Spotify выдает мне уведомление, в котором говорится: «Область хранения не найдена. Проверьте настройки хранилища устройства». Эта своего рода ошибка не позволяет использовать Spotify вообще. Я очистил кеш, данные и даже удалил Spotify. Я ничего не думал об этом, пока я также не заметил, что не могу фотографировать. Технически я могу делать фотографии, но они не сохраняются. И да, у меня еще много места на SD-карте и во внутреннем пространстве.

Место на SD-карте внутреннее пространство espotify уведомление
На снимках экрана показаны уведомления Spotify и место для хранения на моем телефоне (нажмите на изображение, чтобы увеличить его)

Я запустил mountэмулятор терминала для Android и получил следующее:

u0_a307@C6916:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /tmp tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,relatime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,relatime,discard,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/apps_log /mnt/idd ext4 rw,seclabel,nosuid,nodev,noexec,noatime,discard,nobarrier,data=ordered 0 0
tmpfs /storage/remote tmpfs rw,seclabel,relatime,size=1024k,nr_inodes=256,mode=750,gid=1028 0 0
/dev/block/platform/msm_sdcc.1/by-name/LTALabel /lta-label ext4 ro,context=u:object_r:lta_label:s0,nosuid,nodev,noexec,noatime,data=ordered 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
tmpfs /storage/emulated tmpfs rw,seclabel,nosuid,nodev,relatime,mode=751,gid=1028 0 0
/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:65 /mnt/secure/asec vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /storage/sdcard1 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
/dev/fuse /storage/emulated/0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
/dev/fuse /storage/emulated/legacy fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
u0_a307@C6916:/ $
Не мог этого знать — но скриншоты кажутся достаточно четкими. Третье действительно раздражает этим предупреждением. Значок рядом с «Область хранения не найдена» принадлежит Spotify? Поскольку я не использую это приложение: вы можете настроить там «область хранения»? Но это не объясняет, почему нельзя фотографировать. Какие сообщения об ошибках вы получаете, если попытаетесь это сделать? Или если вы попытаетесь записать файл с помощью любого другого приложения?
Мне не нужно было устанавливать раздел в приложении или что-то в этом роде. Вчера, когда я сделал снимок, он загружался 2 минуты, а затем выдавал всплывающее окно о невозможности сохранения. Теперь вообще ничего не происходит, кроме эффекта затвора. Странно то, что он позволяет мне делать скриншоты.
Хорошо, это исключает хранилище только для чтения, которое, как я думал, может быть причиной. Вы по-прежнему можете устанавливать приложения из Play Market? Попробуйте, например , эмулятор терминала . Запустите его, введите mountи нажмите Enter. Добавьте результат в свой пост. Это покажет нам, как ваше хранилище подключено к системе, и если, возможно, части доступны только для чтения, этого не должно быть.
Похоже, все, что нужно было моему телефону, это перезагрузка. Я так и сделал, вроде проблема решилась. Что странно, учитывая, что я перезагружал свой телефон раньше, и проблема не была устранена.
Объяснение в моем ответе ниже. Рад, что это решилось для вас так просто!

Ответы (1)

Как я догадался (и это было подтверждено выводом mountкоманды), части файловой системы были смонтированы только для чтения — в частности, внутренняя и внешняя SD-карты. Взгляните на строки с vold/179:65записями ("vold" используется только для SD-карт), я выбираю, например:

/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat ro,[…],errors=remount-ro[…]

Синтаксис здесь (упрощенный): <device> <mount-point> <file-system> <options>. Итак, мы видим, что у нас есть «блоковое устройство vold» (то есть SD-карта), смонтированное как sdcard1(внешнее; обычно внутреннее sdcard0) с использованием VFAT в качестве файловой системы. Теперь идут варианты, и первое, что мы видим, это то, roчто означает «только для чтения». То же самое относится и к внутренней карте. Поскольку он доступен только для чтения, здесь ничего нельзя написать — отсюда и ваши проблемы.

Как это может случиться? — спросите вы, — поэтому позвольте мне указать на вариант в конце: errors=remount-ro. Изначально обе карты были смонтированы в режиме чтения-записи. Что-то вызвало проблемы, и в системе было «слишком много ошибок» при чтении/записи на карты — поэтому сработало это условие: чтобы защитить карты от повреждений, Android перемонтировал их только для чтения. Это также объясняет, почему перезагрузка решила проблему: во время загрузки, после проверки файловых систем, они снова монтируются для чтения-записи — до тех пор, пока какие-то проблемы/ошибки не вызовут повторное монтирование только для чтения.

Итак, что нужно делать? На данный момент перезагрузка, похоже, решила проблему. Если он не появится снова, я бы сказал, что здесь больше не о чем беспокоиться. То же самое, если оно всплывает один или два раза в год: выключите устройство, оставьте его выключенным на несколько минут, чтобы быть в безопасности («остыть» систему :), снова загрузиться, расслабиться. Но если это происходит часто, могут возникнуть проблемы с контроллером 1 , которые вы не сможете исправить самостоятельно. Затем я бы связался со службой с подробным описанием (например, включить ссылку на ваш вопрос здесь).


1: Почему я подозреваю проблему с контроллером, а не с картой? Потому что ИМХО маловероятно, что два независимых хранилища имеют одинаковую проблему одновременно. Как было указано, обе SD-карты внезапно перемонтировались в режиме только для чтения: одна — физическая внешняя карта в слоте, другая — во встроенном хранилище. OTOH, это также может быть какая-то ошибка в vold, так как затронуты только SD-карты, и тот же самый контроллер, работающий с внутренней SD-картой, должен работать и с другими частями вашего внутреннего хранилища, что не было затронуто. Но опять же, это вряд ли можно решить; тогда производитель должен предоставить исправление (обновление системы).

И PS: пусть /dev/fuse /storage/sdcard1 fuse rw,[…]вас не смущает строка, которая предполагает, что «раздел, расположенный по адресу /storage/sdcard1», смонтирован для чтения и записи. Это только "наложение FUSE" поверх него. Итак, эта файловая система объявлена ​​доступной для чтения и записи, но базовая по-прежнему доступна только для чтения. Это означало бы, что «верхняя файловая система FUSE» будет принимать команды записи, но не может передавать их на карту, поскольку базовая система доступна только для чтения.