Как восстановиться после неудачной миграции принятого хранилища? Я не могу делать снимки или скриншоты

TL;DR: Я облажался. Теперь мой телефон не будет хранить изображения, потому что он, вероятно, пытается записать в какой-то несуществующий каталог. Как я могу это исправить? Какая структура каталогов ожидается? Я вызвал это из-за того, что, возможно, немного ошибся при переходе на Adopted Storage, но это может быть не важно для ответа.


Сегодня утром я перешел на принятое хранилище. Я хотел смешанное разбиение, но случайно получил полное внедрение карты (я использовал графический интерфейс). В рамках этого, я полагаю, я перенес существующее /storage/emulatedв принятое хранилище.

Поскольку я хотел смешанную настройку и у меня были резервные копии моих данных, я просто запустил sm partition ... mixed 25и уничтожил существующее принятое хранилище.

Теперь я не могу ничего фотографировать. Если я делаю скриншот, он говорит, что не может его сохранить. Если я делаю снимок с помощью OpenCamera, он говорит то же самое.

Я хотел бы избежать проблем со сбросом настроек, если это просто вопрос создания некоторых каталогов и/или создания некоторых символических ссылок. Я попытался настроить символическую ссылку /media/expand/<my-adopted-storage>/user -> /storage/emulatedи создал DCIM(режим 1777) в /storage/emulated/0/DCIM(где он был раньше). Это не помогает.

Я на правильном пути и просто ошибаюсь в деталях, или я облажался?


Как видно по тегам, у меня CyanogenMod 13/Android 6/Marshmallow.


Дальнейшее расследование:

Посмотрел, куда смотрит OpenCamera, а она смотрит на /sdcard/DCIM. /sdcardявляется символической ссылкой на /storage/self/primaryи это символическая ссылка на /mnt/user/0. Пробовал создать симлинк на существующий DCIMтам, не помогло. Может быть, ему нужно указать правильное место в системе, чтобы проскользнуть через следы безопасности? Попытка перезагрузки и посмотреть, чем все закончится.

РЕДАКТИРОВАТЬ: Это было /sdcard -> /storage/self/primary -> /mnt/user/0/primary. Я создал /mnt/user/0/primary -> /mnt/expand/*/user/0. Не идти.


На телефоне есть второй пользователь. Когда я переключаюсь на это, я получаю кучу «К сожалению, YouTube/Gallery/foo остановлен». и я не могу запустить ни одно из установленных приложений - тогда я получаю то же сообщение.


У меня было три «карты» SD, перечисленные в разделе « Хранилище и USB »: фиолетовый (успешно принят), серый (первое внедрение, теперь заброшено, сказано «не смонтировано») и sdcard1 . Я подумал, что, возможно, он все еще тоскует по этому несмонтированному (несуществующему) разделу, поэтому я щелкнул его и выбрал «Забыть». Теперь sdcard1 повреждена (!). Перезагружу снова и посмотрю, что из этого получится.


Прогресс! После того, как мы забыли об этом первоначальном принятии и перезагрузились, теперь у нас есть /sdcard -> /storage/self/primary -> /storage/emulated/0.

/storage/emulated/0представляет собой систему FUSE, которая имеет тот же размер, что и /data, так что теперь все выглядит вполне нормально. Я сделал скриншот, и /sdcard/Picturesон был создан.

sdcard1вернулся и выглядит нормально.


Теперь появилась команда Migrate data как для внутреннего хранилища , так и для принятого хранилища. Когда я щелкнул его на принятом хранилище, emulated/0он был перемонтирован как прокси FUSE для принятого хранилища, и скриншоты теперь идут туда, а не во внутренний-внутренний. Я думаю, это то, что я хочу сейчас.

У меня нет опыта работы с адаптируемым хранилищем, но если расположение поможет: скриншоты обычно отправляются /sdcard/Pictures/Screenshots(по крайней мере, там они были на всех устройствах, которые я проверял; я никогда не видел, чтобы они отправлялись в DCIM, то есть в камеру ) приложение по умолчанию). Я предполагаю, что Android автоматически создает этот каталог, если он не существует, поэтому, возможно, вы можете проверить журналы , пытаясь сделать снимок экрана? Это может дать некоторые подсказки о том, что происходит не так.
@Izzy Спасибо за подсказки. Проверим это.

Ответы (1)

Я считаю, что мою проблему решило то, что я выполнил перенос данных в новейшем принятом хранилище. До этого система находилась в состоянии, когда заброшенное принятое хранилище было «первичным хранилищем», но не присутствовало.

Я не понимаю, почему функция «Перенос данных во внутреннем хранилище» была недоступна до того, как я отказался от первого принятого хранилища. Возможно, все, что мне нужно было сделать, это перезагрузиться, и команда была бы доступна.

Я собираюсь переместить большую часть истории от ответа к вопросу, чтобы создать более последовательную картину вопросов и ответов.