4 votos

Usar la tarjeta sd como almacenamiento interno y dejar de escribir en la memoria interna para siempre

Los smartphones parecen morir tras dos años de uso, como si supieran que acabas de pagar la última cuota.
La razón común parece ser el fallo de la memoria interna.
Intento desesperadamente que mi teléfono se escape de este cruel destino.
La idea que tenía inicialmente parecía sencilla, pero la web no parecía compartir mi optimismo.
Esta es la idea:
- crear particiones ext4 en la tarjeta sd
- montar en el arranque particiones sdcard a /data y /cache (y tal vez /preload y /efs si es que alguna vez se escriben)

Me gustaría saber qué tiene de malo esta idea y por qué no puede funcionar, pero la pregunta principal es:
¿Puedo dejar de escribir en la memoria interna para siempre?

He visto todas las aplicaciones que hay (app2sd, link2sd, DirecoryBind, s2e , lo que sea) y todas ellas parecen reubicar los subdirectorios, nunca el principal /data .
Cualquier ayuda será muy apreciada.
Gracias.

1 votos

¡Bienvenido a los entusiastas de Android! ¿Has probado la función de búsqueda de nuestro sitio, y comprobado detrás de las etiquetas utilizadas (la mayoría de ellas tienen un wiki adjunto)? Esa pregunta ya se hizo aquí más de una vez. Y además, tengo 2 teléfonos Android que ya uso durante 5 años y más, mi dispositivo principal actual que uso durante unos 3 años. Nada murió hasta ahora (a excepción de una tarjeta SD, que fue reemplazado fácilmente).

0 votos

Hola @Izzy, he encontrado mucho sobre cómo aumentar la memoria, nada que responda a la pregunta real del título. Ese es exactamente mi punto, es fácil de tirar y reemplazar una tarjeta sd, no se puede decir lo mismo de un teléfono

0 votos

Creo que Android Marshmallow tiene esta función incorporada, pero esto no es tan relevante para todos los demás que siguen en Lollipop y anteriores. Esperemos que pueda ayudar a algunos usuarios.

3voto

iXcoder Puntos 543

¡Eureka!
Así es como lo he hecho:

Partición y formato de la tarjeta SD

Sin saber qué particiones podría reubicar, decidí volver a crear mi tarjeta sd con la misma disposición exacta de la memoria interna de mi Samsung Galaxy S III.
USERDATA es la última partición y hay una buena razón para ello:
el tamaño de mi tarjeta sd es mayor que la memoria interna y la mejor opción ha sido ampliar USERDATA hasta el sector más lejano posible.

El siguiente trabajo ha sido realizado en mi pc linux:

parted /dev/sdb mklabel gpt \
mkpart  BOTA0      ext2     8192s          16383s \
mkpart  BOTA1      ext2    16384s          24575s \
mkpart  EFS        ext2    24576s          65535s \
mkpart  PARAM      ext2    65536s          81919s \
mkpart  BOOT       ext2    81920s          98303s \
mkpart  RECOVERY   ext2    98304s         114687s \
mkpart  RADIO      ext2   114688s         180223s \
mkpart  CACHE      ext2   180224s        2277375s \
mkpart  SYSTEM     ext2  2277376s        5423103s \
mkpart  HIDDEN     ext2  5423104s        6569983s \
mkpart  OTA        ext2  6569984s        6586367s \
mkpart  USERDATA   ext2  6586368s       60749824s

Bien, particiones creadas.
Ahora, todavía imitando mi dispositivo Android, formateo las particiones como corresponde:

# /efs
mkfs.ext4  /dev/sdb3   -E root_owner=1001:1000
# /system
mkfs.ext4  /dev/sdb9   -E root_owner=0:0         -L system
# /cache
mkfs.ext4  /dev/sdb8   -E root_owner=1000:2001
# /preload
mkfs.ext4  /dev/sdb10  -E root_owner=0:0
# /data
mkfs.ext4  /dev/sdb12  -E root_owner=1000:1000

La tarjeta sd está lista, ahora puedo "respaldar" los archivos de la emmc a la partición correspondiente de la tarjeta sd, teniendo cuidado de conservar los atributos de los archivos.

Editar fstab

En las versiones no muy antiguas de Android, fstab parece estar siempre ubicado en / .
Archivos en / se almacenan en el BOOT partición ( boot.img );
es el momento de aprender a editar el boot.img .
Aquí tienes dos tutoriales muy útiles que te pondrán en marcha:
CÓMO: Desempaquetar, editar y volver a empaquetar imágenes de arranque
Manipulación del boot.img de Android
una pequeña pista:
~~Edita el ramdisk en tu dispositivo Android.
Me pasé tres días de frustración intentando hacerlo en mi pc, supongo que es una cuestión de "endianidad".~~
Cuando se edita el ramdisk, hacer la ordenación name-list (entrada estándar) para cpio .
Pasé tres años en frustrantes fracasos recurrentes.


Mi fstab antes:

/dev/block/mmcblk0p3        /efs            ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk0p9        /system         ext4        ro,noatime      wait
/dev/block/mmcblk0p8        /cache          ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk0p10       /preload        ext4        noatime,nosuid,nodev,journal_async_commit       wait
/dev/block/mmcblk0p12       /data           ext4        noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic      wait,check,encryptable=footer

