web-dev-qa-db-fra.com

Programme graphique pour créer une image de sauvegarde de partition pas plus grande que ses fichiers?

J'aime 'Disks' (gnome-disk-utility) et sa capacité à créer des sauvegardes de partitions système.

enter image description here

Mais à un moment donné, j'ai lu sur Internet un programme qui créerait de telles images qui ne sont pas aussi grandes que la partition entière, mais seulement aussi grandes que les fichiers qu’elle contient. Maintenant je ne peux pas le retrouver.

Existe-t-il un tel utilitaire?

8
user47206

Comme il ne semble pas exister de programme qui satisferait à lui seul les deux conditions:

1) avoir une interface graphique de type "disques";

2) Créer une image disque aussi grande que l'espace utilisé,

Je pensais à une solution de contournement assez simple, mais impliquant deux programmes d'interface graphique, très courante dans Ubuntu:

L'un serait le même 'Disks' (utilitaire gnome-disk) , utilisé pour créer une image de sauvegarde d'une partition donnée, et le second être Gparted, pour réduire la partition autant que possible avant de créer son image de sauvegarde, puis redimensionner à la taille d'origine .

Je ne vois aucun inconvénient dans une telle opération: réduire une partition au minimum ne prendrait que quelques minutes (environ une minute pour 10 Go) et créerait un espace vide à droite. Après avoir créé une image de sauvegarde du disque avec 'Disks', vous pouvez redimensionner la partition à l’aide de Gparted vers la droite dans l’espace vide jusqu’à son état initial, ce qui ne prend que quelques secondes.

Testé sur une partition avec une installation Ubuntu:

4
user47206

La réponse suivante utilise un TUI, pas un GUI solution:

En fonction de votre cas d'utilisation (je l'utilise pour effectuer des sauvegardes du système), vous pouvez utiliser CloneZilla Live . Il peut créer:

  • épars images,
  • images compressées de:
    • des systèmes entiers,
    • lecteurs entiers
    • simplement des partitions individuelles.

Les principaux avantages sont:

  • qu'il démarre à partir de:
  • est livré avec son propre système d'exploitation (basé sur Ubuntu)
  • il peut effectuer des sauvegardes exactes du système froid facilement restaurées.

En plus de tous ces cadeaux, il peut également copier des MBR.

Si vous ne recherchez pas une sauvegarde de système froid, vous pouvez toujours utiliser la technologie sur laquelle CloneZilla est basée: partclone .

9
Fabby

Pour obtenir des images de disque plus petites, il est généralement préférable de ne pas copier les blocs supprimés du système de fichiers initial dans l'image. Le concept s'appelle espace clairsemé dans les fichiers ou apparaissant trous dans les fichiers, et votre système de fichiers hôte doit le prendre en charge. un peu en ligne de commande mais essayez ceci:

Sudo apt-get install virt-manager qemu-utils 

Et puis, une fois installé, vous pouvez utiliser:

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

Cela créera une image clairsemée (les zéros du fichier ne sont pas écrits) de votre disque. où -f = format, -O format de sortie. sdX le disque (peut aussi utiliser des partitions). Le programme possède des fonctionnalités avancées telles que des instantanés et différents formats de sortie (vdi, vmdk, etc.). Votre place où vous enregistrez l'image doit prendre en charge les fichiers fragmentés, sinon la taille sera tout aussi grande, car les zéros de la partition seront écrits sur le disque. Et pour en tirer le meilleur parti, exécutez un programme tel que sfill ou zerofree trouvé dans apt sur la partition, car l'espace disponible ne signifie pas toujours zéro espace et vous souhaitez maximiser la quantité d'espace nul sur le système de fichiers.

Points bonus ninja. Puisque Linux considère les disques comme des "fichiers", vous pouvez également utiliser plain cp, à condition que la partition de sortie où vous avez garé le fichier connaisse les fichiers fragmentés.

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

Ce qui va créer une copie brute avec cp ..

Exemples de systèmes de fichiers prenant en charge les fichiers fragmentés: ext4, btrfs, xfs, ntfs (ntfs-3g peut toutefois ne pas autoriser les écritures fragmentées).

Exemples de systèmes de fichiers qui ne le font pas: fat32.

4
user283885

Edit: Cela ne fonctionnera pas bien si les fichiers supprimés du système de fichiers sont toujours présents sur la partition. Il est donc d'abord nécessaire d'effacer l'espace libre sur la partition cible:

  1. Montez la partition cible
  2. Exécutez dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
  3. Démonter la partition cible

Ensuite:


Vous pouvez lire la partition entière bloc par bloc avec dd et exporter le tout dans un utilitaire de compression tel que gzip. Très probablement, tout outil de compression, même en utilisant les paramètres de compression les plus rapides/les plus faibles, compressera tout l’espace libre au cours du processus.

Avec gzip:

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

(GZIP=-1 définit temporairement la variable d'environnement GZIP sur -1 pour obtenir la compression la plus rapide/la plus faible)

Pour restaurer une sauvegarde:

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

2
kos

Pourquoi ne pas utiliser ddrescue avec l'option -S?

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

Cela va cloner chaque bloc, mais zéro bloc trouvé dans le périphérique bloc /dev/sdXY à /<path_to_backup>/backup.img

1
kos

Clonezilla peut en fait être assez sympathique. Le live CD ne nécessite aucune utilisation de la ligne de commande - je serais très heureux de l'appeler une interface graphique même s'il n'utilise pas la souris - et je pense que les valeurs par défaut sont correctes dans de nombreux cas. Le problème est quelque chose que vous n'avez pas explicitement appelé: cela ne semble pas être conçu comme quelque chose que vous pouvez installer sur un système Linux arbitraire. Il est spécialement conçu pour Debian/Ubuntu, et le Live CD est le moyen le plus simple de l’exécuter.


Clonezilla/partclone utilise le clonage tenant compte du système de fichiers et utilise son propre format d'image compressée.

Il existe une autre possibilité non graphique permettant de générer des fichiers fragmentés simples (montables), qui ne reposent pas sur la détection de secteurs nuls.

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

Si/tmp est un disque virtuel, il sera averti qu'il a potentiellement besoin de plus d'espace pour les fichiers temporaires. Vous devrez donc peut-être ajouter l'option --tmp /var/tmp.

0
sourcejedi

Il ne peut pas être utilisé pour effectuer une copie sur un lecteur plus petit. Lorsque j'ai un lecteur de 64 Go, il ne contient que 10% de données. J'aimerais pouvoir copier cela dans un fichier image de 6 Go, que je peux copier à son tour sur un lecteur de 16 Go, puis l'étendre à 16 Go.

La seule possibilité que je connaisse maintenant est d'utiliser GParted pour réduire l'original, puis le copier et le redimensionner tous les deux. Une opération très risquée, car vous devez réduire et redimensionner l'original.

0
user522843

Vous pouvez utiliser rsync pour sauvegarder uniquement les fichiers de la partition sur une autre partition. Ou tar pour créer une archive compressée contenant tous les fichiers.

Les deux ont probablement plusieurs interfaces graphiques, mais je ne les ai jamais utilisées moi-même.

0
Pelle