GNU/Linux >> Linux Esercitazione >  >> Linux

Perché la sincronizzazione è così importante quando si crea una chiavetta USB avviabile Linux?

Dal Wiki di 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

[…] non manca la sincronizzazione per completare prima di estrarre l'unità USB.

Vorrei sapere

  • Cosa fa?
  • Quali conseguenze ci sono se omesso?

Note

dd comando utilizzato con status=progress opzionale :

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

O usando pv per il progresso

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

Risposta accettata:

Il dd non bypassa le cache del disco del kernel quando scrive su un dispositivo, quindi una parte dei dati potrebbe non essere ancora stata scritta sulla USB attenersi a dd completamento. Se scolleghi la tua USB incollare in quel momento il contenuto sulla USB bastone sarebbe incoerente. Pertanto, il tuo sistema potrebbe anche non avviarsi da questo USB bastone.

Sync scarica tutti i dati ancora presenti nella cache nel dispositivo.

Invece di invocare sync potresti usare fdatasync dd opzione di conversione:

fdatasync

scrivere fisicamente i dati del file di output prima di terminare

Nel tuo caso, il comando sarebbe:

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

Il conv=fdatasync rende dd chiama effettivamente fdatasync() chiamata di sistema al termine del trasferimento appena prima di dd exits (l'ho verificato con dd fonti).

Questo conferma che dd non bypasserà né svuota le cache a meno che non venga esplicitamente indicato in tal senso.


Linux
  1. Creazione di una chiavetta USB avviabile da PC utilizzando un file .iso su MAC

  2. Come inserire una ISO Linux su una chiavetta USB e renderla avviabile su un Mac

  3. Come creare una chiavetta USB avviabile Linux su Windows

  4. Linux – Perché Usb non funziona in Linux quando funziona in Uefi/bios?

  5. Linux:perché ci vuole così tanto tempo per rilevare una chiavetta USB?

Crea un'unità USB avviabile con USBImager in Linux

Crea USB avviabile persistente usando Ventoy in Linux

Come creare una chiavetta USB Ubuntu avviabile su Linux

Come creare una chiavetta USB avviabile di Windows 10 in Linux

Come creare una chiavetta USB avviabile Kali Linux?

Come creare un USB avviabile da Windows su Linux