Forum Linux.général [résolu] Création image disque en "ignorant" l'espace inutilisé

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
29
juin
2025

Bonjour,

Je suis en train de cloner un disque USB de 750 GB (en Ext4), dont environ 40 sont utilisés.
Pour l'instant je suis parti sur :

zerofree /dev/sdf1
dd if=/dev/sdf bs=32M | gzip -c > /foo/bar/my_image.dd.gz

En continuant comme ça, j'en aurais pour la journée (6 heures à 70 MB / seconde), alors qu'en théorie il y aurait moyen de faire ça en 20 minutes…

Est-ce que quelqu'un connaîtrait un utilitaire magique qui remplace à la volée l'espace inutilisé par des zéros ?

Ça accélérerait pas mal la création de l'image du disque.

Edit suite aux réponses en commentaire :

partclone

Partclone répond au besoin, de 6 heures je suis passé à 15 minutes, par contre le format de sortie est spécifique.

partclone.ext4 -c -d -s /dev/sdf1 -o disque.partclone

Comme attendu, le fichier de sortie fait 40.1 GB (soit l'espace utilisé sur le disque)
test refait plus tard, voir plus bas

partclone + gzip

En restaurant l'image et en zippant :

partclone.ext4 -c -d -s /dev/sdf1 | partclone.restore -d -s - | gzip -c > disque.img.gz

Avantage : on peut restaurer l'image en ayant juste gunzip et dd.

Par contre, on passe à un peu plus de 55 minutes, dû probablement à la compression monothread (sur CPU Intel core i5-14400F avec disque NVMe tenant 2.5 GB par seconde en écriture).
Pour un disque de 750.2 GB dont 40.1 GB utilisé, on arrive à un fichier de 39.2 GB donc plutôt bien.

partclone + pigz

partclone.ext4 -c -d -s /dev/sdf1 | partclone.restore -d -s - | pigz -c > disque.img.gz

Le fichier de sortie est passé de 39.2 à 39.3 GB, différence qui reste négligeable.
Par contre, la durée de clonage est passée à 13 minutes 16 secondes, ce qui est même plus rapide que partclone seul. A éviter en période de canicule (température CPU à 80°C)
Une explication possible serait que le test avec partclone seul se faisait en direction d'un disque dur SATA (à plateau) un peu plus lent (175 MB par secondes).

FSArchiver

fsarchiver -j10 savefs disque.fsa /dev/sdf1

(j10 à adapter en fonction du nombre de cœurs du CPU)

Ça fait presque peur, 9 minutes 32 secondes pour cloner le disque (sortie de 38.2 GB). À noter que le CPU a nettement moins chauffé qu'avec pigz (CPU à 48°C). Reste le problème du format de fichier de sortie qui est spécifique à fsarchiver.

partclone (le retour)

Ça m'étonnait un peu que partclone + pigz soit plus rapide que partclone seul, donc j'ai refait le test en dirigeant vers le NVMe.
La durée passe à 7 minutes 44 (soit 88 MB/secondes ce qui est plus rapide que le test de performances de gnome…)

Conclusion

Je vais en rester là vu que le problème est résolu, à long terme je pense rester sur la solution partclone + pigz pour garder un format de sortie "standard".

Merci à Éric et Cyril pour votre aide.

NB: dire qu'au final, ça aura pris 6 heures…

  • # clonezilla ?

    Posté par  (site web personnel) . Évalué à 3 (+2/-0).

    Il me semble que clonezilla ne copie que le nécessaire. La doc indique qu'il utilise le logiciel partclone en couche basse.

    • [^] # Re: clonezilla ?

      Posté par  . Évalué à 2 (+1/-0).

      merci, partclone semble correspondre à ce que j'ai besoin.

      partclone.ext4 -c -d -s /dev/sdf1 | gzip -c > image.partclone.gz

      A priori, il annonce un quart d'heure, ce qui est nettement mieux.
      Bon par contre, par rapport à dd, on perd le côté "image standard", mais bon pas le choix…

      Les vrais naviguent en -42

  • # Quel est le cas d'usage ?

    Posté par  (site web personnel) . Évalué à 4 (+2/-0).

    Tu parles de cloner un disque, mais pas trop de ce que tu veux en faire plus tard.

    Est-ce que c'est pour remplacer à l'identique en cas de problème ? Pour déployer sur une autre machine avec la même capacité ? Sauvegarder le système de fichiers plutôt que le disque ? Est-ce pour une opération ponctuelle ou récurrente ? Par exemple, en fonction des besoins, une table de partitions n'est pas forcément pertinente.

    Quoi qu'il en soit, quand il s'agit de créer une image disque comprimée, zerofree peut être ton ami.

    (Sur des images spécifiques générées pour des clients, entre 3 et 4 Go, plus ou moins remplies, le gain en taille après compression en xz était de l'ordre de 40 %.)

    Sinon, un autre outil pour travailler au niveau du FS : fsarchiver.

    Debian Consultant @ DEBAMAX

    • [^] # Re: Quel est le cas d'usage ?

      Posté par  . Évalué à 1 (+0/-0).

      C'est un disque dur qui était branché sur la télévision pour enregistrer des films de la TNT, les enregistrements sont dans un format propriétaire et chiffrés.. Je compte le réutiliser (temporairement ?) pour autre chose, donc je me fais une sauvegarde pour pouvoir le rebrancher sur la TV plus tard.

      A noter que j'avais déjà transféré les enregistrements de la télé d'un disque à un autre en faisant un dd suivi d'une extension de partition (40 GB vers 750) et que ça s'était bien passé. Donc je ne m'inquiète pas trop de ce côté là.

      Dans le cas qui me concerne aujourd'hui, la meilleur solution semble être l'enregistrement au format partclone pour sa vitesse.
      J'en profite quand même pour voir à plus long terme pour mes images disque, et dans ce cas, je cherche à limiter les dépendances lors de la restauration, d'où le test partclone + conversion au format "image brute compressée", par contre la conversion limite vraiment les performances (je donnerai les chiffres dès que ça sera terminé).

      Il faudra que je teste FSArchiver au passage.

      Les vrais naviguent en -42

      • [^] # Re: Quel est le cas d'usage ?

        Posté par  (site web personnel) . Évalué à 4 (+2/-0).

        Voir pigz et pixz si des cœurs s'ennuient.

        Debian Consultant @ DEBAMAX

        • [^] # Re: Quel est le cas d'usage ?

          Posté par  . Évalué à 1 (+0/-0).

          Bon, ben c'est reparti pour pigz.

          J'ai mis à jour le post il y a quelques minutes avec les résultats.

          Je sens qu'au final, au lieu de passer 6 heures à faire mon clonage, je vais faire 6 heures de benchmark… pas grave.

          Les vrais naviguent en -42

          • [^] # Re: Quel est le cas d'usage ?

            Posté par  . Évalué à 1 (+0/-0).

            ah oui, 13 minutes 16 secondes !
            par contre c'était clairement pas la bonne journée pour rajouter du chauffage dans l'appart.

            coretemp-isa-0000
            Adapter: ISA adapter
            Package id 0:  +80.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 0:        +78.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 4:        +78.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 8:        +80.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 12:       +78.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 16:       +78.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 20:       +77.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 24:       +74.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 25:       +74.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 26:       +74.0°C  (high = +80.0°C, crit = +100.0°C)
            Core 27:       +74.0°C  (high = +80.0°C, crit = +100.0°C)
            

            Les vrais naviguent en -42

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.