Anmerkungen

Anmerkungen

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

ddBefehl mit optionalem verwendet status=progress:

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

Oder pvfür den Fortschritt nutzen

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

Antwort1

ddBeim 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 . USBWenn ddSie Ihren USBStick in diesem Moment abziehen, ist der Inhalt auf dem USBStick 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 syncverwenden :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=fdatasyncwird am Ende der Übertragung unmittelbar vor dem Beenden ein Systemaufruf ddausgeführt (ich habe dies mit den Quellen von überprüft).fdatasync()dddd

Dadurch wird bestätigt, dass dddie 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“. syncStellt grundsätzlich sicher, dass alle Ihre Daten aus dem Cache auf den Stick geschrieben werden.

verwandte Informationen