Programa GUI para crear una imagen de respaldo de partición no mayor que sus archivos?


8

Me gusta 'Disks' ( gnome-disk-utility) y su capacidad para crear copias de seguridad de particiones del sistema.

ingrese la descripción de la imagen aquí

Pero en algún momento leí en Internet sobre un programa que crearía imágenes que no son tan grandes como toda la partición, sino solo tan grandes como los archivos que contiene. Ahora no puedo encontrarlo de nuevo.

¿Existe tal utilidad?


3
CloneZilla, tal vez?
muru

1
Como veo, clonezilla solo se puede ejecutar como una sesión en vivo. He editado para especificar que estoy buscando un programa que se pueda instalar y ejecutar desde un sistema operativo, estoy usando múltiples ubuntus y prefiero esta solución

Respuestas:


9

La siguiente respuesta utiliza una TUI , no una solución GUI :

Dependiendo de su caso de uso (lo uso para hacer copias de seguridad del sistema) puede usar CloneZilla Live . Puede crear:

  • imágenes dispersas ,
  • imágenes comprimidas de:
    • sistemas completos,
    • unidades enteras
    • simplemente particiones individuales.

Las principales ventajas son:

  • que arranca desde:
  • viene con su propio sistema operativo (basado en Ubuntu)
  • puede hacer copias de seguridad exactas del sistema de frío que se restauran fácilmente.

Además de todas estas cosas, también puede copiar MBR.

Si una copia de seguridad del sistema en frío no es lo que está buscando, aún puede utilizar la tecnología en la que se basa CloneZilla y eso es todo partclone.


1
He editado para especificar que estoy buscando un programa GUI que se pueda instalar y ejecutar desde un sistema operativo, estoy usando múltiples ubuntus y prefiero esta solución

¿Cómo instalar Pyclonezilla? No entrada de uno en Google de esta pregunta

1
Fui demasiado rápido para señalar la GUI: no funciona. Solo CLI! Eliminaré mi respuesta después de que hayas dejado una nota de que has leído esto.
Fabby

1
Como parece que no hay un programa que cumpla ambas condiciones: 1) Tener una GUI tipo 'Discos'; 2) Cree una imagen de disco tan grande como el espacio utilizado, no tiene sentido eliminar su respuesta. Las respuestas de la CLI a las preguntas de la GUI generalmente se presentan aquí y a menudo se aceptan, con buenas razones. Solo estaba tratando de presionar por lo que quería.

1
: DI tomaría una copia de seguridad y luego se reduciría ... ;-)
Fabby

4

Lograr imágenes de disco más pequeñas generalmente se realiza mediante la forma de no copiar cero bloques descubiertos del sistema de archivos inicial en la imagen. El concepto se llama escaso espacio en archivos o puching agujeros en los archivos, y el sistema de archivos de host tiene que apoyarlo. un poco de línea de comando pero intente esto:

sudo apt-get install virt-manager qemu-utils 

Y luego, una vez que está instalado, puede usar:

qemu-img convert -f raw -O raw  /dev/sdX /home/<user>/Ubuntu.img

Esto creará una imagen dispersa (no se escriben ceros en el archivo) de su disco. donde -f = formato, -O formato de salida. sdX el disco (puede usar particiones también). El programa tiene características avanzadas como instantáneas y diferentes formatos de salida (vdi, vmdk, etc.). El lugar donde guarde la imagen debe admitir archivos dispersos , de lo contrario, el tamaño será igual de grande, ya que los ceros en la partición se escribirán en el disco. Y para aprovecharlo al máximo, ejecute un programa como sfillo se zerofreeencuentra en apt en la partición, porque el espacio libre no siempre significa cero espacio, y desea maximizar la cantidad de espacio cero en el sistema de archivos.

Bonificación de puntos ninja. Dado que Linux piensa en los discos como "archivos", entonces también podría usar cp simple, con la condición de que la partición de salida donde estaciona el archivo conozca los archivos dispersos.

sudo cp --sparse=always /dev/sdX /home/<user>/Ubuntu.img

Lo que creará una copia sin formato mediante cp ..

