3 votos

Montar partición de la tarjeta sd como /data

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 mensajería privada, abrí esta nueva pregunta.

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

Con la esperanza de que solo sea la tarjeta sd que esté fallando, pedí una nueva y copié todo el disco con dd if=/dev/oldCard of=/dev/newCard. Tengo que esperar para ver si el problema desaparece o no. Pero pensé, si la opción de almacenamiento adoptable de Android no es tan brillante y por eso busqué en Google si de alguna manera podría montar una partición ext4(/o f2fs) en la tarjeta sd bajo /data.

La respuesta que encontré aquí en Android Enthusiasts, suena interesante, pero no puedo creer que funcione de esa manera, según mi entendimiento... Por lo tanto, en la respuesta enlazada, dice:

Esta es la forma de tener /data en el directorio de la Tarjeta SD:

  1. Copia todo /data al directorio de la Tarjeta SD: /mnt/sdcard/data
  2. Eliminar /data
  3. Crear 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 root a otra cosa, este enlace desaparece en un reinicio. Entonces, ¿cómo se supone que debo hacer que el enlace de /data a otro lugar sea persistente?
  2. Si hago que /data apunte a /sdcard/data, ¿no haría que el comando de montaje ahora montara la partición en la que los datos se encuentran realmente bajo /sdcard/data? Entonces los datos seguirían estando en la memoria interna, pero el punto donde se monta en el sistema es uno diferente/equivocado, ¿verdad?

Mi objetivo sería tener una tarjeta sd formateada con ext4/f2fs y que se monte como /data como mount /dev/block/mmcblk1p1 /data en lugar de la partición de datos interna. ¿Pero puedo hacerlo SIN modificar el fstab del kernel para cada actualización que quiera hacer manualmente?

L

0 votos

¿Por qué simplemente no usas la función de almacenamiento adoptable?

0 votos

Como dije, estoy en el momento. Si la nueva tarjeta SD solventa el problema de desconexión de la tarjeta, genial. Pero debido a eso, me entró la curiosidad de si es posible montarla directamente bajo /data fácilmente.

0voto

En el pasado, hice exactamente lo mismo con un Samsung Galaxy Y DuOS S6102 reemplazando todas las líneas de montaje relacionadas con la partición de datos en los scripts init y en el archivo fstab.

No pude encontrar mejores soluciones (piensa en algo a prueba de futuro) para el problema porque una vez que revisas el proceso de arranque de un dispositivo Android genérico en Wikipedia, te das cuenta de que el kernel ejecuta los scripts init que conforman el árbol de directorios y monta ciertas cosas que sientan las bases para que se inicien los entornos de ejecución Dalvik/ART.

Así que al hacer algunos ajustes a estos scripts y particionar la tarjeta SD de 8GB en 1GB y 5.6GB, logré hacer que funcionara el arranque.

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

0 votos

Entonces, ¿tengo razón en que la solución vinculada no puede funcionar? ¿Quizás sería posible colocar un script en algún lugar del sistema, que vuelva a montar la partición desde una tarjeta sd a /data antes de que el sistema operativo realmente se inicie? Pero no tengo idea de dónde y/o cómo hacer eso

0 votos

Pero ¿no está sucediendo eso en mi respuesta? Antes de que el sistema operativo se inicie es antes de que se inicie Dalvik/ART y el kernel es donde estoy apuntando los scripts de montaje para que funcionen. :/

0 votos

Sí, tu solución hace eso. La que vinculé en mi pregunta original no funcionará^^. Pero el objetivo era encontrar una forma de hacerlo sin editar el kernel. De lo contrario, tendría que editar el kernel de cada actualización manualmente antes de flashearlo.

0voto

gtwebb Puntos 1869

Esto debería funcionar ya que lo que hace el symlink es ver el /data como una carpeta pero en realidad funciona en la carpeta a la que hace referencia el symlink.

Sobre tu problema de que desaparece después de reiniciar. Puedes ejecutar un script al inicio que cree el symlink. (O probablemente puedas montar tus datos directamente en /data sin necesidad de usar un symlink)

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

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X