Pages : 1
#1 Le 10/03/2018, à 20:25
- patat-art
comprendre un peu mieux dd
Bonjour !
J'ai une petite question concernant la commande dd : Il y a 3 mois, j'ai cloné un disque dur d'1 To, sans option hormis if=/dev/sda et of=/dev/sdb, ce qui a pris 14h30.
Et je viens de cloner le même disque source vers le même disque cible, avec les otions suivantes:
dd if=/dev/sda of=/dev/sdb bs=81b count=<équivalent à 800 Go au lieu d'1 To>
Apriori, on pourrait se dire qu'avec 200 Go de moins à lire et copier, et un bs plus élevé, ça devrait aller plus vite. Et ça a pris pas loin de 21h.
Comment ça se fait ? Aurais-je mal compris l'interet de ces options ?
Dernière modification par patat-art (Le 10/03/2018, à 20:27)
Hors ligne
#2 Le 10/03/2018, à 20:40
- Nasman
Re : comprendre un peu mieux dd
Je pense que c'est le 81b qui correspond à 81*512 octets qui ne correspond pas à grand chose.
Essaie avec bs=4096
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#3 Le 10/03/2018, à 22:07
- MicP
Re : comprendre un peu mieux dd
Bonsoir
… c'est le 81b qui correspond à 81*512 octets …
C'est pire que ça : bs=81b <=> 81 octets
Par défaut, si on ne spécifie rien, c'est 512 octets.
La valeur optimale est obtenue par des essais successifs,
bs=4M (4Mio) me semble être un bon compromis.
=======
Et bien sûr, surtout surtout surtout surtout surtout surtout surtout
relire plusieurs fois la ligne de commande avant d'appuyer sur la touche Entrée
pour être sûr et certain de ne pas s'être trompé de cible (of=…)
sinon, on risquerait d'écraser irrémédiablement les données d'un autre disque.
=======
N'oublie pas que même si le prompt revient à la fin d'exécution de la commande,
cela ne veut pas toujours dire que les tampons d'entrée/sortie on tous été écrits sur le disque.
C'est pourquoi je recommande, surtout pour une aussi grosse quantité de données,
d'utiliser juste après la commande sync pour vider ces tampons
et donc de s'assurer que tout a bien été transféré.
dd if=/dev/sda of=/dev/sdb bs=4M && sync
Pas la peine de spécifier le paramètre count=
car si tu compte copier l'intégralité du disque,
la commande s'arrêtera dès qu'elle n'aura plus rien à lire.
=======
Pour que la copie puisse être plus rapidement faîte,
il vaut mieux connecter les disques source et cible
sur les ports SATA d'une machine plutôt que par USB
Dernière modification par MicP (Le 10/03/2018, à 23:48)
Hors ligne
#4 Le 10/03/2018, à 22:25
- pingouinux
Re : comprendre un peu mieux dd
Bonsoir,
C'est pire que ça : bs=81b <=> 81 octets
Non, c'est bien 81*512, comme indiqué par Nasman en #2.
Voici un extrait de man dd
N and BYTES may be followed by the following multiplicative suffixes: c
=1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.
Hors ligne
#5 Le 10/03/2018, à 23:48
- MicP
Re : comprendre un peu mieux dd
Tu as raison, je corrige donc mon précédent message.
Je suis allé un peu trop vite, et je m'étais arrêté à ces lignes de la page man
… bs=OCTETS lire et écrire jusqu'à OCTETS octets à la fois …
Il fallait que je lise aussi plus loin.
Dernière modification par MicP (Le 10/03/2018, à 23:48)
Hors ligne