Notas

Notas

De la Wiki de 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

[...] HacernoFalta la sincronización para completar antes de extraer la unidad USB.

Me gustaría saber

  • ¿Qué hace?
  • ¿Qué consecuencias hay si se deja fuera?

Notas

ddcomando usado con opcional status=progress:

tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync

O usar pvpara progresar

tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync

Respuesta1

No ddomite las cachés del disco del kernel cuando escribe en un dispositivo, por lo que es posible que una parte de los datos aún no se haya escrito en el USBdispositivo una vez ddfinalizado. Si desconecta el USBdispositivo en ese momento, el contenido del USBdispositivo sería inconsistente. Por lo tanto, su sistema podría incluso no arrancar desde este USBdispositivo.

Syncvacía cualquier dato que aún esté en caché en el dispositivo.

En lugar de invocar, syncpuedes usar fdatasync ddla opción de conversión de:

sincronización de datos

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 sistema conv=fdatasyncllama ddefectivamente fdatasync()a la llamada al final de la transferencia, justo antes de ddlas salidas (verifiqué esto con ddlas fuentes).

Esto confirma que ddno omitirá ni borrará los cachés a menos que se le indique explícitamente que lo haga.

Respuesta2

Desde la página del manual de sincronización (1): "sincronización - Sincronizar escrituras en caché con almacenamiento persistente". Básicamente syncse asegura de que todos sus datos se escriban en el dispositivo desde el caché.

información relacionada