8 votos

¿Cómo restaurar la distribución de la partición de la tarjeta SD interna dañada? Lo intenté todo.

Tengo Samsung S 3 mini.

Hice algo muy malo con la distribución de la partición de mi tarjeta SD interna. Según recuerdo correctamente, traté de repartir mi tarjeta SD externa a través de fdisk justo en Android a través de 'adb shell'. Y borré la partición existente (sólo había una según recuerdo) en mmcblk0 (que no parece ser una externa, sino una interna =)

Ahora sí:

~ # cat /proc/partitions
major minor  #blocks  name
 179        0    7634944 mmcblk0
 179       64       2048 mmcblk0boot1
 179       32       2048 mmcblk0boot0
 179       96    3866624 mmcblk1
 179       97    3862528 mmcblk1p1
    ~ # ls -la /dev/block/mmcblk\*
brw-------    1 root     root      179,   0 Jan  1 10:30 /dev/block/mmcblk0
brw-------    1 root     root      179,  32 Jan  1 09:28 /dev/block/mmcblk0boot0
brw-------    1 root     root      179,  64 Jan  1 09:28 /dev/block/mmcblk0boot1
-rw-rw-rw-    1 root     root      16777216 Jan  1 10:07 /dev/block/mmcblk0p20
-rw-r--r--    1 root     root             0 Jan  1 10:07 /dev/block/mmcblk0p22
brw-------    1 root     root      179,  96 Jan  1 09:28 /dev/block/mmcblk1
brw-------    1 root     root      179,  97 Jan  1 09:28 /dev/block/mmcblk1p1
    ~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   411756     16452    395304   4% /dev
/dev/block/mmcblk1p1   3858432   1473472   2384960  38% /external\_sd
    ~ # mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/block/mmcblk1p1 on /external\_sd type vfat (rw,nodev,noatime,nodiratime,fmask=0000,dmask=0000,allow\_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
    ~ # tail ./etc/recovery.fstab
/system     ext4    /dev/block/mmcblk0p22
/cache      ext4    /dev/block/mmcblk0p23
/data       ext4    /dev/block/mmcblk0p25 length=-16384
/efs        ext4    /dev/block/mmcblk0p11
/boot       emmc    /dev/block/mmcblk0p20
/recovery   emmc    /dev/block/mmcblk0p21
/preload    ext4    /dev/block/mmcblk0p24
/modem      ext4    /dev/block/mmcblk0p12
/sdcard     datamedia   /dev/null
/external\_sd    vfat    /dev/block/mmcblk1p1
    ~ # tail ./etc/fstab
/dev/block/mmcblk0p23 /cache ext4 rw
/dev/block/mmcblk0p25 /data ext4 rw
/dev/block/mmcblk0p22 /system ext4 rw
/dev/null /sdcard datamedia rw
    ~ # parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
Warning: /dev/block/mmcblk0 contains GPT signatures, indicating that it has a
GPT table.  However, it does not have a valid fake msdos partition table, as it
should.  Perhaps it was corrupted -- possibly by a program that doesn't
understand GPT partition tables.  Or perhaps you deleted the GPT table, and are
now using an msdos partition table.  Is this a GPT partition table?
Yes/No?

Mi herramienta de recuperación ClockWorkMod no puede montar nada (/cache, /sistema, nada). Este es el tipo de cosas que obtengo en CWM:

\-- Wiping cache...
Formatting /cache...
Need size of filesystem
E:format\_volume: make\_extf4fs failed on /dev/block/mmcblk0p23
Cache wipe complete.
W:failed to mount /dev/block/mmcblk0p23 (Block device required)
E:Can't mount /cache/recovery/log
E:Can't open /cache/recovery/log
W:failed to mount /dev/block/mmcblk0p23 (Block device required)
E:Can't mount /cache/recovery/last\_log
E:Can't open /cache/recovery/last\_log
W:failed to mount /dev/block/mmcblk0p23 (Block device required)
W:Can't unlink /cache/recovery/command
Formatting /data...
warning: get\_file\_size: Computed filesystem size less than 0
Need size of filesystem
E:format\_volume: make\_extf4fs failed on /dev/block/mmcblk0p25
Error formatting /data!
W:failed to mount /dev/block/mmcblk0p23 (Block device required)
E:Can't mount /cache/recovery/log
E:Can't open /cache/recovery/log
As you can see, there is no partitions for /system, /cache and other stuff, that should be there. (but /system, and /cache folders are present in dir listing)

