Ich verwende den folgenden Befehl, um eine bootfähige SD-Karte zu erstellen
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
Gibt es eine Möglichkeit, den Fortschritt zu verfolgen?
Ich verwende den folgenden Befehl, um eine bootfähige SD-Karte zu erstellen
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
Gibt es eine Möglichkeit, den Fortschritt zu verfolgen?
Antworten:
Dieselben Informationen, die in der Antwort von klanomath jede Sekunde angezeigt werden, können mit Ihrem Befehl angezeigt werden. Sie müssen nur ein controlTZeichen über die Tastatur eingeben, während der dd
Befehl ausgeführt wird.
Durch Drücken des controlTZeichens senden Sie dasselbe SIGINFO
Signal an den dd
Befehl, den der Befehl pkill -INFO -x dd
sendet.
Ab Coreutils 8.24 hat dd Statusoptionen hinzugefügt. Installieren Sie coreutils mit Homebrew, um dd zu aktualisieren.
brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress
> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s
dd
selbst bietet keinen Fortschrittsbalken. Sie können den Fortschritt des dd-Kopiervorgangs abschätzen, indem Sie den Befehl pkill -INFO hinzufügen .
Beispiel:
dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done
Ergebnis:
[1] 37691
0+0 records in
0+0 records out
0 bytes transferred in 0.028923 secs (0 bytes/sec)
275+0 records in
275+0 records out
18454937600 bytes transferred in 1.029698 secs (17922667819 bytes/sec)
553+0 records in
553+0 records out
37111201792 bytes transferred in 2.048291 secs (18118129881 bytes/sec)
829+0 records in
829+0 records out
55633248256 bytes transferred in 3.068911 secs (18128009214 bytes/sec)
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
[1]+ Done dd if=/dev/zero of=/dev/null bs=64m count=1000
Das sind satte 18,1 GB / s.
Installieren Sie zunächst Homebrew Package Manager . Dann müssen Sie pv
und dialog
mit diesem Befehl installieren :
brew install pv dialog
Sie können dann diesen Befehl ausführen, um eine Fortschrittsanzeige mit dem folgenden Befehl zu erhalten:
dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m
Achten Sie jedoch darauf, disk.img
den Pfad zum Image und diskX
die Festplattenkennung Ihrer SD-Karte anzugeben. Wenn Sie etwas grafischeres möchten, können Sie dies versuchen:
(dd if=disk.img bs=1m | pv -n disk.img | dd of=/dev/diskX bs=1m conv=notrunc,noerror) 2>&1 | dialog --gauge "Writing image to SD card..." 10 70 0
Sie können Control+ drücken, twährend der dd
Befehl ausgeführt wird, oder für eine schöne Fortschrittsanzeige pv
(Pipe Viewer) über Homebrew installieren :
brew install pv
und dann ausführen:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
oder (in diesem Beispiel 16 GB bei bekannter Bildgröße):
dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2
Beispielausgabe 2:
(übertragene Daten, verstrichene Zeit, Geschwindigkeit, Fortschrittsbalken und geschätzte Zeit):
1.61GiB 0:12:19 [2.82MiB/s] [===> ] 10% ETA 1:50:25
Das ist einfach! Führen Sie für macOS High Sierra und niedriger einfach eine while-Schleife aus, und die Schleife wird ausgeführt, bis sie abgeschlossen ist. Stellen Sie einfach sicher, dass Sie den folgenden Code in einem anderen Fenster ausführen:
Der folgende Code funktioniert sofort, wenn Sie eine Firmware starten oder das Betriebssystem vollständig nutzen
while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done
^ Um die Maschine ohne die Verwendung von „Homebrew“ oder Tools, die in Standard-Mac OS X nicht verfügbar sind, wach zu halten (koffeinfrei), da für die Installation von Homebrew das Internet und ein tatsächliches Betriebssystem erforderlich sind.
ANMERKUNG: In den obigen Schritten müssen Sie die PID durch Ihre Prozess-ID ersetzen. Der Fortschritt wird ständig angezeigt
$(...)
? Ich weiß, was sie im Allgemeinen tun. Ich frage mich nur, warum Sie sie hier verwenden.