Montar la partición de la tarjeta SD como /datos

Originalmente quería comentar aquí para hacer una pregunta de aclaración. Pero como no tengo suficiente reputación y parece que no hay posibilidad de mensajes privados, abrí esta nueva pregunta.

El dispositivo es un Moto G2 con 8 GB de almacenamiento. Lo configuré bajo cm13 para usar una tarjeta SD de 64 GB como almacenamiento adoptable. Después de unas semanas, mi hermana llamó, el dispositivo desconecta la tarjeta SD con mucha frecuencia y quiere que se vuelva a insertar.

Con la esperanza de que solo se rindiera la tarjeta SD, pedí una nueva y copié todo el disco con dd if=/dev/oldCard of=/dev/newCard. Hay que esperar, si el problema se ha ido o no. Pero pensé, si la opción de almacenamiento adoptable de Android no es tan brillante y, por lo tanto, busqué en Google si de alguna manera podía montar una partición ext4 (/ o f2fs) en la tarjeta SD en / datos.

La respuesta que encontré aquí en Entusiastas de Android, suena interesante, pero no puedo creer que esto funcione de esta manera, según tengo entendido... Entonces, en la respuesta vinculada, dice:

Esta es la forma de tener /dataen el directorio de la tarjeta SD:

  1. Copie todo /dataen el directorio de la tarjeta SD:/mnt/sdcard/data
  2. Borrar/data
  3. Cree un enlace simbólico que apunte a la SD:ln -s /mnt/sdcard/data /data

Entonces, mi problema/confusión con esto son los siguientes puntos:

  1. Si creo un enlace simbólico en el directorio raíz a otra cosa, este enlace desaparece al reiniciar. Entonces, ¿cómo se supone que debo hacer que el enlace desde /dataotro lugar sea persistente?
  2. Si hago /datareferencia a /sdcard/data, ¿el comando de montaje ahora no montaría la partición en la que realmente se almacenan los datos /sdcard/data? Entonces, los datos aún se colocarían en la memoria interna, pero el punto en el que se montan en el sistema es diferente/incorrecto, ¿verdad?

Mi objetivo sería tener una tarjeta SD formateada con ext4/f2fs y montarla como /dataen mount /dev/block/mmcblk1p1 /datalugar de la partición de datos interna. Pero, ¿puedo hacer eso SIN modificar el fstab del kernel para cada actualización que quiero hacer manualmente?

L

¿Por qué no usa simplemente la función de almacenamiento adoptable?
Lo dicho, estoy en este momento. Si la nueva tarjeta SD soluciona el problema de desconectar la tarjeta, todo bien. Pero debido a eso, tengo curiosidad por saber si es posible montarlo directamente debajo /datafácilmente.

Respuestas (2)

Hice exactamente lo mismo en el pasado con un Samsung Galaxy Y DuOS S6102 reemplazando todas las líneas de montaje relacionadas con la partición de datos en las initsecuencias de comandos y fstabel archivo.

No pude encontrar mejores soluciones (pensar como a prueba de futuro) para el problema porque una vez que observa el proceso de arranque para un dispositivo Android genérico en Wikipedia, notará que el kernel ejecuta los scripts de inicio que componen el árbol de directorios y montan ciertas cosas que sientan las bases para los tiempos de ejecución de Dalvik/ART.

Entonces, al hacer algunos ajustes a estos scripts y dividir la tarjeta SD de 8GB en 1GB y 5.6GB, pude hacer que funcionara.

Nota: El dispositivo que utilicé funciona con tecnología antigua con pocas funciones de seguridad en comparación con las técnicas modernas. Por lo tanto, es posible que desee tener cuidado antes de realizar cambios.

Entonces, ¿tengo razón en que la solución vinculada no puede funcionar? 🤓 ¿Tal vez sería posible colocar una secuencia de comandos en el sistema en algún lugar, que vuelva a montar la partición desde una tarjeta SD /dataantes de que el sistema operativo realmente se inicie? Pero no tengo idea de dónde y/o cómo hacer eso 🤔
¿Pero no está sucediendo eso en mi respuesta? Antes de que se inicie el sistema operativo, es antes de que Dalvik/ART se active y el kernel es donde estoy apuntando a que funcionen los scripts de montaje. :/
Sí, tu solución hace eso. El que vinculé en mi pregunta original no funcionará ^^. Pero el objetivo era un camino, sin editar el kernel. Porque si no, tendría que editar el kernel de cada actualización manualmente antes de flashear

Esto debería funcionar ya que lo que hace el enlace simbólico es mirar /datos como una carpeta, pero en realidad funciona en la carpeta a la que se refiere el enlace simbólico.

Acerca de su problema de que desaparece después de reiniciar. Puede ejecutar un script al inicio que crea el enlace simbólico. (O probablemente pueda montar sus datos directamente en /data sin tener que usar un enlace simbólico)

He hecho algo similar para que mi sistema de archivos Termux funcione desde una tarjeta SD. Echa un vistazo a esta respuesta .