Mi fstab después:

/dev/block/mmcblk0p3        /efs            ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk1p9        /system         ext4        ro,noatime      wait
/dev/block/mmcblk1p8        /cache          ext4        noatime,nosuid,nodev,journal_async_commit,errors=panic      wait
/dev/block/mmcblk1p10       /preload        ext4        noatime,nosuid,nodev,journal_async_commit       wait
/dev/block/mmcblk1p12       /data           ext4        noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic      wait,check,encryptable=footer

Lo único que he cambiado es el número de bloque (de 0 a 1).
No podía atreverme aún a trasladar EFS Alguien dijo que de alguna manera se puede brickear el dispositivo jugando con eso, aún estoy estudiando el tema; lo que sí sé es que Android sigue escribiendo EFS (Lo estoy supervisando).

Conclusiones y preguntas adicionales

Así es como reubiqué la mayor parte de mis datos de almacenamiento interno a mi tarjeta sd externa.
Las cosas van ligeramente lentas, como era de esperar, pero Android parece estar en perfecto estado de funcionamiento;
Siempre puedo invertir en una tarjeta sd más rápida en el futuro.
Todo esto lo hice con mi ROM stock del Samsung Galaxy S III, obviamente tendrás que adaptarte a tus circunstancias.
Cuando finalmente instalé CyanogenMod 13 (no queremos un firmware de stock, ¿verdad?) las cosas fueron un poco diferentes.
Con un limpiado /data CM está pasando algún tiempo en el arranque poblando /data y en un momento dado se da por vencido, se reinicia y pasa al modo de recuperación.
Después de varios intentos me rendí y me trasladé /system en la memoria interna, ahora todo está bien.
Sé que /system está montado como sólo lectura, pero me di cuenta de que la vida útil de la emmc se define como la cantidad de ciclos de lectura/escritura, tal vez sugiriendo que, a diferencia de los discos duros, la lectura es tan perjudicial como la escritura.
Si ese es el caso, estaría muy agradecido si alguien pudiera decirme por qué en CM no puedo reubicarme con éxito /system .

0 votos

¿Cuál es el impacto en el rendimiento?

0 votos

Hola @Jonathan, ya ha pasado un tiempo. Como he dicho, las cosas eran bastante lento, que estaba recibiendo en mis nervios a veces y terminé reinstalar un nuevo sistema operativo de la manera tradicional. Estaba usando una Micro SD U1 HC I Clase 10 de Kingston de 5€, tal vez invertir en una tarjeta de mayores especificaciones sirva. Ya nos contarás qué tal te va. Por cierto, mi teléfono está a punto de cumplir 7 años y, cruzando los dedos, sigue gozando de buena salud

1voto

kumar Puntos 106

@Claudio has planteado una muy buena inquietud. Al tener algunos conocimientos de incrustación, puedo dar alguna idea sobre esto:

Cuando se enciende un dispositivo, está programado para arrancar desde una ubicación de memoria específica. Esta ubicación de memoria es Conectada a a la memoria interna.

Normalmente en demo dispositivos embebidos, tenemos un pequeño interruptor que podemos utilizar para cambiar entre diferentes dispositivos BOOT - puede ser interno, externo, incluso puerto serie.

Pero en producción o dispositivos comerciales, este interruptor será eliminado.

Por lo tanto, es casi imposible arrancar directamente desde la memoria externa.

Me gustaría que algunas empresas pudieran proporcionar una opción (como un interruptor) para arrancar desde la memoria externa, incluso si la memoria interna va mal.

1 votos

Nunca sucederá... Hacer que la carga y el arranque de código arbitrario (2 cosas distintas, ambas difíciles de lograr) sea mucho más fácil es simplemente borrar sus esfuerzos anteriores de bloqueo.

0 votos

Gracias @kumar por este útil conocimiento. Tal vez no fue obvio en mi descripción, pero nunca apunté a localizar boot.img en un lugar distinto de la emmc

1voto

Jack Wade Puntos 231

He podido arrancar con éxito desde la tarjeta SD en el QMobile Z8 por:

  • Replicar la tabla de particiones eMMC particionando la tarjeta SD en una máquina Ubuntu usando parted y fdisk
  • La grabación de imágenes de firmware de fábrica en estas particiones recién creadas mediante dd
  • Modificación de fstab.qcom & init.tegra.rc en el núcleo ( boot.img ) y recovery.fstab y uneventd.rc archivos en TWRP recovery para iniciar el montaje y el arranque desde la tarjeta SD en lugar de la memoria interna

Tuvo éxito después de algunos experimentos. Creo que este método debería ser aplicable a cualquier dispositivo con una configuración similar. Sin embargo, los archivos a editar pueden variar de un dispositivo a otro.

Si quieres poner sólo los datos externos de las aplicaciones en la tarjeta SD y no toda la partición, puedes editar fstab en boot.img y lista de almacenamiento en framework-res.apk en Android 5 y anteriores.

Para más detalles: Cómo arrancar desde la tarjeta SD [con éxito] en el QMobile Z8 con eMMC dañada.

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