Realmente hice todo lo que pude. Intenté: restaurar desde la copia de seguridad (tengo una, hecha con la herramienta de recuperación), instalar una nueva ROM (con la herramienta de recuperación), instalar el firmware y el kernel de reserva en modo ODIN. Incluso intenté con algún archivo PIT: nada hizo absolutamente nada a mi estado.

Francamente echo de menos una parte importante en la comprensión del sistema de archivos, particiones, imágenes, qué es la ROM, qué es el núcleo de reserva, cómo se crean esas 22, 23 25 particiones, etc...

¿Qué debo hacer?

¡ACTUALIZACIÓN!

Oh, parece que tengo todo en el buffer de la consola (historial completo de acciones de distracción)

Al principio tenía esto:

cat /proc/partitions
major minor  #blocks  name

   7        0       2111 loop0
 179        0    7634944 mmcblk0
 179        1        128 mmcblk0p1
 179        2        384 mmcblk0p2
 179        3       1024 mmcblk0p3
 179        4       1024 mmcblk0p4
 179        5        512 mmcblk0p5
 179        6        512 mmcblk0p6
 179        7        512 mmcblk0p7
 179        8        512 mmcblk0p8
 179        9       1024 mmcblk0p9
 179       10       1024 mmcblk0p10
 179       11      16384 mmcblk0p11
 179       12      16384 mmcblk0p12
 179       13      16384 mmcblk0p13
 179       14      51200 mmcblk0p14
 179       15         64 mmcblk0p15
 179       16      14336 mmcblk0p16
 179       17       2048 mmcblk0p17
 179       18       2048 mmcblk0p18
 179       19      16384 mmcblk0p19
 179       20      16384 mmcblk0p20
 179       21      16384 mmcblk0p21
 179       22    1228800 mmcblk0p22
 179       23     860160 mmcblk0p23
 179       24     327680 mmcblk0p24
 179       25    4945920 mmcblk0p25
 179       64       2048 mmcblk0boot1
 179       32       2048 mmcblk0boot0
 179       96    3872256 mmcblk1
 179       97    3868160 mmcblk1p1
 254        0       2110 dm-0    / $ df
Filesystem               Size     Used     Free   Blksize
/dev                   402.1M    84K   402M   4096
/mnt/asec              402.1M     0K   402.1M   4096
/mnt/obb               402.1M     0K   402.1M   4096
/dev/shm               402.1M     0K   402.1M   4096
/system                  1.2G   414.5M   766.6M   4096
/modemfs                15.7M     4.3M    11.4M   4096
/cache                 826.8M    84.8M   742M   4096
/efs                    15.7M     4.5M    11.2M   4096
/preload               315M    64.2M   250.8M   4096
/data                    4.6G     4G   699.2M   4096
/mnt/.lfs: Function not implemented
/storage/sdcard0         4.6G     4G   699.2M   4096
/mnt/asec/com.spruds.transport.pro.tallin-1     2M   888K     1.1M   4096
/storage/sdcard1         3.7G   905.7M     2.8G   32768

Incluso antes de que todo saliera mal, intenté usar el comando parted y obtener un error.

~ # parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) list
list
  check NUMBER                             do a simple check on the file system
  cp \[FROM-DEVICE\] FROM-NUMBER TO-NUMBER   copy file system to another partition
.....
.....
        copyright information of GNU Parted
(parted) print
print
Error: Unable to satisfy all constraints on the partition.

Esta es la impresión de fdisk antes del desastre

~ # fdisk /dev/block/mmcblk0

The number of cylinders for this disk is set to 954368.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/block/mmcblk0: 7818 MB, 7818182656 bytes
1 heads, 16 sectors/track, 954368 cylinders
Units = cylinders of 16 \* 512 = 8192 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk0p1               1      954368     7634943+ ee EFI GPT
Partition 1 does not end on cylinder boundary