Ejemplos de sistemas de archivos que admiten dispersión: ext4, btrfs, xfs, ntfs (sin embargo, ntfs-3g podría no permitir escrituras dispersas).

Ejemplos de sistemas de archivos que no: fat32.


He editado para especificar que estoy buscando un programa GUI que se pueda instalar y ejecutar desde un sistema operativo, estoy usando múltiples ubuntus y prefiero esta solución

¿Cuál sería el comando para restaurar la imagen?

Por lo general, en las granjas de servidores no tenemos mucho en las opciones de GUI y creamos scripts alrededor de dichos comandos. Esta es la razón por la que la línea de comandos suele ser más completa / potente en Unix. La conversión de espalda es tan fácil como invirtiendo los parámetros .. sudo cp /home/<user>/Ubuntu.img /dev/sdX, o si dd fantasía, sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX. Lo mismo con qemu-img convert .. Si dices, quieres plantar una máquina virtual en hardware real. Cuando vuelve a escribir, escribirá ceros en el disco, por lo que no se dispersará , ya que debe abordar correctamente la geometría de la partición.
user283885

1
Entiendo su punto y pido disculpas porque no conozco ninguna herramienta GUI para satisfacer sus necesidades. Solo pensé que al menos algo secundario podría ser útil para ti.
user283885

1
Bienvenido a este lado de la valla. La razón por la que señalé las granjas de servidores es por la forma en que se realiza la mayor parte del desarrollo últimamente. Por ejemplo, qemu-img es una utilidad de un proyecto mucho más grande (openstack, iniciado por redhat, rackspace y nasa). Tienes estas grandes compañías que crean software para adaptarse a sus centros de datos y luego tienes tipos como nosotros que aprovechan ese esfuerzo. Claro que funciona, pero es espartano en el mejor de los casos. Por ahora, lo mejor que puedo hacer es compartir el know how con los demás.
user283885

4

Como no parece haber ningún programa que por sí solo satisfaga las dos condiciones:

1) Tener una GUI tipo 'Discos';

2) Crear una imagen de disco tan grande como el espacio utilizado,

Estaba pensando en una solución bastante simple, pero una que involucra dos programas GUI, muy común en Ubuntu:

Uno sería los mismos 'Discos' (gnome-disk-utility) , utilizados para crear una imagen de respaldo de una partición dada, y el segundo sería Gparted, para reducir la partición tanto como sea posible antes de crear su imagen de respaldo, y para cambiar su tamaño al original después de eso .

No veo inconveniente en una operación de este tipo: reducir una partición al mínimo solo tomaría unos minutos (aproximadamente un minuto por 10 GB) y crearía un espacio vacío a la derecha. Después de hacer una imagen de respaldo del disco con 'Discos', usando Gparted la partición puede redimensionarse a la derecha en el espacio vacío hasta su estado inicial, y eso tomaría solo unos segundos.

Probado en una partición con una instalación de Ubuntu:


1
Como acabo de recibir un voto a favor de mi respuesta, leí si alguna vez encontraste una respuesta perfecta, ¡y esta parece ser la indicada! ¿Por qué no aceptas este?
Fabby

2

Editar : Esto no funcionará bien si los archivos eliminados del sistema de archivos todavía están presentes en la partición, por lo que primero es necesario borrar el espacio libre en la partición de destino:

  1. Montar la partición de destino
  2. correr dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
  3. Desmontar la partición de destino

Entonces:


Puede leer la partición completa bloque por bloque ddy enviar todo a una utilidad de compresión como gzip. Lo más probable es que cualquier herramienta de compresión, incluso utilizando la configuración de compresión más rápida / más baja, comprima todo el espacio libre durante el proceso.

Con gzip:

sudo dd if=/dev/sdX | GZIP=-1 gzip >/path/to/backup.gz

( GZIP=-1Establece temporalmente la variable de entorno GZIPpara -1lograr la compresión de más rápido / más bajo)

Para restaurar una copia de seguridad:

gzip -d /path/to/backup.gz >/dev/sdX


