यह कैसे जांचें कि आईएसओ त्रुटियों के बिना मेरे यूएसबी स्टिक को लिखा गया था?


11

मैंने डेबियन विकी में अपने डेबियन आईएसओ को लिखने के लिए इन डेबियनएईपीसी हॉव्टो इंस्टाउंसिंगस्टैंड्रिंड इनस्टॉलर निर्देशों का पालन किया।

dd if=debian-*-netinst.iso of=/dev/sdX

उपयोग करके sha1sum, मैं अपनी डाउनलोड की गई ISO फ़ाइल के चेकसम को देख सकता हूँ। मैं USB स्टिक डिवाइस के चेकसम की जांच कैसे कर सकता हूं, यह सुनिश्चित करने के लिए कि यूएसबी स्टिक में कोई समस्या नहीं है और आईएसओ को पूरी तरह से कॉपी किया गया है?


USB यूनिवर्सल सीरियल बस है। निश्चित रूप से आपका मतलब उस बस से जुड़ी किसी तरह की डिवाइस से है (जैसे फ्लैशड्राइव, ईथरनेट या साउंड कार्ड)?
स्टीफन चेज़लस

@StephaneChazelas ने प्रश्न संपादित किया।
मैक्सक्लेपजिग

जवाबों:


18

cmpयदि सब कुछ ठीक कॉपी किया गया था, तो आप जाँच के लिए उपयोग कर सकते हैं:

$ cmp -n `stat -c '%s' debian-X-netinst.iso` debian-X-netinst.iso /dev/sdX

यह समाधान आपके /dev/sdX- के चेकसम को स्पष्ट रूप से गणना नहीं करता है, लेकिन आपको ऐसा करने की आवश्यकता नहीं है क्योंकि आपने पहले ही तुलना के स्रोत (यानी debian-X-netinst.iso) के लिए ऐसा किया है।

सिर्फ करने से dd if=/dev/sdX | sha1sumगलत मिलान वाले चेकसम की प्राप्ति हो सकती है, क्योंकि आपको अनुगामी ब्लॉक मिलते हैं ( /dev/sdXयह सबसे अधिक संभावना है कि आईएसओ-फाइल की तुलना में बड़ा)।

के माध्यम से cmp -nआप यह सुनिश्चित करते हैं कि आपकी ओर से कोई अनुगामी बाइट्स /dev/sdXकी तुलना नहीं की गई है।

यदि आप अपने USB मास स्टोरेज डिवाइस की गुणवत्ता के बारे में अवगत हैं, जिसे आप कहते हैं sync, तो इसे अस्वीकार कर दें, इसे फिर से डालें और फिर तुलना करें - अन्यथा सभी या कुछ ब्लॉक केवल कर्नेल VM (कैश) से आ सकते हैं - जब वास्तव में बिट्स हार्डवेयर पर खराब कर रहे हैं।


1
सुनो! जब मैं ऐसा करता हूं, मुझे पहली पंक्ति में तत्काल बेमेल प्राप्त होता है। इसका क्या कारण हो सकता है?
सर्स्पा

3

जूलियन का जवाब काम करता है लेकिन ऐसा करने का एक सरल और तेज़ तरीका है:

sudo head -c <image size> /dev/sdX | sha1sum

तो, एक ही पंक्ति में:head -c $(stat -c '%s' the.iso) /dev/sdc | sha1sum
जूलियन पालार्ड

3

बस का उपयोग करना ddऔर md5sum/ sha1sumपर्याप्त है, लेकिन जैसा कि पहले कहा गया था, केयरफुल हो, आपका डिवाइस आपकी फ़ाइल से समान आकार का नहीं है, इसलिए रकम अलग होगी।

यहां आप अभी भी इसे कैसे कर सकते हैं

सबसे पहले आपको फ़ाइल का आकार जानना होगा:

$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232

फिर, अपने syscalls के साथ शांत होने के लिए, आप बेहतर रूप से इसे दो की एक अच्छी शक्ति के कई के रूप में प्राप्त करते हैं 4096, जैसे कि दो HAVE का गुणन फ़ाइल के आकार को बिल्कुल प्राप्त करने के लिए, अन्य तरीकों से, आप बहुत कम जांच करेंगे या बहुत से बाइट्स, एक गलत चेकसम की उपज।

$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000

मैं खुश हूं, 4096 × 244992 = 1003487232इसलिए 4096 मेरे लिए अच्छा है, (और आपके लिए, शायद) इसलिए मैं 4096(सामान्य) के ब्लॉक आकार और एक ब्लॉक गणना का उपयोग कर सकता हूं 244992

USB कुंजी पर फ़ाइल लिखना न भूलें ...

$ dd if=debian-live-8.2.0-amd64-lxde-desktop.iso of=/dev/sd? && sync

और पता है, ज्ञात ब्लॉक आकार और ब्लॉक गणना का उपयोग करके, आप कुंजी से सटीक बाइट्स की संख्या पढ़ सकते हैं और उनकी जांच कर सकते हैं:

$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184

(हाँ md5sum, वैसे तो तेजी से होता है, sha1sumलेकिन यह स्पष्ट रूप से आपकी अड़चन नहीं है, अड़चन USB थ्रूपुट है, धन्यवाद के लिए धन्यवाद)।

या, संक्षेप में:

dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum

धन्यवाद के साथ $ dd if=/dev/sdb1 bs=4096 count=<filesize/4096> | md5sum मैं डेबियन छवि के md5sum को एक usb स्टिक पर लिख सकता हूं और इसकी तुलना डेबियन md5sums से कर सकता हूं।
पॉल रौजीक्स

0

@Kyle जोन्स जवाब के आधार पर

diff <(md5sum debian-XYZ-netinst.iso | awk '{print $1}') <(dd if=/dev/sdX | md5sum | awk '{print $1}')

आपको इसका उपयोग करना चाहिए md5sumक्योंकि यह इससे अधिक तेज़ है sha1sum(बड़ी फ़ाइल की जाँच करने पर यह समय बचाएगा)


6
आप md5sumकम से कम दो बार उपवास का मतलब है? ओपी के पास पहले sha1sumसे ही डाउनलोड साइट से है और इसकी गणना नहीं करनी है। और USB से पढ़ना sha1 / md5 गणना को सीमित करने वाला कारक होने जा रहा है।
एंथन

1
मैं प्रोसेसिंग-पावर-वार मिड-रेंज सिस्टम पर SHA-256 चेकसमिंग के साथ ZFS चला रहा हूं। स्क्रबिंग के दौरान भी (जो सभी डेटा को पढ़ता है और कताई जंग पर रहने वाले पूलों पर सभी चेकसमों को सत्यापित करता है), सीमित कारक डिस्क I / O थ्रूपुट है, सीपीयू नहीं। मुझे संदेह है कि कई USB मेमोरी स्टिक इससे बेहतर थ्रूपुट बनाएंगे, खासकर अगर यह यूएसबी 2.0 से अधिक जुड़ा हो।
बजे एक CVn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.