मैं dd की प्रगति को कैसे ट्रैक कर सकता हूँ


27

मैं बूट करने योग्य SD कार्ड बनाने के लिए निम्न कमांड का उपयोग कर रहा हूं

sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2

क्या प्रगति को ट्रैक करने का एक तरीका है?


जवाबों:


36

क्लानोमैथ के उत्तर द्वारा प्रत्येक सेकंड में प्रदर्शित की गई समान जानकारी, आपकी कमांड का उपयोग करके प्रदर्शित की जा सकती है। आपको बस एक दर्ज करने की आवश्यकता है नियंत्रण टी जबकि कीबोर्ड से चरित्र dd कमांड निष्पादित कर रहा है।

दबाकर नियंत्रण टी चरित्र, आप वही भेज रहे हैं SIGINFO को संकेत dd कमान कि कमान pkill -INFO -x dd भेजता है।


यह अच्छा है, ईजीएयर आपको बहुत बहुत धन्यवाद
SeanClt

13

8.24 कोर के रूप में, dd ने एक स्थिति विकल्प जोड़ा। Dd को अपडेट करने के लिए Homebrew के साथ कोरयूटिल्स स्थापित करें।

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    

1
Coreutils के बारे में नहीं पता था, बहुत आसान है।
SteveLambert

1
यद्यपि यह काम करता है, आप उपयोग करने की गति में वृद्धि को कम करते हैं रॉ डिस्क
eyoung100

8

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 से होता है।


उस कमांड पर आपके द्वारा चलाए गए मशीन के हार्डवेयर स्पेक्स क्या हैं?
user3439894

@ user3439894 3.5 GHz i7 iMac। क्यूं कर?
klanomath

सिर्फ बाइट्स / सेकंड आउटपुट के कारण उत्सुक था, जो वास्तव में 16.8 जीबी / एस (गोल-अप) है क्योंकि वे आधार 2 हैं, बेस 10 गणना नहीं।
user3439894

3

सबसे पहले, स्थापित करें 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 अपने एसडी कार्ड डिस्क पहचानकर्ता के साथ। यदि आप कुछ अधिक चित्रमय चाहते हैं, तो आप यह कोशिश कर सकते हैं:

(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

स्रोत: https://askubuntu.com/a/516724/765767


2

आप दबा सकते हैं नियंत्रण + टी जबकि dd कमांड चल रहा है या आप स्थापित कर सकते हैं एक अच्छी प्रगति पट्टी के लिए pv (पाइप दर्शक) होमब्रे के माध्यम से:

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

2

वह आसान है! MacOS हाई सिएरा और नीचे के लिए, बस थोड़ी देर लूप चलाएं और यह समाप्त होने तक चलेगा। बस एक और विंडो में नीचे दिए गए कोड को करना सुनिश्चित करें:

नीचे दिए गए कोड एक फर्मवेयर बूट में या पूर्ण विकसित ओएस के दौरान बॉक्स से बाहर काम करेंगे

while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done

^ "होमब्रेव" के उपयोग के बिना मशीन को जागृत (कैफीनयुक्त) रखने के लिए या होमब्रेव के बाद से मानक मैक ओएस एक्स में उपलब्ध उपकरण नहीं हैं, इसे स्थापित करने के लिए इंटरनेट और वास्तविक ओएस की आवश्यकता होती है।

ध्यान दें: उपरोक्त आपको अपनी प्रक्रिया आईडी के साथ पीआईडी ​​को प्रतिस्थापित करने की आवश्यकता है और यह लगातार प्रगति को दिखाएगा


मैंने मशीन को जागृत रखने के लिए दूर पाया ताकि आप सोते हुए वापस न आएं और इसे लगातार जागना पड़े।
Don-Pierre Halfaway

उपरोक्त स्क्रिप्ट आपको तारीख बताती है, आपको इसकी प्रतिलिपि देने की स्थिति बताती है और हर 10 सेकंड में इसे जगाती है
Don-Pierre Halfaway

यह मैक पर टर्मिनल के लिए सबसे अच्छा उपयोग किया जाता है जब आप पूर्ण झटका ऑपरेटिंग सिस्टम में नहीं होते हैं। लेकिन फर्मवेयर / बायोस के भीतर। निश्चित रूप से याद करने के लिए एक समाधान
Don-Pierre Halfaway

का उद्देश्य क्या है $(...)? मुझे पता है कि वे सामान्य रूप से क्या करते हैं, मुझे आश्चर्य है कि आप उन्हें यहां क्यों इस्तेमाल कर रहे हैं?
nohillside

रिक्त स्थान से बचने के लिए और कमांड को एक पंक्ति में चलाने का कारण। मुझे यकीन है कि मैं "(" और ") को दोगुना कर सकता हूं, लेकिन मैं चाहता था कि लोग एक आम आदमी के दृष्टिकोण में उपलब्ध विकल्पों को देखें
Don-Pierre Halfaway
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.