¿Qué piensa acerca de reducir la partición con gparted antes de usar Disks para hacer una copia de seguridad?

@cipricus Es mejor esperar a que alguien más diga algo sobre esto, porque no estoy seguro, aunque sea difícil, creo que debería estar bien hacerlo de esa manera
kos

@kos Encontré que el comando ddrescue que proporcionó produjo una imagen sin esfuerzo, pero no redujo el tamaño del archivo. Estaba imaginando una partición NTFS en ext4, que parecen funcionar con archivos dispersos, pero el tamaño del archivo .img que se muestra en Nautilus coincide exactamente con el tamaño de la partición de origen. Entonces, ¿parece que todavía es necesario jugar con gParted?
PhilJ

1

¿Qué tal usar ddrescuecon la -Sopción?

ddrescue -S /dev/sdXY /<path_to_backup>/backup.img

Esto clonará cada bloque pero se encontrarán cero bloques en el dispositivo de bloque /dev/sdXYpara/<path_to_backup>/backup.img


Suena genial. Pero, ¿cuál sería el comando para restaurar la imagen?

@cipricus Descubrí que esto depende en gran medida del sistema y no funcionará en todas las distribuciones, así que agregué un método más simple pero quizás un poco más lento para lograr lo mismo sin descargar software adicional, que es el método que realmente uso. uso
kos

0

No se puede usar para hacer una copia en una unidad más pequeña. Cuando tengo una unidad de 64 Gb que solo está llena en un 10% de datos. Me gustaría poder copiar eso en un archivo de imagen de 6 Gb, que puedo copiar a su vez en una unidad de 16 Gb y luego expandirlo a 16 gb

La única posibilidad que conozco ahora es usar GParted para reducir el original, que copiarlo y luego cambiar el tamaño de ambos. Una operación muy arriesgada, ya que necesita reducir y cambiar el tamaño del original.


0

Puede usar rsyncpara hacer una copia de seguridad de los archivos de la partición en otra partición. O tarpara crear un archivo comprimido que contenga todos los archivos.

Probablemente ambos tengan GUI (múltiples), pero nunca los he usado yo mismo.


0

Clonezilla en realidad puede ser bastante amigable. El CD en vivo no requiere ningún uso de la línea de comandos; me encantaría llamarlo GUI aunque no use el mouse, y creo que los valores predeterminados están bien en muchos casos. El problema es algo que no mencionó explícitamente: no parece estar diseñado como algo que pueda instalar en un sistema Linux arbitrario. Está empaquetado específicamente para Debian / Ubuntu, y el Live CD es la forma más fácil de ejecutarlo.


Clonezilla / partclone utiliza la clonación compatible con el sistema de archivos y utiliza su propio formato de imagen comprimido.

Hay otra posibilidad sin GUI para generar archivos dispersos simples (montables), que no se basan en la detección de sectores cero.

virt-sparsify /dev/your-block-device backup.img

Si / tmp es un disco RAM, advertirá que potencialmente necesita más espacio para archivos temporales. Por lo tanto, es posible que deba agregar la opción --tmp /var/tmp.


Descubrí que el método virt-sparsify ciertamente reduce el tamaño del archivo .img, pero requiere un directorio / tmp muy grande, aproximadamente igual al tamaño de la partición que se está creando. Apareció un mensaje de advertencia, pero cuando probé la opción --tmp que se muestra arriba (variada para mi configuración) me dio> opción desconocida `--tmp 'Ahora no estoy seguro de cómo desviar la salida / tmp a otra parte y cualquier consejo sobre eso sería útil para mí y para los futuros lectores de esta publicación.
PhilJ

Especificar virt-sparsify --version? La opción está documentada en la mía ( man virt-sparsify) ... No puedo jurar que la he usado, pero al menos mi actual /tmpes tmpfs. Si puede usar --in-place, parece que evitará el almacenamiento temporal. Por último que también podría tratar TMPDIR=/var/tmp virt-sparsify .... Los documentos de mi versión dicen que así es como debe configurar el directorio tmp para las versiones anteriores a 1.28.
sourcejedi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.