Je copie quelques données de données/DVD sur des fichiers ISO pour les utiliser plus tard sans le besoin d'eux dans le lecteur.
Je regarde sur le net pour les procédures et j'ai beaucoup trouvé:
Utilisation de cat
pour copier un support: http://www.yolinux.com/tatudials/linuxtorialcdburn.html
cat /dev/sr0 > image.iso
Utilisation de dd
pour le faire (apparemment le plus largement utilisé): http://www.linuxjournal.com/content/archiving-cds-iso-commandline
dd if=/dev/cdrom bs=blocksize count=count of=/path/to/isoimage.iso
Utilisation de juste pv
pour accomplir ceci: voir man pv
Pour plus d'informations, bien que voici un extrait de celui-ci:
Taking an image of a disk, skipping errors:
pv -EE /dev/sda > disk-image.img
Writing an image back to a disk:
pv disk-image.img > /dev/sda
Zeroing a disk:
pv < /dev/zero > /dev/sda
Je ne sais pas si tous devraient être équivalents, même si j'ai testé certains d'entre eux (en utilisant le md5sum
outil) et, au moins, dd
et pv
sont pas équivalent. Ici se trouve le md5sum
du lecteur et des fichiers générés à l'aide de chaque procédure:
mD5 de la procédure DD: 71b676875b0194495060b38f35237c3c
mD5 de PV Procédure: f3524d81fdeeef962b01e1d86e6acc04
Edit: Cette sortie était d'un autre CD que la sortie donnée. En fait, j'ai réalisé qu'il y a des faits intéressants que je fournis comme une réponse.
En fait, la taille de chaque fichier est différente comparer les uns aux autres.
Ainsi, y a-t-il une meilleure procédure pour copier un CD/DVD ou dois-je simplement utiliser les commandes de manière incorrecte?
Voici plus d'informations sur le cas de test que j'utilise pour vérifier les procédures que j'ai trouvées jusqu'à présent:
isoinfo -d i /dev/sr0
Sortie: https://gist.github.com/jbfwp286/7f50f069DC5D1593BA62#FILE-ISOINFO-OUTPUT-19-AUG-2015
dd
Pour copier le support, avec les checksums de sortie et les informations de fichier Sortie: https://gist.github.com/jbfwp286/75decda0a67605590d32#file-dd-Output-with-md5-and-sha256 -19-août 2015
pv
Pour copier le support, avec les checksums de sortie et les informations de fichier de fichier: https://gist.github.com/jbfwp286/700a13fe0a2f06ce5e7a#file-pv-Output-with-md5-and-sha256 -19-août 2015
Toute aide serait appréciée!
Toutes les commandes suivantes sont équivalentes. Ils ont lu les octets du CD /dev/sr0
et écrivez-les à un fichier appelé image.iso
.
cat /dev/sr0 >image.iso
cat </dev/sr0 >image.iso
tee </dev/sr0 >image.iso
dd </dev/sr0 >image.iso
dd if=/dev/cdrom of=image.iso
pv </dev/sr0 >image.iso
cp /dev/sr0 image.iso
tail -c +1 /dev/sr0 >image.iso
Pourquoi utiliseriez-vous un sur l'autre?
Simplicité. Par exemple, si vous savez déjà cat
ou cp
, vous n'avez pas besoin d'apprendre une autre commande.
Robustesse. Celui-ci est un peu une variante de simplicité. Combien de risque y a-t-il de la modification de la commande va changer ce qu'il fait? Voyons quelques exemples:
set -o noclobber
devrait s'assurer que vous ne écrasez rien; Cependant, vous pouvez écraser un appareil si vous écrivez accidentellement >/dev/sda
(pour un CD, qui est en lecture seule, il n'y a pas de risque, bien sûr). Cela parle en faveur de cat /dev/sr0 >image.iso
(difficile de se tromper de manière endommagée) sur des alternatives telles que tee </dev/sr0 >image.iso
(Si vous inverser les redirections ou oubliez l'entrée une, tee
va écrire sur /dev/sr0
).cat
: vous pourriez accidentellement concaténer deux fichiers. Qui laisse les données facilement récupérables.dd
: i
et o
sont fermés sur le clavier et un peu inhabituel. Il n'y a pas d'équivalent de noclobber
, of=
va heureusement écraser n'importe quoi. La syntaxe de redirection est moins sujette d'erreur.cp
: Si vous échangez accidentellement la source et la cible, le périphérique sera écrasé (à nouveau, en supposant un périphérique non en lecture seule). Si cp
est invoqué avec certaines options telles que -R
ou -a
Quelles personnes ajoutent à travers un alias, il copiera le nœud de périphérique plutôt que le contenu du périphérique.Fonctionnalité supplémentaire. Le seul outil ici qui a une fonctionnalité supplémentaire utile est pv
, avec ses puissantes options de rapport.
[.____] Mais ici, vous pouvez vérifier combien de temps a été copié en regardant la taille du fichier de sortie quand même.
Performance. Ceci est un processus d'I/O-liés; L'influence principale dans la performance est la taille de la mémoire tampon: l'outil lit un morceau de la source, écrit le morceau à la destination, répète. Si le morceau est trop petit, l'ordinateur dépense son temps de commutation entre tâches. Si le morceau est trop grand, les opérations de lecture et d'écriture ne peuvent pas être paralléléées. La taille optimale des morceaux sur un PC est typiquement autour de quelques mégaoctets, mais cela est évidemment très dépendant du système d'exploitation, sur le matériel et sur ce que l'ordinateur fait d'autre. J'ai fait Benchmarks pour disque dur aux copies de disque dur il y a un moment, sous Linux, qui a montré que pour des copies dans le même disque, dd
avec une grande taille de tampon a l'avantage, mais pour des copies croisées, cat
a gagné sur n'importe quelle taille de tampon dd
.
Il y a quelques raisons pour lesquelles vous trouverez dd
mentionné si souvent. Outre la performance, ils ne sont pas particulièrement de bonnes raisons.
cat
(c'était avec plus d'outils axés sur la ligne telles que head
, sed
, etc.), mais les gens avaient tendance à Pour l'éviter sur des données binaires en raison de son association avec le traitement du texte. Ce n'est pas un problème sur des systèmes modernes tels que Linux, OSX, * BSD, ou tout ce qui est conforme à POSIX.dd
est un "niveau inférieur" que d'autres outils tels que cat
et accès directement aux appareils. Ceci est complètement faux: dd
et cat
et tee
et les autres ont tous des octets de leur entrée et écrivent les octets à leur sortie. La vraie magie est en /dev/sr0
.dd
a une syntaxe de ligne de commande inhabituelle, expliquant ainsi comment cela fonctionne donne davantage la possibilité de briller en expliquant quelque chose qui n'écrit que cat /dev/sr0
.dd
avec une grande taille de tampon peut avoir une meilleure performance, mais ce n'est pas toujours le cas (voir quelques points de repère sur Linux ).Un risque majeur avec dd
est celui-ci (((, il peut sauter silencieusement certaines données . Je pense que dd
est en sécurité tant que skip
ou count
ne sont pas passés, mais je ne sais pas si c'est le cas sur toutes les plateformes. Mais cela n'a aucun avantage sauf pour la performance.
Donc, il suffit d'utiliser pv
si vous voulez son rapport de progression fantaisie, ou cat
si vous ne le faites pas.
Il y a des faits intéressants dans ce cas, spécialement-ci:
dd
et pv
) Les checksums sont - identique.dd
, ouvrez le lecteur et fermez-la avec le même disque, puis terminez le test avec la procédure pv
. Cela, j'ai eu des copies identiques avec les deux procédures.dd
w/o le count=X
Le paramètre s'arrête correctement à la fin du disque et donne la même image de disque que possible avec pv
(les checksums sont identiques), il est donc préférable d'utiliser des paramètres dd
w/o ou juste pv
.Donc, pour l'instant, il semble que pv
et dd
peut accomplir une copie de CD/DVD avec les mêmes résultats.