3 votos

¿Cómo mover una partición ext4 de 7GB en una tarjeta SD externa a una partición de 30GB en otra tarjeta SD?

Había rooteado mi teléfono Android Lollipop 5.1.1 e instalado Link2SD y vinculado las aplicaciones instaladas en ext4 7GB 2ª partición de la tarjeta SD externa de 16GB de tamaño . Las aplicaciones instaladas ocupaban 6,5GB de espacio y ahora me queda poco espacio. Tengo una tarjeta SD externa de 64GB y quiero dedicar 30GB.

He creado una imagen de la segunda partición de 7 GB de la tarjeta SD externa mediante el siguiente comando:

dd bs=4k count= if=/dev/block/mmcblk1p2 | gzip -5 -c > /storage/sdcard1/sdcard2root.img.gz

Ahora, ¿cuál es la manera de clonar esta imagen a una partición de 30 GB?

2voto

Jack Wade Puntos 231

Es fácil de conseguir en un PC con Linux:

  • Conecte ambas tarjetas SD al PC.
  • Volcar la segunda partición de la vieja tarjeta SD a la nueva. También es posible directamente desde el dispositivo Android. Ver Creación del volcado de la partición .
  • Redimensionar el tamaño del sistema de archivos a 30GB (el nuevo tamaño de la partición) usando resize2fs .

COPIAR TODO EL SISTEMA DE ARCHIVOS:

El método anterior también funciona en Android si puedes conectar la nueva tarjeta SD a través del lector de tarjetas SD USB OTG, mientras que la antigua está dentro del teléfono.

O puedes hacerlo en 2 pasos, como ya estás intentando:

  • Crear un volcado de la partición:

    ~# gzip -9ck /dev/block/mmcblk1p2 >/storage/sdcard1/sdcard2root.img.gz

    Puede utilizar dd o cat o incluso cp . Asegúrese de que tiene suficiente espacio en el almacenamiento primario externo (físicamente interno) para guardar la imagen volcada (y opcionalmente comprimida) de la segunda partición de la tarjeta SD.

    La compresión sólo es útil en caso de escasez. Para evitar que se copien los bloques liberados del sistema de archivos (de los archivos eliminados) utilice e2image -rap . O descartar el mapeo de bloques lógicos a físicos utilizando fstrim (en el sistema de archivos montado) o e2fsck -E discard , y soltar el caché de la página usando sync; echo -n 1 >/proc/sys/vm/drop_caches .

  • Inserte la nueva tarjeta SD y haga la partición usando parted o gdisk o fdisk .

  • Escribir la imagen de la partición en la nueva tarjeta SD:

    ~# gzip -dck /storage/sdcard1/sdcard2root.img.gz >/dev/block/mmcblk1p2
  • Maximizar el tamaño del sistema de archivos al tamaño de la partición:

    ~# resize2fs /dev/block/mmcblk1p2

COPIAR EL CONTENIDO DEL SISTEMA DE ARCHIVOS:

Otro método es copiar/mover sólo el contenido del sistema de archivos (archivos, directorios, etc.) y no toda la estructura del sistema de archivos. Pero los metadatos de los archivos deben ser preservados, o las cosas pueden romperse (ya que la partición debe ser montada dentro de /data ). Incluye timestamps , permiso mode , owner , group y extended attributes En particular, los contextos de SELinux. Algunos binarios ejecutables (en /system ) también puede tener definidas las capacidades del archivo (guardadas como atributos extendidos), pero eso no suele ser necesario para los datos del usuario. Otros metadatos como las ACLs (también guardadas como atributos extendidos) y los atributos de archivo ( banderas del inodo ) no suelen utilizarse en los dispositivos Android.

En Linux herramientas como rsync (o incluso cp ) puede conservar los metadatos necesarios. Como referencia, véase este y este respuesta. En Android (para mover el contenido en 2 pasos) tar es una buena opción:

~$ cd /path/to/old_sdcard/mountpoint/
~$ tar --create --preserve-permissions --selinux --verbose --gzip --file=/storage/sdcard1/sdcard2root.tar.gz .

Inserte la nueva tarjeta SD, haga una partición (si es necesario) y cree un sistema de archivos con mkfs.ext4 (por defecto toma toda la partición). Para restaurar la copia de seguridad:

~$ cd /path/to/new_sdcard/mountpoint/
~$ tar --extract --preserve-permissions --selinux --verbose --gunzip --file=/storage/sdcard1/sdcard2root.tar.gz

0 votos

Gracias por responder, lo probaré y te diré que tengo Windows, así que no puedo probar la opción linx, pero probaré los comandos e2image o dd.

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