PDA

Ver la Versión Completa : [TUTORIAL] Cambiar el tamaño de las particiones.


TuxLin
26/02/14, 17:34:32
Escribí este tutorial en junio pasado y estaba colgado en el foro de las tablets de 7 pulgadas.
Ignoro si tuvo eco aquí, pero dado que recientemente lo he subido a XDA, creo conveniente publicarlo también en este foro.

__________________________________________________ __________________________________________________ __

En este breve tutorial intento, mediante un ejemplo, explicar como es posible cambiar el tamaño de las particiones de nuestras tablets.




Aunque los datos presentes se refieren a una de 16 GB, en este caso una p5110, son fácilmente extrapolables a una de 8 GB, así como a cualquier otro modelo, haciendo una sencillas correcciones.
Aunque puede haber disponibles otros mecanismos, éste tiene la ventaja de que solo depende de que no escribamos datos erróneos, cosa difícil si prestamos un poco de atención mientras trabajamos.
Solo es necesario seguir estrictamente esta guía.
En caso de fallo total, tendríamos que recuperar la tablet mediante un flash de una versión Stock usando el fichero pit.
TODOS los datos que no estén salvados a la tarjeta MicroSD externa SE PERDERAN, dado que vamos a eliminar las particiones /system, /data y /cache.


*************
Requisitos
*************



Un ordenador.
Programa adb operativo.
Recovery CM oficial instalado.
Tarjeta externa microSD instalada y con espacio
Cable.
Batería llena.
En el caso de modelos
3G (Gsm) el fichero "modem.bin" original obtenido de una Rom stock.



Si no es cómodo obtenerlo, modem-bin se consigue fácilmente desde la propia tablet:

dd count=40960 bs=512 if=/dev/block/mmcblk0p8 of=/external_sd/modem.bin

Todo el proceso se hace desde el ordenador, excepto una mínima intervención al final realizada desde la tablet.



Este tutorial está planteado para una rom tipo Aosp, como CyanogenMod.
En el caso de una stock, obviaamente, los tamaños de partición que vamos a dejar no serían suficientes

***************
Paso Previo
***************



Comprobamos que hay espacio suficiente en la microSD y hacemos una copia de seguridad con el recovery, indicando como destino la TrajetaSD EXTERNA. Si se hace en la interna, se va a perder.
Este paso es muy importante para recuperar la ROM sin reinstalarla de cero.



Insisto una vez más. CUALQUIER DATO DE USUARIO que no esté COPIADO a la microSD externa SE VA A PERDER.
Después de hacer los pasos siguientes, SOLO quedará intacta la microSD externa.
Comprobamos, una vez más, que tenemos todo salvado y copiamos a la microSD (si nuestro modelo es 3G) el fichero "modem.bin" que luego nos hará falta.


*********************
Ya estamos en el lio
*********************



Arrancamos la tablet en modo recovery y conectamos el cable

> adb shell
(entramos a la tablet)

> alias ls='ls -an'
(para tener un ls más documentado)

> parted /dev/block/mmcblk0
(para acceder a la tabla de particiones)
Nos saldrá algo como esto: 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)
La línea de comando de parted es (parted), por lo tanto siempre que una lína comience así lo que sigue es un comando.

> Pedimos información sobre las particiones actuales

