GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué es tan importante la sincronización al hacer una memoria USB de arranque de Linux?

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.


Linux
  1. Por qué me quedo con xterm

  2. Cómo crear un USB de arranque de Linux desde la línea de comandos de Linux

  3. Hacer una memoria USB de arranque de PC usando un archivo .iso en MAC

  4. Cómo poner una ISO de Linux en una memoria USB y hacerla arrancable en una Mac

  5. Cómo crear una memoria USB de arranque de Linux en Windows

Cree una unidad USB de arranque con USBImager en Linux

Cree un USB de arranque persistente usando Ventoy en Linux

Cómo crear una memoria USB de arranque de Ubuntu en Linux

Cómo crear un USB de arranque de Windows 10 en Linux

¿Cómo crear un USB Kali Linux de arranque?

Cómo crear un USB de arranque de Windows en Linux