Quelle est la différence entre les options directes et fsync de dd?

4

Je voudrais copier une image sur une clé USB. Comme j'aimerais obtenir de "vraies" vitesses et ne pas attendre longtemps que l'appareil se synchronise après la copie de l'image, j'aimerais savoir quelles options utiliser pour cela.

Niklasfi
la source

Réponses:

2

La lecture du code source montre que vous devriez également poser des questions sur l' nocacheoption. L' directoption devrait vous donner ce que vous voulez, mais cela dépend aussi de la version avec laquelle ddvous jouez. Faire une copie volumineuse d’un système Ubuntu 11.04 m’a montré des temps encore plus lents (= plus près de la réalité?) Avec l’ dsyncoption utilise une entrée / sortie synchronisée pour les données, ce qui risque de faire perdre l’agrégation que nous offrent les contrôleurs de disque modernes. Pour savoir "exactement" ce qui se passe, vous devrez creuser dans le code source du noyau que vous utilisez, mais même dans ce cas, vous êtes à la merci de la carte d'interface du lecteur, qui fait son propre tampon.

Andrew Beals
la source
Vous n'êtes pas à la merci du lecteur; lorsque fsync () ou direct write () est terminé, les données sont sur le plateau.
Psusi
psusi non, certains disques mentent
behrooz
4

L'option fsync efface les données à la fin de la copie. L'option dsync efface les données après chaque bloc. L'option directe aura des résultats similaires à ceux de dsync, mais sans polluer le cache du système de fichiers avec les données. Ceci est utile pour mettre en cache le reste du système et permet d’économiser un peu de temps système.

Dsync ou direct donnera un débit inférieur, mais cela peut être compensé principalement en utilisant une taille de bloc importante, telle que 1 Mo ou plus.

psusi
la source
Que se passe-t-il quand oflag = direct accélère les écritures? J'ai une longue question à ce sujet sur serverfault.com/questions/751752/…
Michael Graff