Aus dem 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
[…] Tun Sie es nicht versäumen Sie die Synchronisierung, um sie abzuschließen, bevor Sie das USB-Laufwerk herausziehen.
Ich würde es gerne wissen
- Was macht es?
- Welche Folgen hat es, wenn es ausgelassen wird?
Notizen
dd Befehl, der mit optionalem status=progress verwendet wird :
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
Oder mit pv für den Fortschritt
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
Akzeptierte Antwort:
Der dd umgeht die Kernel-Disk-Caches nicht, wenn es auf ein Gerät schreibt, so dass ein Teil der Daten möglicherweise noch nicht auf den USB geschrieben wird kleben Sie auf dd Fertigstellung. Wenn Sie Ihren USB abziehen Stick in diesem Moment den Inhalt auf den USB Stick wäre inkonsistent. Daher könnte Ihr System sogar nicht von diesem USB booten kleben.
Sync löscht alle noch im Cache befindlichen Daten auf das Gerät.
Statt sync aufzurufen Sie könnten fdatasync verwenden dd Konvertierungsoption:
fdatasync
Daten der Ausgabedatei vor dem Beenden physisch schreiben
In Ihrem Fall wäre der Befehl:
tar -xzOf archlinux-2016-09-03-dual.iso |
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
Die conv=fdatasync macht dd effektiv fdatasync() aufrufen Systemaufruf am Ende der Übertragung kurz vor dd beendet (ich habe dies mit dd überprüft Quellen).
Dies bestätigt, dass dd würde die Caches weder umgehen noch leeren, es sei denn, Sie werden ausdrücklich dazu aufgefordert.