Y luego lo borré

~ # fdisk /dev/block/mmcblk0

The number of cylinders for this disk is set to 954368.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/block/mmcblk0: 7818 MB, 7818182656 bytes
1 heads, 16 sectors/track, 954368 cylinders
Units = cylinders of 16 \* 512 = 8192 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk0p1               1      954368     7634943+ ee EFI GPT
Partition 1 does not end on cylinder boundary

Command (m for help): d
Selected partition 1

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy

ACTUALIZACIÓN 2

Puedo ver la diferencia con el estado inicial. Ahora tengo 4 cabezas en lugar de 1 y por lo tanto 238592 cilindros en lugar de 954368. ¿Cómo cambio el número de cabezas?

0 votos

No he utilizado fdisk en Android y tampoco lo tocaría con una vara. Las particiones internas de la NAND vienen configuradas de fábrica, o bien fdisk es información errónea número de cabezas/cilindros en un interno partición... es un chip NAND después de todo...

6voto

Aleksandr Motsjonov Puntos 176

¡Lo encontré!

La respuesta estaba en el archivo PIT, porque como dice aquí :

sólo necesitará usar esto si una actualización de firmware necesita cambiar la distribución de su partición (muy, muy improbable) o si estropea su tabla de partición (no quiere hacer esto)

Lo cual es definitivamente mi caso.

Así que intenté que la GT-I8190N y la GT-I8190 se usaran con diferentes archivos PIT (intenté usar para la GT-I8190 uno). Así que encontré una larga lista de archivos PIT aquí .

1 votos

¿Cómo ha aplicado el archivo PIT a su dispositivo? Lo mismo que yo, lo he intentado con odin y me sale el error de re-partición fallida constantemente. También he probado a reparticionar con y sin firmware, archivo CDS y archivo PIT solo. Nada cambió.

2voto

nemisj Puntos 2966

RECUPERAR UN DISPOSITIVO Android CON BOOTLOOP O ATASCADO EN EL LOGO

Compilado por: Julián López 2017-05(mayo)-08

Tuve problemas similares, pero la memoria interna de mi teléfono GT-i9003 está defectuosa. He utilizado todos los pozos sin éxito. Tal vez este procedimiento le ayuda, algunos de ellos son complejos, pero seguro:

Requisitos:

  • Un dispositivo Android pegado en el logo (pero con el SO totalmente iniciado), para trabajar con ADB y CWM-Recovery, mejor si tiene las opciones de desarrollador de Android opciones activas y la conexión usb en modo comunicación (también conocido como kies, MTP, debug, etc) no en modo usb-data
  • Cable de datos USB Pc con puerto USB de alta velocidad disponible
  • Controladores de dispositivos actualizados
  • Herramientas de la plataforma ADB y fastboot (Windows) para la copia de seguridad y restauración manual... Fuentes de información ADBD: gracias por compartir el conocimiento a Rotohammer [Copia de seguridad ADB Roto - copia de seguridad manual] y Amalautpavathas [Consejos de ADB para Android]
  • Otro dispositivo operativo e idéntico (muy conveniente)
  • Una buena+original de 16GB y superior de clase10 (olvídate de la clase4) MicroSDCard (He tenido algunos problemas con genéricas de 32GB y mayores), preparada con una partición estándar-fat32 que está limitada a un máximo de 4gb para cada archivo, pero funciona para hacer el backup. Es muy importante, crear en el Root de la tarjeta microSD un archivo de texto vacío llamado NO-INSTALAR-ESTO.zip solo para referencia e identificacion desde dentro de Recovery). La ota usb no suele ser reconocida y requerimos la conexión USB permanente con el PC.

Extracto :

Si el dispositivo está en bootloop o atascado en el logo pero activo por ADB, después de las opciones lógicas y básicas siga este procedimiento para clonar y restaurar manualmente (mediante el comando dd) la partición defectuosa:

Advertencias

  • Descartar toda responsabilidad sobre el uso y abuso de esta información
  • Por favor, lee los tutoriales sobre ADB y Android
  • No limpie con la tarjeta MicroSD en, puede perder todos los datos en sin previo aviso, cada reinicio / cambio de ud / montaje CMW y la acción de almacenamiento, puede cambiar el punto de montaje de la tarjeta sd
  • Cuando trabaje en ADB; salga del shell y use remount frecuentemente.
  • Cuando no puedas acceder a los archivos obtén acceso Root (CMW - opción Root/unroot).
  • Mantenga una lista de archivos y puntos de montaje antes de proceder, después de cada copia mantenga un ojo en la capacidad disponible con df -k en Kbytes y df en bloques, con ls -al tiene un registro de permisos en formato xrwxrwxrw (un tope inicial o - para el tipo, x ejecutar, r leer, w escribir, en 3 niveles -usuario-grupo-otros. Utilice chmod para cambiar el comando) y los propietarios de los archivos . Este consejo evita el 50% de los errores al usar la copia de archivos, o al cambiar los archivos en el dispositivo. Tomar la información completa del dispositivo (imei, macs, versiones de software, fw, actualizaciones, app especial, registrar versiones completas y fecha de instalación, especialmente el software de backup)

Acciones

1.-Sin memoria externa (tarjeta MicroSD fuera, ya que algunos kernels y herramientas cambian la memoria externa por la interna sin avisar) guarda una distribución de las particiones. La información importante es; bloque inicial, bloque final, tipo de sistema de archivos, nombre del dispositivo de bloque, orden y punto de montaje(ruta). Si usando ADB fdisk pero sin cambiar nada.

2.- Tomar una copia de seguridad manual de cada partición (y especialmente, copia de seguridad individual de la carpeta /efs (donde están las direcciones imei y mac para wifi, BT, etc) en el dispositivo defectuoso con ADB y el comando "dd" (tenga cuidado con el espacio disponible después de cada copia de seguridad), Repita el mismo procedimiento en un buen dispositivo idéntico. transfiera esta copia de seguridad a su PC y a un tarjeta microSD (sí ambos)... No insertar en el dispositivo. Se requiere:

  • Carpeta en el explorador de Windows con \ADB y FastBoot-platform-tools-latest-Windows \platform -herramientas (no requiere instalación)

  • El dispositivo debe estar conectado al PC mediante un cable usb y detectado con los controladores adecuados )

  • Hay que escribir (sí, te he oído, con el teclado) en un CLI (Interfaz de línea de comandos) conocido en Microsoft como CMD (Línea de comandos); vaya al Explorador de Windows, abra la caja negra seleccionando la opción CMD con una combinación simultánea de teclado tecla [SHIFT] izquierda y clic derecho del ratón en un espacio vacío dentro de la carpeta. Para obtener la opción CMD en el menú, evite seleccionar o marcar algo dentro del explorador de Windows. Utilice este manual hasta la sección de restauración de Roto, Rotohammer Copia de seguridad ADB Roto - copia de seguridad manual

3.- Crear con (ADB) fdisk la(s) partición(es) faltante(s) coincidiendo con todas las características originales (bloque inicial, bloque final, números-tamaño de bloque, tipo fs).

4.- Con el dispositivo apagado (sin batería), introduzca Tarjeta MicroSD

5.- Inicie su dispositivo en modo Recovery (CWM), vaya a Instalar ZIP desde SDCARD si puede ver el archivo de texto con extensión .ZIP preparado en el último punto de requerimientos ( NO-INSTALAR-ESTO.zip ), puede reiniciar el dispositivo. En cualquier otra forma ir a -- montaje y almacenamiento -- desmontar todo y montar el preparado Tarjeta MicroSD Repite la operación con la tarjeta Sdcard interna, emmc, usb hasta que puedas ver el archivo zip. Reinicie el dispositivo en modo normal (tal vez sólo el logotipo es visible).

6.- Conectar el dispositivo al pc, vía usb y activar CMD desde ADB para copiar la partición-backup al sistema de archivos de un dispositivo interno fuera de la MicroSDCard. apagar el dispositivo, extraer la batería, extraer la microSDcard, y encender el dispositivo. Proceda con una de estas alternativas de Restauración

6a.- La forma más fácil, prueba de garantía, es utilizar el software de restauración de emergencia de la marca original, KIES's y ODIN para samsung, MTP para la marca china, etc.

