¿Una imagen no te cabe en tu Tarjeta SD? ¿Quieres reducirla al Máximo? ¡Script Mágico PiShrink!
- cpcbegin
- Pi Master
- Mensajes: 249
- Registrado: 02 Jul 2017, 11:41
- Agradecido: 34 veces
- Agradecimiento recibido: 24 veces
¿Vale también para imágenes con varios sistemas operativos? yo he probado con una que tengo con raspbian + recalbox y al final sale este error:
No llega a terminar la ejecución y al final obtengo un archivo del mismo tamaño que el original.
Código: Seleccionar todo
Copying raspbianpixel_recalbox.img to raspbianpixel_recalbox_nueva.img...
md5sum: /tmp/tmp.l772kt316O/etc/rc.local: No existe el fichero o el directorio
./pishrink.sh: línea 97: [: !=: se esperaba un operador unario
e2fsck 1.43.4 (31-Jan-2017)
Paso 1: Verificando nodos-i, bloques y tamaños
Paso 2: Verificando la estructura de directorios
Paso 3: Revisando la conectividad de directorios
Paso 4: Revisando las cuentas de referencia
Paso 5: Revisando el resumen de información de grupos
share: 7073/247008 ficheros (0.5% no contiguos), 286239/987904 bloques
resize2fs 1.43.4 (31-Jan-2017)
resize2fs 1.43.4 (31-Jan-2017)
Cambiando el tamaño del sistema de ficheros en /dev/loop1 a 514331 (4k) bloques.
Se comienza el paso 2 (máx = 4144)
Reubicando bloques XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Se comienza el paso 3 (máx = 31)
Revisando la tabla de nodos-i XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Se comienza el paso 4 (máx = 1198)
Actualizando las referencias a los nodos-iXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
El sistema de ficheros en /dev/loop1 tiene ahora 514331 bloques (de 4k).
Error: Can't have overlapping partitions.
- ercarly
- Pi Omega
- Mensajes: 44
- Registrado: 29 May 2017, 23:28
- Agradecido: 0
- Agradecimiento recibido: 0
buenas a todos, tengo un problema y es que no me deja instalar el PiShrink por lo que no puedo hacer lo de las imagenes .... me dice la raspy desde putty que no se puede conectar por ssl al archivo.
a ver que opinais
saludetes
a ver que opinais
saludetes
- jumped
- Pi Beta
- Mensajes: 167
- Registrado: 11 Abr 2017, 13:05
- Agradecido: 2 veces
- Agradecimiento recibido: 3 veces
Yo también tengo una tarjeta con Raspbian, Libreelec, Retropie y me da el mismo error. Supongo que el script no funciona con estas imágenes.cpcbegin escribió:¿Vale también para imágenes con varios sistemas operativos? yo he probado con una que tengo con raspbian + recalbox y al final sale este error:
No llega a terminar la ejecución y al final obtengo un archivo del mismo tamaño que el original.Código: Seleccionar todo
Copying raspbianpixel_recalbox.img to raspbianpixel_recalbox_nueva.img... md5sum: /tmp/tmp.l772kt316O/etc/rc.local: No existe el fichero o el directorio ./pishrink.sh: línea 97: [: !=: se esperaba un operador unario e2fsck 1.43.4 (31-Jan-2017) Paso 1: Verificando nodos-i, bloques y tamaños Paso 2: Verificando la estructura de directorios Paso 3: Revisando la conectividad de directorios Paso 4: Revisando las cuentas de referencia Paso 5: Revisando el resumen de información de grupos share: 7073/247008 ficheros (0.5% no contiguos), 286239/987904 bloques resize2fs 1.43.4 (31-Jan-2017) resize2fs 1.43.4 (31-Jan-2017) Cambiando el tamaño del sistema de ficheros en /dev/loop1 a 514331 (4k) bloques. Se comienza el paso 2 (máx = 4144) Reubicando bloques XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Se comienza el paso 3 (máx = 31) Revisando la tabla de nodos-i XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Se comienza el paso 4 (máx = 1198) Actualizando las referencias a los nodos-iXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX El sistema de ficheros en /dev/loop1 tiene ahora 514331 bloques (de 4k). Error: Can't have overlapping partitions.
No sé si ayudará a alguien, pero os cuento "mi método" (a lo mejor alguno lo ha comentado) después de intentarlo desde la raspberry con kodi, de intentarlo desde la consola Bash de Windows 10 (hay una manera "nativa" de instalarla) y perder bastante tiempo intentando entender el entorno Linux (que seguramente sea maravilloso, pero me pilla con poco tiempo para dedicarle jaja).
La solución más rápida ha sido crear una máquina virtual con VMware (no sé si hay versión de prueba, pero si buscáis en Google encontraréis alguna web de intercambiosvirtuales donde conseguirla).
1- Bajas la ISO de Ubuntu Desktop (link).
2- Creas una nueva máquina virtual en VMware y os recomiendo que en espacio de disco que le asignáis, sea más que suficiente, yo le di 60GB para reducir un .IMG de 16GB.
Yo probé con 40GB y me daba error, no tengo ni idea, pero imagino que será porque a lo mejor almacena la transferencia en alguna especie de carpeta temporal (mientras pasa de Windows a Linux) y luego de ahí la copia a donde la estás poniendo tú. O a lo mejor no tiene nada que ver, pero mejor si le dais más gigas (tampoco es necesario darle 200, que supongo que tardará más en crearse la maquina virtual).
3- Copias el archivo (arrastrar desde tu Windows y soltar en la maquina virtual)
4- Ejecutas los comandos del 1er post (lo unico, fijate en qué ruta has colocado el archivo .IMG, pinchando sobre él con el botón derecho y Propiedades, lo ves).
5- Con la imagen nueva creada, pinchar y arrastrar hasta tu Windows.
Perdonad si parece una explicación para retrasados, pero creo que muchos llegamos por aquí poco familiarizados con Linux y cuanto más explicado, menos vueltas que dar.
Un saludo!
La solución más rápida ha sido crear una máquina virtual con VMware (no sé si hay versión de prueba, pero si buscáis en Google encontraréis alguna web de intercambiosvirtuales donde conseguirla).
1- Bajas la ISO de Ubuntu Desktop (link).
2- Creas una nueva máquina virtual en VMware y os recomiendo que en espacio de disco que le asignáis, sea más que suficiente, yo le di 60GB para reducir un .IMG de 16GB.
Yo probé con 40GB y me daba error, no tengo ni idea, pero imagino que será porque a lo mejor almacena la transferencia en alguna especie de carpeta temporal (mientras pasa de Windows a Linux) y luego de ahí la copia a donde la estás poniendo tú. O a lo mejor no tiene nada que ver, pero mejor si le dais más gigas (tampoco es necesario darle 200, que supongo que tardará más en crearse la maquina virtual).
3- Copias el archivo (arrastrar desde tu Windows y soltar en la maquina virtual)
4- Ejecutas los comandos del 1er post (lo unico, fijate en qué ruta has colocado el archivo .IMG, pinchando sobre él con el botón derecho y Propiedades, lo ves).
5- Con la imagen nueva creada, pinchar y arrastrar hasta tu Windows.
Perdonad si parece una explicación para retrasados, pero creo que muchos llegamos por aquí poco familiarizados con Linux y cuanto más explicado, menos vueltas que dar.
Un saludo!
-
- Pi Newbie
- Mensajes: 1
- Registrado: 25 Ago 2017, 13:45
- Agradecido: 0
- Agradecimiento recibido: 0
Hola chavales!,
muy buen tuto!!
El caso es que estoy intentando ejecutarlo desde windows10 en la consola de linux (ubuntu) y me pasa esto:
sabeis porque puede ser?
y por otro lado lo he probado en un nas synology y me pregunta esto y no sé que poner:
muy buen tuto!!
El caso es que estoy intentando ejecutarlo desde windows10 en la consola de linux (ubuntu) y me pasa esto:
Código: Seleccionar todo
root@MAD-REQ61705:/mnt/c/recalbox# ./pishrink.sh /mnt/c/recalbox/orig/recalbox41S3Nseii.img /mnt/c/recalbox/nueva/nueva.img
Copying /mnt/c/recalbox/orig/recalbox41S3Nseii.img to /mnt/c/recalbox/nueva/nueva.img...
losetup: Could not find any loop device. Maybe this kernel does not know
about the loop device? (If so, recompile or `modprobe loop'.)
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]
[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
[-M last_mounted_dir] [-O [^]feature[,...]]
[-Q quota_options]
[-E extended-option[,...]] [-T last_check_time] [-U UUID]
[ -I new_inode_size ] device
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]
[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
[-M last_mounted_dir] [-O [^]feature[,...]]
[-Q quota_options]
[-E extended-option[,...]] [-T last_check_time] [-U UUID]
[ -I new_inode_size ] device
mount: can't find /tmp/tmp.1pNQp8sDAI in /etc/fstab or /etc/mtab
md5sum: /tmp/tmp.1pNQp8sDAI/etc/rc.local: No such file or directory
./pishrink.sh: line 97: [: !=: unary operator expected
umount: /tmp/tmp.1pNQp8sDAI: not mounted
Usage: e2fsck [-panyrcdfvtDFV] [-b superblock] [-B blocksize]
[-I inode_buffer_blocks] [-P process_inode_size]
[-l|-L bad_blocks_file] [-C fd] [-j external_journal]
[-E extended-options] device
Emergency help:
-p Automatic repair (no questions)
-n Make no changes to the filesystem
-y Assume "yes" to all questions
-c Check for bad blocks and add them to the badblock list
-f Force checking even if filesystem is marked clean
-v Be verbose
-b superblock Use alternative superblock
-B blocksize Force blocksize when looking for superblock
-j external_journal Set location of the external journal
-l bad_blocks_file Add to badblocks list
-L bad_blocks_file Set badblocks list
resize2fs 1.42.9 (4-Feb-2014)
Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]
ERROR: Image already shrunk to smallest size
y por otro lado lo he probado en un nas synology y me pregunta esto y no sé que poner:
Código: Seleccionar todo
Inode 131031 has INDEX_FL flag set on filesystem without htree support.
Clear HTree index<y>?
- Luthor10
- Pi Destroyer
- Mensajes: 879
- Registrado: 23 Mar 2017, 13:57
- Agradecido: 0
- Agradecimiento recibido: 0
A ver si lo entiendo bien.
Con este scrip la imagen pasa a ocupar sólo lo que ocupa el contenido de la misma, no? Y al grabarla en una microsd se expande hasta ocupar el total de la microsd? Eso sería la repera.
Con este scrip la imagen pasa a ocupar sólo lo que ocupa el contenido de la misma, no? Y al grabarla en una microsd se expande hasta ocupar el total de la microsd? Eso sería la repera.
- Baxster
- Pi Master
- Mensajes: 267
- Registrado: 11 Ene 2017, 18:47
- Agradecido: 0
- Agradecimiento recibido: 2 veces
@Luthor10 Con Retropie es muy fácil:
Desde Attract Mode: Opción Attract Mode / Raspi-Config / Expand filesystem
Desde Emulation Station: Opción Retropie / Raspi-Config / Expand filesystem
Si la imagen es Recalbox se hace con Gparted y es algo más complicado.
A ver si en futuras versiones de Recalbox implementan esta opción porque es muy demandada.
Desde Attract Mode: Opción Attract Mode / Raspi-Config / Expand filesystem
Desde Emulation Station: Opción Retropie / Raspi-Config / Expand filesystem
Si la imagen es Recalbox se hace con Gparted y es algo más complicado.
A ver si en futuras versiones de Recalbox implementan esta opción porque es muy demandada.
- Luthor10
- Pi Destroyer
- Mensajes: 879
- Registrado: 23 Mar 2017, 13:57
- Agradecido: 0
- Agradecimiento recibido: 0
No lo quiero para emuladores. Es para una imagen con kodi (libreelec) que estoy prepando. Si es grabar y automáticamente se expande en la microsd será perfecto para que la puedan grabar en cualquier microsd sin desperdiciar espacio ;-)
- Luthor10
- Pi Destroyer
- Mensajes: 879
- Registrado: 23 Mar 2017, 13:57
- Agradecido: 0
- Agradecimiento recibido: 0
He conseguido reducir la imagen de Libreelec que he creado a 2,5gb. El problema es que luego no se autoexpande ocupando toda la microsd en la cual la grabo. Debería hacerlo, no?
Edito: por lo que estoy viendo es debido a que la orden de autoexpandirse, el pishrink, la escribe en el raspi-config de la carpeta etc. Yo no he visto ese archivo en libreelec en esa ruta. Quiza solo valga para raspbian... Sabeis algo?
Edito: por lo que estoy viendo es debido a que la orden de autoexpandirse, el pishrink, la escribe en el raspi-config de la carpeta etc. Yo no he visto ese archivo en libreelec en esa ruta. Quiza solo valga para raspbian... Sabeis algo?
Hola buenas a todos, lo primero gracias a todos los que se ocupan de hacer y responder a este tipo de post. Yo soy novato con la rasp y llevo desde el principio con este problema, despues de buscar y buscar por google llegue a este post pensando que seria la salvacion, pero era mucho esperar.. Me he leido el post entero y he visto que hay mas gente que le pasaba lo que a mi.
Al principo, cuando empece probar vi que podia modificar los datos en el disco externo en mi pc de windows con normalidad, pero al conectarlo a raspian en la raspberry me di cuenta que no podia ni siquiera modificar el nombre de las carpetas del disco externo, parecia no tener permisos, y asi debia ser, ya que al ejecutar el script me daba un error
"READ ONLY FILE SYSTEM".
Lo siguiente que probé fue a sacarlo de la carpeta donde estaba en el disco externo, al directorio raiz del mismo y ademas al ejecutar el script, solo le puse el directorio de origen (el raiz del disco externo donde habia depositado la imagen), no el de destino donde debia ser ubicada la nueva... y sorpresa, el proceso comenzo a funcionar como si todo fuese bien por primera vez, pero al final desdes de completar las X me dio un nuevo error, este vez algo relacionado con las particiones:
ERROR: Cant have overlapping partitions.
Hoy he vuelto a hacer un par de intentos con la vuelta al error de "Cannot write (Read-only file system)"
Alguna sugerencia o que mas puedo hacer? me tiene loco esto
Gracias, un saludo
Al principo, cuando empece probar vi que podia modificar los datos en el disco externo en mi pc de windows con normalidad, pero al conectarlo a raspian en la raspberry me di cuenta que no podia ni siquiera modificar el nombre de las carpetas del disco externo, parecia no tener permisos, y asi debia ser, ya que al ejecutar el script me daba un error
"READ ONLY FILE SYSTEM".
Lo siguiente que probé fue a sacarlo de la carpeta donde estaba en el disco externo, al directorio raiz del mismo y ademas al ejecutar el script, solo le puse el directorio de origen (el raiz del disco externo donde habia depositado la imagen), no el de destino donde debia ser ubicada la nueva... y sorpresa, el proceso comenzo a funcionar como si todo fuese bien por primera vez, pero al final desdes de completar las X me dio un nuevo error, este vez algo relacionado con las particiones:
ERROR: Cant have overlapping partitions.
Hoy he vuelto a hacer un par de intentos con la vuelta al error de "Cannot write (Read-only file system)"
Alguna sugerencia o que mas puedo hacer? me tiene loco esto


Gracias, un saludo
-
- Pi Newbie
- Mensajes: 1
- Registrado: 27 Ago 2017, 00:30
- Agradecido: 0
- Agradecimiento recibido: 0
Hola todos,Xtorm escribió:No sé si ayudará a alguien, pero os cuento "mi método" (a lo mejor alguno lo ha comentado) después de intentarlo desde la raspberry con kodi, de intentarlo desde la consola Bash de Windows 10 (hay una manera "nativa" de instalarla) y perder bastante tiempo intentando entender el entorno Linux (que seguramente sea maravilloso, pero me pilla con poco tiempo para dedicarle jaja).
La solución más rápida ha sido crear una máquina virtual con VMware (no sé si hay versión de prueba, pero si buscáis en Google encontraréis alguna web de intercambiosvirtuales donde conseguirla).
1- Bajas la ISO de Ubuntu Desktop (link).
2- Creas una nueva máquina virtual en VMware y os recomiendo que en espacio de disco que le asignáis, sea más que suficiente, yo le di 60GB para reducir un .IMG de 16GB.
Yo probé con 40GB y me daba error, no tengo ni idea, pero imagino que será porque a lo mejor almacena la transferencia en alguna especie de carpeta temporal (mientras pasa de Windows a Linux) y luego de ahí la copia a donde la estás poniendo tú. O a lo mejor no tiene nada que ver, pero mejor si le dais más gigas (tampoco es necesario darle 200, que supongo que tardará más en crearse la maquina virtual).
3- Copias el archivo (arrastrar desde tu Windows y soltar en la maquina virtual)
4- Ejecutas los comandos del 1er post (lo unico, fijate en qué ruta has colocado el archivo .IMG, pinchando sobre él con el botón derecho y Propiedades, lo ves).
5- Con la imagen nueva creada, pinchar y arrastrar hasta tu Windows.
Perdonad si parece una explicación para retrasados, pero creo que muchos llegamos por aquí poco familiarizados con Linux y cuanto más explicado, menos vueltas que dar.
Un saludo!
Soy nuevo en este foro y en linux,y la verdad la explicación de Xtrom me sirvió mucho. Gracias por eso.
Aunque todavía por el hecho de no saber mucho de linux tengo algunos problemas, espero me puedan ayudar:
1. No pude arrastrar el archivo a mi Ubuntu en mi maquina virtual, el archivo se empieza a pasar pero al finalizar la descarga, no aparece el archivo en la carpeta donde lo arrastre. Esto lo solucioné compartiendo una carpeta entre mi windows y mi ubuntu, ya tengo la imagen en ubuntu en una carpeta compartida. ¿Eso no me generará problemas al momento de hacer la reducción de la imagen?
2. No se como usar el comando para ejecutar el pishrink.sh si mi imagen esta en escritorio/carp , creo que no me servirá usando el comando ./pishrink.sh /media/HDD/vieja.img /media/HDD/nueva.img
Se que quizá sea tonto pero, ¿alguien podría decirme la manera correcta de colocar el comando para ejecutarlo y reducir la imagen? o explicarmelo...
/media/HDD/vieja.img <-- ¿es la ubicación del archivo a reducir?
/media/HDD/nueva.img <--¿es la nueva ubicación y nuevo nombre del archivo ya reducido?
Eso es lo que entiendo, pero no tengo la certeza de estar en lo correcto.
¿Podría alguien ayudarme?
Saludos! :victoria
- Baxster
- Pi Master
- Mensajes: 267
- Registrado: 11 Ene 2017, 18:47
- Agradecido: 0
- Agradecimiento recibido: 2 veces
Copia el script pishrink.sh y la imagen a reducir en tu carpeta compartida con Windows.
Abre una ventana de comandos sobre la carpeta compartida donde tienes la imagen y el script y teclea:
sudo ./pishrink.sh tu_imagen.img imagen_reducida.img
En tu_imagen.img escribe el nombre de la imagen a reducir que has copiado en la carpeta compartida
En imagen_reducida.img pon el nombre que quieras a la imagen reducida que se creará
Abre una ventana de comandos sobre la carpeta compartida donde tienes la imagen y el script y teclea:
sudo ./pishrink.sh tu_imagen.img imagen_reducida.img
En tu_imagen.img escribe el nombre de la imagen a reducir que has copiado en la carpeta compartida
En imagen_reducida.img pon el nombre que quieras a la imagen reducida que se creará
Buenas, una pregunta...
Si tengo una sd de 64 en la que como mucho tengo 6gb de datos y la quiero "comprimir" para luego pasar la imagen a otra sd de 32 como debo de hacerlo?
Simplemente pasando la imagen con el Win32DiskImager? O debo hacer algo más?
Muchas gracias por vuestra ayuda y al @Kike por el gran tuto!
Si tengo una sd de 64 en la que como mucho tengo 6gb de datos y la quiero "comprimir" para luego pasar la imagen a otra sd de 32 como debo de hacerlo?
Simplemente pasando la imagen con el Win32DiskImager? O debo hacer algo más?
Muchas gracias por vuestra ayuda y al @Kike por el gran tuto!

Me cito por si a alguien le ayuda.Prody escribió:Buenas, una pregunta...
Si tengo una sd de 64 en la que como mucho tengo 6gb de datos y la quiero "comprimir" para luego pasar la imagen a otra sd de 32 como debo de hacerlo?
Simplemente pasando la imagen con el Win32DiskImager? O debo hacer algo más?
Muchas gracias por vuestra ayuda y al @Kike por el gran tuto!
Simplemente con "raspi-config" se puede expandir la partición mediante la opción expandir del mismo configurador.
- Sherian
- Pi Newbie
- Mensajes: 4
- Registrado: 12 Oct 2016, 11:41
- Agradecido: 0
- Agradecimiento recibido: 0
Buenisimo post. Muchisimas gracias.
He de comentar que lo he probado desde la consola bash (ubuntu) de windows 10 y funciona a las mil maravillas.
Lo digo para los que usan windows, por que seguro que a alguien le puede venir bien para no tener que estar ejecutando todo en raspbian y luego en windows.

He de comentar que lo he probado desde la consola bash (ubuntu) de windows 10 y funciona a las mil maravillas.
Lo digo para los que usan windows, por que seguro que a alguien le puede venir bien para no tener que estar ejecutando todo en raspbian y luego en windows.
So far, so good,... so what? \m/
\m/

-
- Pi Newbie
- Mensajes: 5
- Registrado: 08 Oct 2017, 15:23
- Agradecido: 0
- Agradecimiento recibido: 0
Buen aporte, gracias 
