Depuis le wiki Arch Linux :https://wiki.archlinux.org/index.php/USB_flash_installation_media
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync[…] Ne pas manquez la synchronisation pour terminer avant de retirer la clé USB.
J'aimerais savoir
- Que fait-il ?
- Quelles sont les conséquences en cas d'omission ?
Remarques
dd commande utilisée avec l'option status=progress :
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
Ou en utilisant pv pour progresser
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
Réponse acceptée :
Le dd ne contourne pas les caches de disque du noyau lorsqu'il écrit sur un périphérique, de sorte qu'une partie des données peut ne pas encore être écrite sur le USB coller sur dd achèvement. Si vous débranchez votre USB coller à ce moment, le contenu sur la USB le bâton serait incohérent. Ainsi, votre système pourrait même ne pas démarrer à partir de cette USB bâton.
Sync vide toutes les données encore en cache sur l'appareil.
Au lieu d'appeler sync vous pouvez utiliser fdatasync dd option de conversion :
fdatasync
écrire physiquement les données du fichier de sortie avant de terminer
Dans votre cas, la commande serait :
tar -xzOf archlinux-2016-09-03-dual.iso |
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
Le conv=fdatasync fait dd appelle effectivement fdatasync() appel système en fin de transfert juste avant dd sort (j'ai vérifié cela avec dd sources).
Cela confirme que dd ne contournerait ni ne viderait les caches sauf instruction explicite de le faire.