Commande dd

Bonjour,

J’ai un petit souci avec la commande dd, voilà à quoi elle ressemble:

#dd if=/dev/sda6 of=/media/DATA/Documents\ and\ Settings/XXX/serveur.raw bs=1k

Je copie le disque sda6 dans le dossier “Mes documents” de ma partition Windows.

Le problème c’est que l’espace utilisé de sda6 est de 4Go, espace libre environ 90Go, et quand je copie ça grimpe… j’interromps la commande quand ça dépasse 40Go car ça sert rien de continuer.

En fait je voudrais copier seulement l’espace utilisé et pas tout le disque.

Avez vous une idée?

Merci

dd est fait spécifiquement pour copier l’ensemble du disque secteur par secteur, sans se poser de questions sur le contenu.
Tourne toi vers partclone, partimage, ou encore mieux CloneZilla qui est une distro Live se chargeant de configurer correctement ces programmes sans trop de prises de tête.

Bonjour

dd fait une copie physique des secteurs du disque, peu importe s’ils contiennent des données ou pas.

Pour ne sauvergarder que la partie du disque utilisée, tu dois utiliser des logiciels :

  • partimage (mais ne sauve pas les partitions ext4)
  • clonezilla

Edit : grillé par syam :slightly_smiling:

Merci pour vos réponses,

En fait je ne peux pas utiliser de logiciel car j’utilise cette commande dans un script. Je veux créer une image utilisable ensuite par kvm, qemu…

Vous auriez une idée de commande?

partclone et partimage sont utilisables en ligne de commande (c’est d’ailleurs ce que fait CloneZilla : un frontend qui pose des questions puis traduit ça en options qui vont bien pour le backend choisi), ce que tu aurais immédiatement compris si tu avais cherché des infos sur ces commandes.

Cela dit si le but est de faire une image qemu/kvm, alors il te faudra très certainement copier l’intégralité du disque y compris l’espace inutilisé (à moins qu’ils supportent les images à taille dynamique, auquel cas de toutes façons il vaut mieux se référer à la doc de qemu/kvm qui expliquera comment les créer).
Par contre si ton image peut se passer d’espace libre, fais un dd complet puis réduis l’image (d’abord le FS puis la “partition” dans le fichier puis le fichier lui-même).

rsync fait ça très bien.

rsync est fait pour copier des fichiers, pas pour faire des images disque. Je doute fort que ça convienne pour créer une image compatible avec qemu/kvm (image qui est en fait l’équivalent d’un disque complet mais contenu dans un fichier, y compris table de partitions et filesystem).

bjr a tous

je m’interesse un peu a l’usage de dd

en pratique on fait comment pour reduire l’image???

merci d’avance

dd if=/dev/sda6 | gzip > Fichier.img.gz

mais prévoir un peu de temps…

Sinon tu demandes le beurre et l’argent du beurre.

merci a toi effectivement

Hmm pourtant fdisk et consort peuvent bien travailler sur un fichier (image dd du disque) au lieu d’un périphérique, non ? Dans ce cas je ne vois rien qui s’oppose à la procédure classique resize2fs / fdisk pour réduire la partition, il faut juste en plus redécouper le fichier à la bonne taille une fois tout ça fini.

Je me plante quelque part ??

Hmm pourtant fdisk et consort peuvent bien travailler sur un fichier (image dd du disque) au lieu d’un périphérique, non ? Dans ce cas je ne vois rien qui s’oppose à la procédure classique resize2fs / fdisk pour réduire la partition, il faut juste en plus redécouper le fichier à la bonne taille une fois tout ça fini.

Je me plante quelque part ??[/quote]

Oui, et oui mais dans ce cas tu modifies l’image de la partition. Le beurre c’est avoir une image non modifiée de la partition compressée et l’argent du beurre consiste à trvailler directement dessus. Quant à ta solution vs la compression à la volée, je viens de vérifier que effectivement resize2fs réajuste la taille du fichier dans ce cas. ±a peut être une bonne solution surtout si il y a eu une grosse activité sur le disque avant.

Ok, je n’avais pas compris ta remarque de cette manière. :wink:
Tu as bien entendu raison, mais dans le cas qui intéresse synx91 (création d’une image qemu/kvm à partir d’un disque existant) je pense que c’est précisément le but qu’il recherchait.

vala quelque petite info :stuck_out_tongue:

dd c’est bien :wink:

Merci pour toutes vos infos, je vais me pencher sur tout ça

j’ai pas tout lu mais il est trés simple de faire une copie avec dd ( c’est dangereux en cas d’erreur )

Soit à copier le fichier du rep courant dénomé notes.sh vers un fichier dénomé test.sh :

dd if=notes.sh of=test.sh 143+1 enregistrements lus 143+1 enregistrements écrits 73388 octets (73 kB) copiés, 0,00626495 s, 11,7 MB/s
C’est aussi simple que ça mais dd n’est à priori pas faite pour ça

Mais ce qui à été dit est + judicieux que ce que je viens de dire, je parcours simplement le forum …