ฉันใช้คำสั่งต่อไปนี้เพื่อสร้างการ์ด SD ที่บูตได้
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
มีวิธีในการติดตามความคืบหน้าหรือไม่?
ฉันใช้คำสั่งต่อไปนี้เพื่อสร้างการ์ด SD ที่บูตได้
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
มีวิธีในการติดตามความคืบหน้าหรือไม่?
คำตอบ:
ข้อมูลเดียวกันที่แสดงทุกวินาทีโดยคำตอบของ klanomath สามารถแสดงโดยใช้คำสั่งของคุณ คุณเพียงแค่ต้องป้อนcontrolTอักขระจากแป้นพิมพ์ในขณะที่dd
คำสั่งดำเนินการ
โดยการกดcontrolTตัวอักษรคุณกำลังส่งSIGINFO
สัญญาณเดียวกันกับdd
คำสั่งที่คำสั่งpkill -INFO -x dd
ส่ง
ในฐานะของ coreutils 8.24, dd เพิ่มตัวเลือกสถานะ ติดตั้ง coreutils ด้วย Homebrew เพื่ออัพเดท dd
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
ตัวเองไม่ได้ให้แถบความคืบหน้า คุณสามารถประเมินความคืบหน้าของกระบวนการคัดลอก dd ได้โดยเพิ่มคำสั่งpkill -INFO
ตัวอย่าง:
dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done
ผล:
[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
ซึ่งแปลว่ามหันต์ 18.1 GB / s
แรกของทั้งหมดที่ติดตั้งHomebrew แพคเกจผู้จัดการ จากนั้นคุณต้องติดตั้งpv
และdialog
ใช้คำสั่งนี้:
brew install pv dialog
จากนั้นคุณสามารถเรียกใช้คำสั่งนี้เพื่อรับแถบความคืบหน้าด้วยคำสั่ง:
dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m
แต่ให้แทนที่disk.img
ด้วยพา ธ ไปยังรูปภาพและdiskX
ด้วยตัวระบุดิสก์ของการ์ด SD ของคุณ หากคุณต้องการกราฟิกที่มากกว่านี้คุณสามารถลองทำสิ่งนี้:
(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
คุณสามารถกดControl+ tในขณะที่dd
คำสั่งกำลังทำงานหรือแถบความคืบหน้าดีที่คุณสามารถติดตั้งpv
(ไปป์) ผ่าน Homebrew:
brew install pv
จากนั้นดำเนินการ:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
หรือ (รู้ขนาดของภาพ, 16GB ในตัวอย่างนี้):
dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2
ตัวอย่างผลลัพธ์ 2:
(การถ่ายโอนข้อมูลเวลาที่ผ่านไปความเร็วแถบความคืบหน้าและเวลาโดยประมาณ):
1.61GiB 0:12:19 [2.82MiB/s] [===> ] 10% ETA 1:50:25
นั่นง่ายมาก! สำหรับ macOS High Sierra และต่ำกว่าให้เรียกใช้ while loop และมันจะทำงานจนกว่าจะเสร็จสิ้น เพียงให้แน่ใจว่าได้ทำรหัสด้านล่างในหน้าต่างอื่น:
รหัสด้านล่างจะทำงานนอกกรอบในขณะที่บูตเฟิร์มแวร์หรือภายในระบบปฏิบัติการเต็มเป่า
while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done
^ เพื่อให้เครื่องตื่นตัว (คาเฟอีน) โดยไม่ต้องใช้“ homebrew” หรือเครื่องมือที่ไม่มีใน Mac OS X มาตรฐานเนื่องจาก homebrew ต้องใช้อินเทอร์เน็ตและระบบปฏิบัติการจริงเพื่อติดตั้ง
หมายเหตุ:ข้างต้นต้องการให้คุณเปลี่ยน PID ด้วย ID กระบวนการของคุณและมันจะแสดงความคืบหน้าอย่างต่อเนื่อง
$(...)
คืออะไร? ฉันรู้ว่าสิ่งที่พวกเขาทำโดยทั่วไปฉันแค่สงสัยว่าทำไมคุณใช้พวกเขาที่นี่?