6b.- La manera más fácil, si solo tienes un bootloop, arranca el dispositivo con otra MicroSDcard buena probada, los fallos en la memoria externa ocurren y la aplicación se bloquea si se movieron a la microSDcard mala. Si esto no funciona, inicie sin MicroSDcard en modo de recuperación, Wipe data/factory reset y wipe cache. ¿Sigue fallando?, siga con la guía.

6c.- Como este método funciona con una imagen de partición en cualquier Android, de cualquier dispositivo y marca, esto lo hace independiente de configuraciones (tipos y asignaciones especiales del sistema de archivos, punto de montaje, vold.fstab, fota.rc, init.goldfish.rc, archivos de init.d, corrupción de la memoria interna, fallos en apps como link2SD y virus). Empezar a hacer una imagen de la partición defectuosa (vía ADB + comando dd) y de todas ellas para que sean congruentes, hacer otra de la imagen de un dispositivo bueno, y si la partición afectada es /system o /, tomar una copia del original /efs (esto podría ser importante más adelante en caso de que el imei y la MAC no coincidan con el hardware, consulte con su marca la ubicación del imei). Solución por: Rotohammer (mismo enlace), etc... Guardarlo en el PC, en la MicroSDcard y en la nube.

6d.- ¿Su aparato está todavía en garantía por el proveedor o por la tarjeta de crédito? (una garantía disponible, no la del tipo Plutón durante un eclipse), no lo dudes, ve a por él... La copia de seguridad mantendrá a salvo tus datos y podrás enviarlo a RMA después de un deep wipe y una limpieza...

6e.-Para la solución fácil [Flashable Filesystem Check and Repair Tool | HTC Desire - XDA][3] ... Con ADB puede instalar y ejecutar APK, o ejecutar /sbin/fsck , /sbin/fsck , /sbin/fsck.ext4 . Nota: algunos sistemas de archivos Root mantienen el tipo más antiguo (raiser, ext2, etc)

6f.- Restaurar desde la copia de seguridad de CWM o desde tu aplicación favorita

6g.- Utiliza tu software de restauración de emergencia original, Kies, mtp, etc.

7.- Reiniciar, la primera vez esperando la autocomprobación del sistema de archivos y la segunda para verificar la operación.

8.- En caso de errores de arranque, arrancar en modo de descarga, utilizar las versiones correctas del programa de actualización de firmware (como ODIN y MTP de Samsung) para aplicar la PIT (tabla de información de particiones) correcta con la repartición marcada. Si el fallo persiste, aplique la ROM original completa de STOCK para verificar.

9.- En caso de errores de IMEI, proceder con las soluciones: ( forum.samdroid.ne t /attachments/f28/2082d1281453181-complete-imei-restore-how-bml10.img.zip)

10.- para los errores de la memoria interna compruebe esto [2]: http://amalautpavathas.blogspot.com/2013/08/

Descargo de responsabilidad

Esta es una recopilación individual y personal, así que espero sinceramente que este extracto ayude a alguien, en algún momento, en algún lugar, pero... Ni yo ni nadie se hará responsable de las acciones que realices utilizando estas instrucciones o aplicaciones. El flasheo de la ROM puede anular su garantía y debe ser la última opción. Por favor, proceda con precaución y bajo su propio acuerdo y riesgo. El flasheo borrará completamente la memoria de tu dispositivo. Haz una copia de seguridad de todo lo que necesites, para este objetivo te presento más de 3 opciones de copia de seguridad, por favor úsalas todas. Si quieres flashear una ROM cocinada necesitas un SPL parcheado. Cómo hacerlo se describe en la página principal de forum.xda-developers También puedes flashear la ROM directamente desde la tarjeta microSD. La guía se encuentra aquí forum.xda-developers

AGRADECIMIENTO ESPECIAL A LA GENTE DEL CONOCIMIENTO

Este es mi primer post, por lo que no me he permitido incluir más personas y fuentes, por favor disculpen, mis compañeros invisibles no están incluidos en esta lista:

(foro.xda-developers (amalautpavathas) (samdroid)

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