Estoy tratando de hacer una copia de seguridad de boot.img, recovery.img y system.img en mi teléfono Android. He encontrado varias menciones a la ejecución de este comando:
cat proc/mtd
y luego solo usar dd para copiar los puntos de montaje listados. Parece bastante sencillo. Desafortunadamente, la salida de ese comando es sólo esta única línea:
dev: size erasesize name
df tampoco muestra la columna habitual "Mounted On", sólo el sistema de archivos. Esta es la salida de df:
Filesystem Size Used Free Blksize
/dev 234M 52K 234M 4096
/mnt/secure 234M 0K 234M 4096
/mnt/asec 234M 0K 234M 4096
/mnt/obb 234M 0K 234M 4096
/system 640M 459M 180M 4096
/data 1G 406M 898M 4096
/cache 369M 6M 363M 4096
/protect_f 8M 4M 4M 4096
/protect_s 8M 4M 4M 4096
/mnt/cd-rom 1M 1M 0K 2048
/storage/sdcard1 1G 24M 1G 16384
/storage/sdcard0 7G 2G 5G 32768
/mnt/secure/asec 7G 2G 5G 32768
Algunos detalles sobre mi teléfono:
- Es un BLU ADVANCE 4.0
- La placa es Mediatek MT6572
- La versión de Android es 4.2.2
- La versión del núcleo es 3.4.5
- Tengo acceso a root
Así que, reiterando mi pregunta, ¿dónde están los tabiques? ¿Cómo puedo encontrarlas?
Aunque no soy necesariamente reacio a usar programas distintos del shell, parece que realmente debería poder hacer esto desde allí.
EDIT: He utilizado dd en los distintos archivos mmcblk que he encontrado en /dev/block. La mayoría de ellos los terminé prematuramente ya que eran de más de 100MiB, pero dos (mmcblk0p2 y mmcblk0p3) salieron de unos 10MiB cada uno lo que parece más probable para el arranque y la recuperación. El contenido de estos cuando se monta son:
- un directorio etiquetado como lost+found (ext?)
- un directorio etiquetado como md, cuyos subcontenidos difieren
En mmcblk0p2 el contenido de md es:
- Dos archivos de tipo desconocido, uno de 4B y otro de 2.0KiB, etiquetados como MPOD_000 y ST33A004 respectivamente
En mmcblk0p3 el contenido de md es:
- Un archivo de tipo desconocido, 2.0KiB, etiquetado como ST33B004
0 votos
Bueno, las particiones de arranque y recuperación no se montan cuando Android está realmente en funcionamiento. ¿Tienes un
/dev/block/platform
¿directorio? Por lo general, usted puede obtener sus puntos de montaje buscando en cualquier subdirectorio que esté allí (varía según el conjunto de chips) y buscando elby-name
directorio dentro de eso. Así, por ejemplo, en mi N5 es/dev/block/platform/msm_sdcc.1/by-name
. Si ejecutols -al
allí se muestra dónde están todas las particiones.0 votos
Me había fijado en ese directorio, pero desgraciadamente no existe la opción por nombre. Hay un par llamados mmcblk0boot0 y mmcblk0boot1 - uno de ellos podría ser el de arranque pero es difícil decir cuál, si es que lo es. Hay un /dev/BOOT y un /dev/recovery, pero BOOT da un error de argumento inválido a dd y cat y /dev/recovery sigue avanzando mucho más de lo que debería (lo paré en 800MiB+, más grande que la partición del sistema).
0 votos
Dylan, un error tipográfico: falta la barra inicial para
cat /proc/mtd
. ¿Podría ser esa la causa de la salida vacía? También,df
sólo muestra las particiones montadas actualmente (/recovery
sólo se monta cuando se arranca, AFAIK).0 votos
Esto fue intencional, lo hice desde root. Probar con / de antemano no tiene efecto. He actualizado la pregunta con algo más de información, he recurrido a copiar y montar bloques al azar y ver qué hay dentro.
2 votos
Los dispositivos MTK suelen tener un elemento llamado 'recovery' en /dev. ¿Has probado con
dd
-¿ ?0 votos
Sí. Sigue copiando a más de 800MiB, lo que estoy seguro que no puede ser correcto. La partición del sistema, por ejemplo, sólo tiene unos 650MiB.
1 votos
¿Has probado a utilizar el
bs
¿bandera? Intenta algo comodd if=/dev/recovery of=/sdcard/recovery.img bs=6291456c count=1
(de XDA)0 votos
Produce una imagen idéntica a la de MtkDroidTools y a una que encontré en internet si le paso el mismo tamaño que esas imágenes. El único comentario que vi sobre esas fue que no funcionaban, pero eso puede haber sido un error del usuario ya que no proporcionaron ninguna aclaración más allá de eso. ¿Hay alguna forma de confirmar el tamaño de la partición desde la línea de comandos?
0 votos
Aureljared : Pude extraer un ramdisk de la imagen producida por ese comando, así que presumiblemente es válido después de todo. Si quieres publicar eso como una respuesta completa lo marcaré como correcto.
0 votos
Ejecutar
mount
sin argumentos debería listar los valores "filesystem" y "mounted on" que esperas dedf
.0 votos
Simplemente haz "fdisk -l /dev/block/mmcblk0" y te mostrará todas las particiones incluyendo sus nombres, no sólo las que están montadas.