Comme pour beaucoup de tâches, en particulier dans le domaine du stockage, il est frappant de constater que les systèmes Posix contiennent en standard tout le nécessaire, contrairement aux productions, qui n'ont d'OS que le nom, d'une certaine firme dominante… Ainsi, d'autres compagnies, dont l'une incontournable dans le domaine du stockage SCSI, se sont fait du beurre en exploitant ce vide et la mode de l'utilisation des CDs sur ordinateur à partir de la toute fin des années 1990s, en particulier deux, chacune avec leurs suites… à la fois concurrentes et complémentaires, utilisant l'une et l'autre des formats de fichiers privateurs spécifiques… alors que dans le monde Posix, la commande dd
était fournie en standard depuis des lustres et générait parfaitement des images dans un format standard…
Il semblerait que la méthode rapide (version archivée, car comme souvent le site est tombé juste après sa découverte) peut avoir un inconvénient mineur : une comparaison ultérieure des sommes de contrôle du fichier obtenu et du CD originel pourrait échouer à cause de l'absence, dans le premier, de zéros ajoutés pour remplir les secteurs. Le problème pourrait se résoudre en injectant en paramètre les caractéristiques de ces fameux secteurs (voir ci-dessous). En tous cas, sur les ordinateurs pas trop préhistoriques, il semble quasi-indispensable de spécifier un paramètre bs
avec une valeur assez importante (4096
semble être assez optimal dans la plupart des cas).
lsscsi
(on y fera référence comme <peripheriqueoptique>) :isoinfo
(remplacez /dev/cdrom
si <peripheriqueoptique> est autre chose, le numéro SCSI ou le nom Wodim peuvent aussi être utilisés) :Volume id: MandrakeMove Logical block size is: 2048 Volume size is: 315674
Structure des commandes : cd dossierdedestination && dd if=<peripheriqueoptique> of=<volume id>.iso bs=<block size> count=<volume size> status=progress
<volume id>.iso
n'est qu'une suggestion pour le nom de fichier, on peut mettre ce qu'on veut (de préférence cohérent avec le contenu et parlant, et même si elle ne sert techniquement à rien, l'absence de l'extension .iso
n'est pas conseillée)
status=progress
ne fonctionne qu'à partir de la version 8.24 de GNU coreutils
(la suite d'outils de base GNU qui contient dd
). Dans le cas contraire, pour le forcer à afficher l'avancement régulièrement, on peut utiliser, à nos risques et périls, en super-utilisateur dans une autre console: watch -n 1 killall -USR1 dd
puis revenir à celle où dd
est exécuté (dans cet exemple, le paramètre 1
demande à watch
d'envoyer à dd
USR1
chaque seconde, or dd
est conçu pour faire un point sur l'avancement quand il reçoit ce signal).
Exemple : cd /media/clec1enextsanstampon/ && dd if=/dev/sr1 of=MandrakeMove.iso bs=2048 count=315674 status=progress
shasum <peripheriqueoptique>
shasum <volume id>.iso
(remplacer <volume id>.iso
par le nom du fichier généré) shasum
peut-être remplacé par md5sum
(mais c'est moins bien)