Aus dem Arch Linux Wiki:https://wiki.archlinux.org/index.php/USB_Flash_Installationsmedium
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
[...] TunnichtVerpassen Sie nicht die Fertigstellung der Synchronisierung, bevor Sie das USB-Laufwerk herausziehen.
ich würde gerne wissen
- Was tut es?
- Welche Konsequenzen drohen bei Weglassung?
Anmerkungen
dd
Befehl mit optionalem verwendet status=progress
:
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
Oder pv
für den Fortschritt nutzen
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
Antwort1
dd
Beim Schreiben auf ein Gerät werden die Kernel-Festplatten-Caches nicht umgangen, sodass ein Teil der Daten nach Abschluss des Vorgangs möglicherweise noch nicht auf den Stick geschrieben wurde . USB
Wenn dd
Sie Ihren USB
Stick in diesem Moment abziehen, ist der Inhalt auf dem USB
Stick inkonsistent. Daher kann es sein, dass Ihr System nicht einmal von diesem Stick bootet USB
.
Sync
überträgt alle noch im Cache befindlichen Daten auf das Gerät.
Anstelle des Aufrufs können Sie die Konvertierungsoption von sync
verwenden :fdatasync
dd
fdatasync
Schreiben Sie die Daten der Ausgabedatei physisch, bevor Sie den Vorgang beenden
In Ihrem Fall würde der Befehl lauten:
tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
Dadurch conv=fdatasync
wird am Ende der Übertragung unmittelbar vor dem Beenden ein Systemaufruf dd
ausgeführt (ich habe dies mit den Quellen von überprüft).fdatasync()
dd
dd
Dadurch wird bestätigt, dass dd
die Caches nicht umgangen oder geleert werden, sofern keine explizite Anweisung hierzu vorliegt.
Antwort2
Aus der Manualpage sync(1): „sync - Zwischengespeicherte Schreibvorgänge mit permanentem Speicher synchronisieren“. sync
Stellt grundsätzlich sicher, dass alle Ihre Daten aus dem Cache auf den Stick geschrieben werden.