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.