Смонтировать раздел SD-карты как /data

Первоначально я хотел прокомментировать здесь , чтобы задать уточняющий вопрос. Но поскольку у меня недостаточно репутации и кажется, что личные сообщения невозможны, я открыл этот новый вопрос.

Устройство представляет собой Moto G2 с 8 ГБ памяти. Я настроил его под cm13, чтобы использовать SD-карту на 64 ГБ в качестве доступного хранилища. Через несколько недель позвонила моя сестра, устройство очень часто отключает SD-карту и хочет, чтобы ее снова вставили.

В надежде, что сдается только sdcard, заказал новую и скопировал весь диск с расширением dd if=/dev/oldCard of=/dev/newCard. Приходится ждать, исчезнет проблема или нет. Но я подумал о том, не слишком ли блестящий вариант для хранения Android, и поэтому погуглил, могу ли я каким-то образом смонтировать раздел ext4 (/ или f2fs) на SD-карте в / data.

Ответ, который я нашел здесь на Android Enthusiasts, звучит интересно, но я не могу поверить, что это работает таким образом, насколько я понимаю... Итак, в связанном ответе говорится:

Вот как это сделать /dataв каталоге SD-карты:

  1. Скопируйте все /dataв каталог SD-карты:/mnt/sdcard/data
  2. Удалить/data
  3. Создайте символическую ссылку, указывающую на SD:ln -s /mnt/sdcard/data /data

Итак, моя проблема/путаница с этим заключается в следующих моментах:

  1. Если я создаю символическую ссылку в корневом каталоге на что-то еще, эта ссылка активируется при перезагрузке. Итак, как я должен сделать ссылку из /dataв какое-то другое место постоянной?
  2. Если я укажу /dataна /sdcard/data, не будет ли команда mount теперь монтировать раздел, в котором данные действительно хранятся под /sdcard/data? Таким образом, данные по-прежнему будут размещаться во внутренней памяти, но точка, в которой они монтируются в системе, другая/неправильная, верно?

Моя цель состояла бы в том, чтобы отформатировать SD-карту с помощью ext4/f2fs и смонтировать ее /dataвместо mount /dev/block/mmcblk1p1 /dataвнутреннего раздела данных. Но могу ли я сделать это БЕЗ изменения fstab ядра для каждого обновления, которое я хочу сделать вручную?

л

Почему бы вам просто не использовать адаптивную функцию хранения?
Как говорится, я на данный момент. Если новая SD-карта устраняет проблему отключения карты, все в порядке. Но из-за этого мне стало любопытно, можно ли /dataлегко установить его прямо под

Ответы (2)

Я сделал то же самое в прошлом с Samsung Galaxy Y DuOS S6102, заменив все строки монтирования, касающиеся раздела данных в сценариях initи fstabфайле.

Я не смог найти лучшего решения (считаю перспективным) для этой проблемы, потому что, как только вы посмотрите на процесс загрузки стандартного устройства Android в Википедии, вы заметите, что ядро ​​запускает сценарии инициализации, которые составляют дерево каталогов и монтируются. некоторые вещи, которые закладывают основу для работы сред выполнения Dalvik/ART.

Поэтому, внеся несколько изменений в эти сценарии и разделив SD-карту 8 ГБ на 1 ГБ и 5,6 ГБ, я смог заставить ее работать при загрузке.

Примечание. Устройство, которое я использовал, работает на древней технологии с небольшими функциями безопасности по сравнению с современными технологиями. Следовательно, вы можете быть осторожны, прежде чем вносить изменения.

Так что я прав, что связанное решение не может работать? 🤓 Может быть, где-то в системе можно разместить скрипт, который перемонтирует раздел с SD-карты до /dataзагрузки ОС? Но я понятия не имею, где и/или как это сделать 🤔
Но разве это не происходит в моем ответе? Прежде чем загрузится ОС, это произойдет до того, как запустится Dalvik / ART, и ядро ​​— это то место, где я нацеливаю сценарии монтирования для работы. :/
Да, ваше решение делает это. Тот, который я связал в своем первоначальном вопросе, не будет работать ^^. Но целью был способ, без правки ядра. Потому что иначе мне пришлось бы править ядро ​​каждого обновления вручную перед прошивкой

Это должно работать, поскольку символическая ссылка смотрит на /data как на папку, но на самом деле работает с папкой, на которую ссылается символическая ссылка.

О вашей проблеме с его исчезновением после перезагрузки. Вы можете запустить скрипт при запуске, который создает символическую ссылку. (Или вы, вероятно, можете смонтировать свои данные напрямую в /data без использования символической ссылки)

Я сделал что-то подобное, чтобы моя файловая система Termux работала с SD-карты. Взгляните на этот ответ .