Desde Arch Linux Wiki:https://wiki.archlinux.org/index.php/USB_flash_installation_media
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
[…] no pierda la sincronización para completar antes de extraer la unidad USB.
me gustaria saber
- ¿Qué hace?
- ¿Qué consecuencias hay si se deja de lado?
Notas
dd comando usado con status=progress opcional :
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
O usando pv para el progreso
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
Respuesta aceptada:
El dd no pasa por alto las memorias caché del disco del kernel cuando escribe en un dispositivo, por lo que es posible que parte de los datos aún no se hayan escrito en el USB adherirse a dd terminación. Si desenchufas tu USB pegar en ese momento, el contenido en el USB palo sería inconsistente. Por lo tanto, su sistema podría incluso fallar al arrancar desde este USB palo.
Sync vacía cualquier dato aún en caché al dispositivo.
En lugar de invocar sync podrías usar fdatasync dd opción de conversión:
fdatasync
escribir físicamente los datos del archivo de salida antes de terminar
En tu caso, el comando sería:
tar -xzOf archlinux-2016-09-03-dual.iso |
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
El conv=fdatasync hace dd llamar efectivamente a fdatasync() llamada al sistema al final de la transferencia justo antes de dd salidas (verifiqué esto con dd fuentes).
Esto confirma que dd no omitiría ni vaciaría los cachés a menos que se le indique explícitamente que lo haga.