dd (Disk Dub) a quand même plusieurs utilités. Sa fonction principale (et originelle) sert bien à dupliquer des disques, mais il propose bien plus d'options que le simple bs.
Si spécifier la taille d'un bloc paraît inutile, c'est justement parce que cela fait double emploi avec la couche « périphérique bloc » du système d'exploitation, qui est censée lisser tout cela et nous permettre d'y accéder comme à un flux ordinaire. Par contre, quand on utilisait des raw devices, il était nécessaire de faire des accès atomiques de la taille d'un secteur et, par conséquent, alignés sur eux (pas question de copier deux demi-secteurs consécutifs, par exemple). Et là, il est quasiment impossible de manipuler sérieusement un volume sans recourir à ce genre d'outils.
En outre, dd propose ibs et obs qui permettent de spécifier une taille de bloc différente en entrée et en sortie. Utile pour le genre de périphérique, ou pour balancer des données à travers des sockets qui exigent des trames de taille fixe.
Dernier point mais non des moindres : il existe l'option noerror qui permet de continuer le traitement même en cas d'erreurs de lecture qui, sur un disque, correspondraient à des secteurs défectueux. C'est quand même un gros avantage sur cp qui, par ailleurs, n'est pas fait pour être interrompu. dd a le bon goût d'indiquer où il en est quand on le stoppe prématurément.
Du coup, il vaut mieux ne pas spécifier comme taille de bloc celle du volume entier car, à la moindre erreur, c'est justement le reste « du volume entier » qui est passé ou rempli avec des zéros. En ce sens, il est plus intéressant de choisir comme taille de bloc celle d'un secteur ou d'un bloc du système de fichier (généralement 4096 octets) et ensuite de la multiplier par un certain facteur pour profiter de la RAM disponible et limiter les appels système, mais en restant raisonnable pour les raisons évoquées. Un bloc de la taille d'une piste est généralement un bon compromis.
[^] # Re: cp
Posté par Obsidian . En réponse au message comment calculer le bs d'un dd. Évalué à 10.
dd (Disk Dub) a quand même plusieurs utilités. Sa fonction principale (et originelle) sert bien à dupliquer des disques, mais il propose bien plus d'options que le simple bs.
Si spécifier la taille d'un bloc paraît inutile, c'est justement parce que cela fait double emploi avec la couche « périphérique bloc » du système d'exploitation, qui est censée lisser tout cela et nous permettre d'y accéder comme à un flux ordinaire. Par contre, quand on utilisait des raw devices, il était nécessaire de faire des accès atomiques de la taille d'un secteur et, par conséquent, alignés sur eux (pas question de copier deux demi-secteurs consécutifs, par exemple). Et là, il est quasiment impossible de manipuler sérieusement un volume sans recourir à ce genre d'outils.
En outre, dd propose ibs et obs qui permettent de spécifier une taille de bloc différente en entrée et en sortie. Utile pour le genre de périphérique, ou pour balancer des données à travers des sockets qui exigent des trames de taille fixe.
Dernier point mais non des moindres : il existe l'option noerror qui permet de continuer le traitement même en cas d'erreurs de lecture qui, sur un disque, correspondraient à des secteurs défectueux. C'est quand même un gros avantage sur cp qui, par ailleurs, n'est pas fait pour être interrompu. dd a le bon goût d'indiquer où il en est quand on le stoppe prématurément.
Du coup, il vaut mieux ne pas spécifier comme taille de bloc celle du volume entier car, à la moindre erreur, c'est justement le reste « du volume entier » qui est passé ou rempli avec des zéros. En ce sens, il est plus intéressant de choisir comme taille de bloc celle d'un secteur ou d'un bloc du système de fichier (généralement 4096 octets) et ensuite de la multiplier par un certain facteur pour profiter de la RAM disponible et limiter les appels système, mais en restant raisonnable pour les raisons évoquées. Un bloc de la taille d'une piste est généralement un bon compromis.