(parted) p Model: MMC MAG2GA (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number... Start... ....End......... Size...........File system...... Name.... Flags
1............4194kB.... 25.2MB.... 21.0MB...... ext4................ EFS
2........... 25.2MB.... 27.3MB....2097kB............................... SBL1
3........... 27.3MB.....29.4MB....2097kB....................... ........ SBL2
4........... 29.4MB.... 37.7MB....8389kB............................... PARAM
5........... 37.7MB.... 46.1MB... 8389kB............................... KERNEL
6........... 46.1MB.... 54.5MB... 8389kB............................... RECOVERY
7............54.5MB...789.0MB.. 734.0MB....... ext4................CACHE
8......... 789.0MB.. 810.0MB.... 21.0MB.............................. MODEM
9......... 810.0MB.., 2278MB... 1468MB....... ext4............... FACTORYFS
10........ 2278MB.... 15.2GB.... 12.9GB.......ext4............... DATAFS
11......... 15.2GB..... 15.8GB.... 537MB....... ext4............... HIDDEN*************
Comentarios
*************
Viendo las particiones actuales. observamos que esta tablet es de 16 GB:
/cache (CACHE) tiene asignados 734 MB
/system (FACTORYFS) tiene asignados 1468 MB
/data (DATAFS) tiene asignados 12,9GB
También encontramos una curiosa partición de 537 MB llamada HIDDEN, en donde se guardan el vídeo,
el tema musical y las fotos de demo de Samsung.
Creo recordar que las extraje en su momento y ocupan unos 14 MB. En nuestro caso, esto lo vamos a desintegrar.
En esta guía, nosotros asignaremos: /cache (CACHE) 400 MB
/system (FACTORYFS) 400 MB
/data (DATAFS) lo que resulte de su espacio actual + 394 de CACHE + 1068 MB de FACTORYFS + 536 de HIDDEN.
Vamos a aunmentar en 1.998 MB el tamaño de /DATAFS, lo que nos dejará más de 14 GB de espacio libre.

Yo en este ejemplo utilizo 400 MB por que fue así como lo hice en mi tablet.
En la práctica 240 MB de /cache y 300 MB de /system son más que suficientes.
Como veremos posteriormente, estas son todas cifras aproximadas y seguro que en este momento estás pensando: "No me salen las cuentas". Pues a mi tampoco.
Vamos a verlo despacio:

21+2+2+8+8+8+21+1 que corresponden a las particiones "ocultas" son 71 MB.
Si sumamos 71 + 400 +400 nos salen 871 MB.
Si tenemos 16 GB y ocupamos menos de 1, nos deben quedar más de 15 GB.

Para empezar un GB son 1.048 MB. Por lo tanto 16 GB deberían ser 16.768 MB y solo tenemos 15.709 MB.
La explicación es sencilla: los fabricantes de discos "inventaron" que un GB son 1.000 MB.
Por lo tanto, de entrada en 16 GB ya nos faltan 768 MB.
Por otro lado, tenemos 34 sectores iniciales para sostener la tabla de particiones, sectores alternativos para recuperación de errores, "redondeos" de la asignación de sectores a particiones, etc.

Tenemos 11 particiones ahora mismo:
01 00021 MB
02 00002 MB
03 00002 MB
04 00008 MB
05 00008 MB
06 00008 MB
07 00734 MB
08 00021 MB
09 01468 MB
10 12900 MB
11 00537 MB
.....15709 MB

Y se deberían quedar así:
01 00021 MB
02 00002 MB
03 00002 MB
04 00008 MB
05 00008 MB
06 00008 MB
07 00400 MB *
08 00021 MB
09 00400 MB *
10 14838 MB *
11 00001 MB
.....15709 MB

Pero en la realidad, se quedarán así:
01 00021 MB
02 00002 MB
03 00002 MB
04 00008 MB
05 00008 MB
06 00008 MB
07 00419 MB *
08 00021 MB
09 00419 MB *
10 14800 MB *
11 00001 MB
.....15709 MB

La diferencia parece poca, sobre el particionado original, sin embargo nos permite tener todas nuestras apps habituales instaladas y aún así, partir de un espacio libre superior
al que teníamos inicialmente antes de comenzar a instalar nada. Es decir, más que antes con solo una CM pelada y recién instalada, incluso sin configurar.
Obviamente, si esto lo trasladamos a un modelo de 8 GB, la ganancia porcentual es mucho mayor.
Por otro lado pensemos que una ROM Aosp, como CM, no ocupa más de 260 MB en /system y que el cache solo ha de contener 60 MB para dalvik y lo que podamos descargar,
en un momento dado, desde Google-play. Con 170 MB va sobrado salvo que queramos descargar una aplicación que pese más de 100 MB. Las más grandes que he visto son de unos 40-45 MB.


En este momento, es cuando debemos decidir si seguimos adelante.
Hasta aquí, nos hemos divertido un poco pero no hemos "roto" nada.


NOTA: Si continuas leyendo el post siguiente y haces lo que en él se comenta, será única y exclusivamente bajo tu responsabilidad.

TuxLin
26/02/14, 17:35:09
************************************************** *****
Has decidido seguir (lector con nervios templados)
************************************************** *****


Pasamos la información a sectores (512 bytes cada uno)

(parted) u s
(parted) p
Model: MMC MAG2GA (sd/mmc)
Disk /dev/block/mmcblk0: 30777344s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Num... Start................ End............ Size........ Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4... CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11...29728734s.... 30777309s... 1048576s.... ext4... HIDDEN

(A partir de aquí voy a suprimir la cabecera, ya que siempre es igual)
Fácilmente tenemos la equivalencia entre MB y sectores: 4096 sectores son 2 MB, por lo tanto 1 MB son 2.048 sectores.


Ahora vamos a borrar la última partición, ya que comenzar por ella nos facilitará el trabajo al final.

(parted) rm 11


La creamos nuevamente, pero con otros datos, especificando el sector donde comienza (30775263) y el sector donde finaliza (30777310)

(parted) mkpart 11 30775263 30777310
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4...CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s


Ya tenemos una partición de 1 MB que antes tenía 537 MB.
Si, he cambiado el último sector de 30777309 a 30777310. No he añadido un sector al disco, ya estaba allí antes, pero sin asignar.
Esto ha sido por que quiero que el total sea un número par de sectores, al igual que el número de sectores de la partición debe ser par.



Antes, esta partición tenía un nombre. Por nosotros no va a quedar:

(parted) name 11 HIDDEN
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4...CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s............... HIDDEN


Ya está. Ahora nos olvidamos de ella y ni siquiera la vamos a formatear.
Dado que es la última partición y no se va a usar, no era necesario el trabajo que nos hemos tomado, pero, por si algún proceso cuenta las particiones, mantenemos las cosas ordenadas.



Bien, hasta aquí hemos hecho:

Borrar partición
Crear partición
Nombrar partición:





Si tenemos previamente una tabla calculada solo tenemos que hacer estos pasos para cada una de las particiones y no tenemos ni que mirar, solo al final ver si ha salido lo previsto.
No obstante, en este tutorial vamos a continuar paso a paso.



Reducimos el tamaño de CACHE

Calculamos 400 x 2048 = 819200 (400 MB x 2048 sectores = 819200 sectores)
106496 + 819200 = 925696 -1 = 925695
Nuestra nueva partición comienza en el sector 106496 y termina en el sector 925695



(parted) rm 7
(parted) mkpart 7 106496 925695
(parted) name 7 CACHE
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s............... HIDDEN


Nos limitamos a mover la partición MODEM

925696 + 40960 -1 = 966655



(parted) rm 8
(parted) mkpart 8 925696 966655
(parted) name 8 MODEM


Ahora toca FACTORYFS

(parted) rm 9
(parted) mkpart 9 966656 1785855
(parted) name 9 FACTORYFS
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8........ 925696s...... . 966655s....... 40960s................MODEM
9........ 966656s........ 785855s..... 819200s............... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11.. 30775263s.... 30777310s......... 2048s............... HIDDEN


Ya solo nos falta DATAFS. Aquí no hay que hacer cálculos: comienza en el sector siguiente a FACTORYFS y termina en el sector anterior a HIDDEN.

(parted) rm 10
(parted) mkpart 10 1785856 30775262
(parted) name 10 DATAFS
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8........ 925696s...... . 966655s....... 40960s................MODEM
9........ 966656s....... 785855s......819200s................ FACTORYFS
10.... 1785856s.... 30775262s..28989407s............... DATAFS
11.. 30775263s.... 30777310s......... 2048s............... HIDDEN


Así se nos ha quedado. Parecía difícil pero ya está.


************
Terminando
************


Salimos de parted, para terminar la fiesta.

(parted) q (quit)


En este momento, hemos vuelto al recovery.



Ahora, solo y exclusivamente si nuestra tablet es 3G/GSM, hemos de recuperar el módem:

dd count=40960 bs=512 if=/external_sd/modem.bin of=/dev/block/mmcblk0p8

***********
Formatear
***********


Recordemos que estamos en el recovery. Por lo tanto vamos a la tablet y seleccionamos:

- mounts and storage


Buscamos y pulsamos:

- format system
- format cache
- format /data and /data/media (/sdcard)
Solo y exclusivamente esas opciones. Para comprobar, ahora pulsamos:
. mount /system
- mount /cache
- mount /data
Si todo está bien, cada una de las tres opciones cambiará a unmount ..
*********************
HEMOS TERMINADO
*********************


Ahora, tenemos dos alternativas para reiniciar:



Instalamos nuestra Rom favorita, arrancamos, configuramos, recuperamos datos, etc.



Restauramos el backup que hemos realizado con recovery en la microSD externa y nos quedamos como si no hubiésemos roto un plato (pero con más sitio).



NOTA: Si has leído este post y haces lo que en él se comenta, será única y exclusivamente bajo tu responsabilidad.

TuxLin
26/02/14, 17:35:40
Inserto la tabla de particiones de una p3110 realizada por @Saitoh00:
Model: MMC M8G2FB (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1.........4194kB..........25.2MB............21.0MB .......ext4.......EFS
2........ 25.2MB..........27.3MB...........2097kB........... ...........SBL1
3.........27.3MB..........29.4MB...........2097kB. .................... SBL2
4.........29.4MB..........37.7MB...........8389kB. .....................PARAM
5.........37.7MB..........46.1MB...........8389kB. .....................KERNEL
6.........46.1MB..........54.5MB...........8389kB. .....................RECOVERY
7.........54.5MB...........474MB............419MB. ......ext4........CACHE
8..........474MB...........495MB...........21.0MB. .....................MODEM
9..........495MB...........914MB............419MB. ......ext4........FACTORYFS
10........914MB.........7817MB..........6903MB.... ...ext4........DATAFS
11......7817MB.........7818MB...........1049kB.... ..................HIDDEN
Model: MMC M8G2FB (sd/mmc)
Disk /dev/block/mmcblk0: 15269888s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1............8192s..........49151s.........40960s. ........ext4......EFS
2..........49152s..........53247s...........4096s. .....................SBL1
3..........53248s..........57343s...........4096s. .....................SBL2
4..........57344s..........73727s.........16384s.. ....................PARAM
5..........73728s..........90111s.........16384s.. ....................KERNEL
6..........90112s........106495s.........16384s... ...................RECOVERY
7........106496s........925695s.......819200s..... ....ext4......CACHE
8........925696s........966655s.........40960s.... ..................MODEM
9........966656s........785855s.......819200s..... ....ext4......FACTORYFS
10....1785856s....15267806s...13481951s.........ex t4......DATAFS
11..15267807s....15269854s...........2048s........ ..............HIDDE

tony42
26/02/14, 17:41:07
Bufff esto es para usuarios avanzados y con paciencia
Intentaré leerlo con tranqulidad a ver si puedo
Con recovery twrp no se puede?

Exte3
09/03/14, 17:48:34
Bufff esto es para usuarios avanzados y con paciencia
Intentaré leerlo con tranqulidad a ver si puedo
Con recovery twrp no se puede?

La verdad no es tan complicado, una vez empiezas le pillas la mano y sale bastante simple, yo lo hice cuando recién se había publicado y gane sus buenos Gb, y tantos las Cyanogenmod como Dhollmen funcionan perfecto en ese espacio :3

Hece_Fecal
10/03/14, 22:57:10
y que margen de espacio se gana? porque al instalar tu rom me parece dice: 11.87 de espacio total siendo una tablet de 16gb

headhell
22/03/14, 04:14:15
Como poder agradecerte este pedazo de tuto, ahora mi tablet tiene espacio de sobra para tirar millas hasta el infinito..ahora me caben todos los juegos jejeje...

Muchisimas gracias por todo.

bernarbernuli
18/07/14, 21:34:26
@TuxLin felicitaciones por el tutorial, me ha parecido muy interesante.

Bien, te comento que tengo un SGS4 i9505, pero en fin, salvando las pequeñas diferencias (tiene 29 particiones) la metodología debería ser la misma.

El caso que cuando introduzco los comandos "rm" no se elimina la partición requerida, escribo print para que me muestre la lista de particiones y sigue exactamente igual. Por supuesto, al introducir el comando "mkpart" para que me genere un a partición nueva, tampoco hace nada.

No me da ningún error, pero tampoco hace nada.

Que podría hacer para solucionarlo?

El recovery con el que me conecto por vía ADB es PhilZ.

djdedo
19/07/14, 05:46:52
Voy a intentarlo en otra variante del s4 I337M

djdedo
20/07/14, 05:12:10
Trate muchas veces pero no pude cambiar el tamaño de las particiones, no se cual sea el problema, cuando enviaba el comando mkpart 16 116MB 1020MB me marcaba mensaje de advertencia y un mensaje de si estaba seguro, le daba Y pero no hacia nada, intente borrar particiones y nada, hay alguna proteccio.

bernarbernuli
21/07/14, 23:19:24
Trate muchas veces pero no pude cambiar el tamaño de las particiones, no se cual sea el problema, cuando enviaba el comando mkpart 16 116MB 1020MB me marcaba mensaje de advertencia y un mensaje de si estaba seguro, le daba Y pero no hacia nada, intente borrar particiones y nada, hay alguna proteccio.

si, exacto, eso mismo me sucedió a mi. Si arrancas en modo Download, te marca en la parte superior "WRITE PROTECTION: Enable", quizás tenga algo que ver, no?

La pregunta es como se podría saltar la protección de escritura??

TuxLin
21/07/14, 23:56:48
si, exacto, eso mismo me sucedió a mi. Si arrancas en modo Download, te marca en la parte superior "WRITE PROTECTION: Enable", quizás tenga algo que ver, no?

La pregunta es como se podría saltar la protección de escritura??


Ignoro si el sistema de ficheros es diferente, pero una explicación es que esté montado el sistema de ficheros y otra que no seas root.

bernarbernuli
22/07/14, 00:09:03
Ignoro si el sistema de ficheros es diferente, pero una explicación es que esté montado el sistema de ficheros y otra que no seas root.

No, ninguna de esas...

El móvil está rooteado prácticamente desde el mismo día que lo compré, es mas, mi ROM habitual es CM, por tanto, está rooteado.

Sobre que esté montado las particiones, todas ellas "simulaban" como que si se hubieran eliminado, excepto la partición "cache" que me daba error al eliminar precisamente porque estaba montada, la desmonté desde el propio recovery, y ya pude eliminarla (al menos no me dio ningún error), pero evidentemente no eliminó ni esa ni ninguna.

Es como si lo simulara, pero realmente no hace nada.

He investigado un poco, como supongo sabrás, los S4 tienen el bootloader desbloqueado de fabrica, al menos en Europa, ese bloqueo "Write Protection" parece ser de Qualcom (fabricante del chip de los i9505) para evitar modificar las particiones, pero no impide por ejemplo flashear una ROM o un PIT firmado por Samsung.

Konata Master
22/02/15, 01:58:43
oye tuxlin tienes el archivo pit de p5110 con los 16GB completos yo intente modificar las particiones pero no me inicia la tablet y modificar las particiones no es facil