0 votos

Pregunta básica sobre el flasheo de las copias de seguridad de nandroid

Quiero saber que cuando flasheamos imágenes de partición específicas (digamos system.img, data.img, cache.img, etc.), entonces ¿cómo sabe el software dónde poner exactamente esos bytes de partición? Por ejemplo, si flasheo system.img, ¿qué sector CHS/LBA considerará como inicio de ese bloque? Si se basa en las tablas MBR/EBR1, ¿qué pasará si también flasheo el MBR/EBR1?

La razón por la que pregunto es que quiero cambiar ligeramente la partición en EBR1, para que se asigne más espacio a /data partición en lugar de /sdcard . Tengo un viejo pero buen estado MediaTek (MTK-6577) basado en el teléfono inteligente llamado Karbonn-A30 que es grande en la calidad de construcción y casi todos los demás aspectos, pero sólo tiene 500 MB de almacenamiento interno ( /data partición en la jerga de Linux) que no es suficiente para las aplicaciones. Actualmente, las particiones MBR y EBR1 son así:

$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
  Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
  Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
  Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
  Type 0x83 (Linux)

$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
  Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
  Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
  Type 0x83 (Linux)

Por qué esta última partición que corresponde a /sdcard ¡se queda tan grande (1.998 TiB) está más allá de mi comprensión! Dado que hay un buen 2,5 GB de espacio disponible en mi actual /sdcard estaba pensando que si puedo alterar el EBS1 y cambiar el direccionamiento LBA para que la tercera partición comience desde 2097152 sectores adicionales (lo que viene a ser 1024MB o 1GB que es suficiente para mí), aumentará automáticamente mi /data partición en 1GB y disminuir la /sdcard por 1GB correspondientemente? En XDA y otros foros, he leído que la gente ha hecho con éxito este mod y logró el cambio de tamaño de las particiones, pero primero quiero entender cómo sucede.

1voto

user53079 Puntos 1

Ya que tengo un teléfono basado en el MTK-6577 y tuve que profundizar en la reparación de una tabla de partición rota recientemente pensé en tomar una puñalada en la respuesta a esto.

Quiero saber que cuando flasheamos imágenes de particiones específicas (digamos system.img, data.img, cache.img, etc.), ¿cómo sabe el software sabe exactamente dónde poner esos bytes de la partición?

Si se flashea en puntos de montaje conocidos /system, /data, /cache no necesitas saber sobre la estructura subyacente, simplemente si hay suficiente espacio y si está en el formato correcto (por ejemplo, ext4). Los puntos de montaje se especifican en vold.fstab .

Sin embargo, si se utiliza una herramienta de destello de bajo nivel como Flash SP tendrá que modificar también el archivo de dispersión a la nueva disposición de las particiones, ya que accederá a las direcciones de memoria de las particiones directamente.

Un ejemplo de puntos de montaje del sistema de archivos para el MT-6577 (copiado de /tmp/recovery.log ):

CWM-based Recovery v6.0.2.8
recovery filesystem table
=========================
  0 /tmp ramdisk (null) (null) 0
  1 /boot emmc /dev/bootimg (null) 0
  2 /cache ext4 /dev/block/mmcblk0p4 (null) 0
  3 /data ext4 /dev/block/mmcblk0p5 (null) 0
  4 /misc emmc /dev/misc (null) 0
  5 /recovery emmc /dev/recovery (null) 0
  6 /emmc vfat /dev/block/mmcblk0p6 (null) 0
  7 /system ext4 /dev/block/mmcblk0p3 (null) 0
  8 /sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 0
  9 /sd-ext auto /dev/block/mmcblk1p2 (null) 0

Por qué esta última partición que corresponde a /sdcard queda tan grande (1.998 TiB) está más allá de mi comprensión

Este es el resultado de utilizar GPT frente a los más antiguos MBR tablas de partición. Es una partición especial extendida que tiene el máximo rango de direcciones de 32 bits (2TB). Permite cargar el MBR en cualquier dispositivo independientemente de su tamaño de memoria interna. Entonces, usted tiene la costumbre EBR1 (y EBR2 ) a la medida de cada modelo.

Estaba pensando que si puedo alterar el EBS1 y cambiar el direccionamiento LBA para que la tercera partición comience desde 2097152 sectores adicionales (que viene a ser 1024MB o 1GB que es suficiente para mí), automáticamente aumentará mi partición /data en 1GB y disminuirá la /sdcard en 1GB correspondientemente

No estoy del todo seguro de los detalles al respecto.

En su lugar, he utilizado el intercambio de tamaños de partición de /data y /emmc con un EBR1 proporcionado en xda-developers.com . Entonces en Android use Enlace2SD que utiliza una partición ext4 de 2GB en la tarjeta sd externa y mueve las aplicaciones grandes.

Sólo pensé en añadir que si las cosas van espectacularmente mal, como me pasó a mí originalmente, se puede recuperar utilizando copias de seguridad del original MBR y ERB1 archivos para adb shell conectarse a su teléfono en modo de recuperación.

Restaurar los detalles de la partición:

dd if=/tmp/MBR of=/dev/block/mmcblk0
dd if=/tmp/EBR1 of=/dev/block/mmcblk0p1

Ah, y para crear manualmente una copia de seguridad en primer lugar:

dd if=/dev/block/mmcblk0 of=/tmp/MBR bs=512 count=1
dd if=/dev/block/mmcblk0p1 of=/tmp/ERB1 bs=512 count=1

Monta una tarjeta sdcard externa desde CWM y podrás copiar el archivo a/desde /sdcard .

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