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


8

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

entrez la description de l'image ici

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 plus le retrouver.

Existe-t-il un tel utilitaire?


3
CloneZilla, peut-être?
muru

1
Comme je le vois, clonezilla ne peut être exécuté que comme une session en direct. J'ai édité pour spécifier que je recherche un programme qui peut être installé et exécuté à partir d'un système d'exploitation, j'utilise plusieurs Ubuntus et je préfère cette solution

Réponses:


9

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

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

  • images clairsemées ,
  • images compressées de:
    • 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 faire des sauvegardes exactes du système froid qui sont facilement restaurées.

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

Si une sauvegarde de système froid n'est pas ce que vous recherchez, vous pouvez toujours utiliser la technologie sur laquelle CloneZilla est basée et c'est le cas partclone.


1
J'ai édité pour spécifier que je recherche un programme GUI qui peut être installé et exécuté à partir d'un système d'exploitation, j'utilise plusieurs Ubuntus et je préfère cette solution

comment installer pyclonezilla? pas une entrée google pour cette question

1
J'ai été trop rapide pour signaler l'interface graphique: cela ne fonctionne pas. CLI uniquement! Je supprimerai ma réponse après avoir laissé une note indiquant que vous avez lu ceci.
Fabby

1
Comme il n'y a pas de programme, semble-t-il, pour remplir les deux conditions: 1) avoir une interface graphique de type «disques»; 2) Créez une image disque aussi grande que l'espace utilisé, inutile de supprimer votre réponse. Les réponses CLI aux questions de l'interface graphique sont généralement présentées ici et souvent acceptées, pour une bonne raison. J'essayais juste de pousser pour ce que je voulais.

1
: DI prendrait une sauvegarde puis se rétrécirait ... ;-)
Fabby

4

Pour obtenir des images disque plus petites, il est généralement possible de ne pas copier zéro bloc sorti du système de fichiers initial dans l'image. Le concept est appelé espace clairsemé dans les fichiers ou trous de fusion dans les fichiers, et votre système de fichiers hôte doit le prendre en charge. un peu de ligne de commande mais essayez ceci:

sudo apt-get install virt-manager qemu-utils 

Et puis une fois qu'il est 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 dans le fichier ne sont pas écrits) de votre disque. où -f = format, -O format de sortie. sdX le disque (peut également 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 emplacement où vous enregistrez l'image doit prendre en charge des fichiers clairsemé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 sfillou zerofreetrouvé dans apt sur la partition, car l'espace libre ne signifie pas toujours zéro espace, et vous voulez maximiser la quantité d'espace nul sur le système de fichiers.

Points bonus ninja. Étant donné que Linux considère les disques comme des "fichiers", vous pouvez également utiliser du cp ordinaire, à condition que votre partition de sortie où vous garez le fichier connaisse des fichiers clairsemés.

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

Ce qui créera une copie brute au moyen de cp ..

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

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


J'ai édité pour spécifier que je recherche un programme GUI qui peut être installé et exécuté à partir d'un système d'exploitation, j'utilise plusieurs Ubuntus et je préfère cette solution

quelle serait la commande pour restaurer l'image?

Habituellement, dans les batteries de serveurs, nous n'avons pas grand-chose dans les options de l'interface graphique et construisons des scripts autour desdites commandes. C'est pourquoi la ligne de commande est généralement plus complète / puissante sous Unix. Retransforme est tout aussi facile que l' inversion des paramètres .. sudo cp /home/<user>/Ubuntu.img /dev/sdXou si vous avez envie dd, sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX. Même chose avec qemu-img convert .. Si vous dites, voulez planter une machine virtuelle sur du vrai matériel. Quand il réécrit , il écrit des zéros sur le disque, donc vous n'analysez pas , car il doit traiter correctement la géométrie de la partition.
user283885

1
Je comprends votre point et je m'excuse de ne pas avoir connaissance d'outils GUI adaptés à vos besoins. Je pensais juste qu’au moins quelque chose d’autre que ça pourrait vous être utile.
user283885

1
Bienvenue de ce côté de la clôture. La raison pour laquelle j'ai souligné les batteries de serveurs est due à la façon dont la plupart des développements sont effectués récemment. Par exemple, le qemu-img est un utilitaire d'un projet beaucoup plus vaste (openstack, démarré par redhat, rackspace & nasa). Vous avez ces grandes entreprises qui créent des logiciels adaptés à leurs centres de données, puis vous avez des gars comme nous qui se joignent à cet effort. Bien sûr, cela fonctionne, mais c'est spartiate au mieux. Pour l'instant, le mieux que je puisse faire est de partager le savoir-faire avec les autres.
user283885

4

Comme il ne semble pas y avoir de programme qui à lui seul satisfasse aux 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 qui impliquait deux programmes GUI, très courants dans Ubuntu:

L'un serait le même 'Disks' (gnome-disk-utility) , utilisé pour créer une image de sauvegarde d'une partition donnée, et le second serait Gparted, pour réduire la partition autant que possible avant de créer son image de sauvegarde, et pour le redimensionner à l'original après cela .

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', en utilisant Gparted, la partition peut être redimensionnée vers la droite dans l'espace vide jusqu'à son état initial, et cela ne prend que quelques secondes.

Testé sur une partition avec une installation Ubuntu:


1
Comme je viens de recevoir un upvote à ma réponse, lire si vous avez déjà trouvé une réponse parfaite, et cela semble être celui-là! Pourquoi n'acceptez-vous pas celui-ci?
Fabby

2

Modifier : cela ne fonctionnera pas bien si des fichiers supprimés du système de fichiers sont toujours présents sur la partition, il est donc nécessaire d'abord d'effacer l'espace libre sur la partition cible:

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

Alors:


Vous pouvez lire la partition entière bloc par bloc avec ddet tout exporter vers un utilitaire de compression comme gzip. Très probablement, tout outil de compression, même en utilisant les paramètres de compression les plus rapides / les plus bas, compressera tout l'espace libre pendant le processus.

Avec gzip:

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

( GZIP=-1Fixe temporairement la variable d'environnement GZIPà -1pour atteindre le plus rapide / la plus faible compression)

Pour restaurer une sauvegarde:

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


Que pensez-vous de la réduction de la partition avec gparted avant d'utiliser des disques pour la sauvegarder?

@cipricus Mieux vaut attendre que quelqu'un d'autre dise quelque chose à ce sujet, parce que je ne suis pas sûr, même difficile, je pense que ça devrait être bien de le faire de cette façon non plus
kos

@kos J'ai trouvé que la commande ddrescue que vous donnez produisait une image assez facilement, mais elle ne réduisait pas du tout la taille du fichier. J'imaginais une partition NTFS en ext4, qui semblent fonctionner avec des fichiers clairsemés, mais la taille du fichier .img indiquée dans Nautilus correspondait exactement à la taille de la partition d'origine. Il semble donc que jouer avec gParted pourrait encore être nécessaire?
PhilJ

1

Que diriez-vous d'utiliser ddrescueavec -Soption?

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

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


Super. Mais quelle serait la commande pour restaurer l'image?

@cipricus J'ai découvert que cela dépend en fait fortement du système et ne fonctionnera pas sur chaque distribution, j'ai donc ajouté une méthode plus simple mais peut-être juste un peu plus lente pour accomplir la même chose sans télécharger de logiciel supplémentaire, qui est la méthode que j'utilise réellement use
kos

0

Il ne peut pas être utilisé pour faire une copie sur un disque plus petit. Quand j'ai un disque de 64 Go qui n'est rempli qu'à 10% de données. Je voudrais pouvoir le copier sur un fichier image de 6 Go, que je peux copier à son tour sur un disque de 16 Go et le développer à 16 Go

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


0

Vous pouvez utiliser rsyncpour sauvegarder uniquement les fichiers de la partition sur une autre partition. Ou tarpour 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

Clonezilla peut en fait être très sympathique. Le CD live ne nécessite aucune utilisation en 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 OK pour beaucoup de cas. Le problème est quelque chose que vous n'avez pas explicitement appelé: il 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 utilisent un clonage compatible avec le système de fichiers et utilisent leur propre format d'image compressé.

Il existe une autre possibilité non graphique de générer des fichiers clairsemé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 avertira qu'il a potentiellement besoin de plus d'espace pour les fichiers temporaires. Vous devrez donc peut-être ajouter l'option --tmp /var/tmp.


J'ai trouvé que la méthode virt-sparsify réduit certainement la taille du fichier .img mais elle nécessite un très grand répertoire / tmp, à peu près égal à la taille de la partition en cours d'imagerie. Il a donné un message d'avertissement mais lorsque j'ai essayé l'option --tmp indiquée ci-dessus (variée pour ma configuration), cela m'a donné> l'option inconnue `--tmp 'Je ne sais pas maintenant comment détourner la sortie / tmp ailleurs et tout conseil à ce sujet serait utile pour moi et pour les futurs lecteurs de cet article.
PhilJ

Précisez virt-sparsify --version? L'option est documentée sur le mien ( man virt-sparsify) ... Je ne peux pas jurer que je l'ai utilisé, mais au moins mon courant /tmpest tmpfs. Si vous pouvez l'utiliser --in-place, cela semble éviter le stockage temporaire. Enfin, vous pourriez aussi bien essayer TMPDIR=/var/tmp virt-sparsify .... Les documents de ma version disent que c'est ainsi que vous devez définir le répertoire tmp pour les versions antérieures à 1.28.
sourcejedi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.