मैं एक USB छड़ी की एक समान छवि कैसे बनाऊं?


21

मेरे पास एक usb स्टिक है जो किसी कारण से अपठनीय है। मैं भंडारण उद्देश्यों के लिए इसकी एक छवि बनाना चाहता हूं ताकि बाद की तारीख में छवि से डेटा पुनर्प्राप्त करने का प्रयास कर सकूं।

मैं एक यूएसबी स्टिक की ऐसी ही समरूप छवि बनाने के बारे में कैसे जाऊंगा?


इसका उपयोग करते समय मुझे प्राप्त होने वाली त्रुटि है dd:

oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen: 
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$ 

आप किस हेक्स संपादक का उपयोग करते हैं?
AJMansfield

जब आप /dev/sdxयूएसबी स्टिक की ओर इशारा करते हुए डिवाइस से नहीं पढ़ सकते हैं , तो एक गंभीर समस्या है, और मुझे लगता है कि सामान्य उपयोगकर्ताओं के लिए कोई उपकरण उपलब्ध नहीं हैं, यह काम करेगा। अधिक जानकारी के लिए इस लिंक को देखें, askubuntu.com/questions/144852/… ; एक बार में हार मत मानो। उन चीजों की सूची के अनुसार प्रयास करें जिन्हें काम करने के लिए पढ़ने को मिल सकता है। शायद आप USB पेनड्राइव को अलग कर सकते हैं और एक माइक्रो एसडी कार्ड पा सकते हैं, जो अभी भी @ ubfan1 (लिंक किए गए जवाब में) द्वारा टिप्पणी के अनुसार काम कर रहा है।
सूडोडस

आपके पास अपने मुद्दे को संभालने के लिए 2 विकल्प हैं: 1 आसान एक: सुडो सु चलाना और फिर रूट के रूप में अपने dd कमांड को रन करें 2 और अधिक कुशल संस्करण स्थिति और '' sudo बैश -c 'dd स्थिति = प्रगति के साथ dd = if / dev / sd * gzip> ~ / Backup-USB.img.gz '
WiKrIe

जवाबों:


39

dd यह!

प्रयोग की तरह कुछ होगा sudo dd if=/dev/sdb of=~/USB_imageजहां / dev / SDB अपनी USB ड्राइव सूची के अनुसार है sudo fdisk -lऔर ~ / USB_image जहां प्रति किया जाएगा छवि फ़ाइल (एक पथ जहां छवि फ़ाइल बनाया जाएगा) है।

किसी अन्य USB ड्राइव में छवि को पुनर्स्थापित करने के लिए बस प्रक्रिया को उल्टा करें: डिवाइस sdb पर ~ / USB_image को sudo dd if=~/USB_image of=/dev/sdbपुनर्स्थापित करेगा । बस यह सुनिश्चित करें कि नया USB ड्राइव मूल एक की तुलना में बड़ा या बड़ा है।

आप अपने द्वारा बनाई गई छवि फ़ाइल को केवल एक पथ में निर्मित कर सकते हैं, इसे पहले किसी अन्य USB ड्राइव पर पुनर्स्थापित करने की आवश्यकता नहीं है mount ~/USB_image /mnt/USB_image -o loop


क्या होगा अगर fdisk -lUSB ड्राइव नहीं देख सकता है? हालाँकि, मैं इसे डिस्क यूटिलिटी प्रोग्राम से / dev / sdd के रूप में देख सकता हूं, लेकिन जब मैं आपकी कमांड का उपयोग करने का प्रयास करता हूं, तो यह विफल होता है।
१२:५२ पर जोशीरोवेन

किस गलती से फेल?
ब्रूनो परेरा

मूल प्रश्न में त्रुटि जोड़ा गया क्योंकि यह एक टिप्पणी के लिए बहुत अधिक था।

1
अगर fdisk doesnt डिवाइस को प्रदर्शित करता है, तो डिवाइस को प्लग इन करने पर क्या हो रहा है यह देखने के लिए dmesg का उपयोग करें। dmesg कर्नेल इंटरैक्शन की एक सूची है, इसलिए यदि आपके कंप्यूटर पर हार्डवेयर कुछ करता है तो मूल रूप से dgg में इसके बारे में एक संदेश है।
j0h

2
@ उबंटू के status='progress'साथ उपयोग करें dd, या अपने ddआदेश के पीआईडी ​​का पता लगाएं और इसे SIGUSR1संकेत भेजें । हालांकि अन्य कार्यान्वयन के बारे में निश्चित नहीं है।
सर्गी कोलोडियाज़नी

7

का उपयोग करें ddrescue। यह त्रुटियों के बाद जारी रहेगा, जहां ddबस विफल हो जाएगा।

इसके अतिरिक्त, ddrescueरेपो में है। 13.04 पर, मैंने sudo apt-get install gddrescue स्थापित करने के लिए टाइप किया।

डिवाइस स्थान का उपयोग sudo fdisk -lया dmesgपता लगाने के लिए जैसे: /dev/sdbफिर, एक कमांड चलाएं जैसे कि

ddrescue /dev/sdb /home/user/desktop/bkp.img

कई विकल्प हैं ddrescue, और आप manपृष्ठों को पढ़ना चाह सकते हैं । इसके अलावा मुझे यकीन नहीं है कि आपका हार्डवेयर क्यों विफल हो रहा है, और डंपिंग dd। एक बुरा ब्लॉक ddछोड़ सकता है , लेकिन इतना रुक-रुक कर बिजली की विफलता हो सकती है। dmesgआपको हार्डवेयर विफलताओं के बारे में अधिक बता सकता है जो आप अनुभव कर रहे हैं।

उपकरण सुनिश्चित करें कि डिवाइस माउंट नहीं है! जब आप डेटा रिकवरी, इमेजिंग, आदि करने की कोशिश करते हैं, तो यह समस्या हो सकती है।

डेटा रिकवरी में बहुत सी चीजें गलत हो सकती हैं। समस्या होने पर वापस पोस्ट करें। testdiskएक बार जब आप एक छवि है डेटा वसूली करने के लिए एक अच्छी उपयोगिता है।

स्पष्टता के लिए, क्या यह एक usb हार्ड ड्राइव या usb (सॉलिड स्टेट मेमोरी) डिवाइस है?

I / O त्रुटियां आमतौर पर फाइल-सिस्टम के भ्रष्टाचारों के बजाय हार्डवेयर की खराबी का संकेत हैं।

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


यूएसबी स्टिक, वहाँ का विश्लेषण करने के लिए कोई स्मार्ट डेटा है ... मैं भी लगता है कि आप उपयोग करने की आवश्यकता sudoके लिए ddrescue, * जहां dd बस असफल हो जायेगी * है के बाद से आप कॉन्फ़िगर कर सकते वास्तव में सच नहीं की तरह ddपढ़ा त्रुटियों को अनदेखा करने के लिए। testdiskभयानक है जब आप खोए हुए डेटा के क्षेत्रों को पढ़ सकते हैं , न कि जब ड्राइव मृत हो।
ब्रूनो परेरा

# जड़ के लिए प्रतीक है, इसलिए, sudo की आवश्यकता नहीं है। यदि यह $ थे तो हाँ।
jhh

मैं यह भी नोट करना चाहता हूं, कि अगर ddresoscope, या यहां तक ​​कि dd विफल हो जाता है, लेकिन आप एक छवि उत्पन्न करने में सक्षम हैं, तो आप अभी भी उस छवि पर डेटा पुनर्प्राप्ति करने का प्रयास कर सकते हैं।
jhh

मैं के उपयोग का सुझाव देते हैं gddrescueके खिलाफ ddrescueके बाद से gddrescueनए और अधिक काम करने की है कि ऐसा करने में सक्षम है ddrescueहै।
ब्रूनो परेरा

1
मैं भी आदमी को नहीं जानता, मेरी पोस्ट पढ़ें। gddrescue पैकेज है, और ddresoscope कमांड है।
jhh

2

आप उपयोग करके USB स्टिक (या किसी अन्य डिवाइस) की एक छवि बना सकते हैं dd

उदाहरण के लिए

dd if=<usb device> of=usb.img

आप ddकमांड को ऑप्टिमाइज़ करने के लिए अधिक पैरामीटर जोड़ सकते हैं (उदाहरण के लिए bs)।


2

dd, जैसा कि पिछले पोस्टर द्वारा बताया गया है, जाने का मूल तरीका है। आप इसे त्रुटियों पर जारी रखना चाहेंगे, हालाँकि, आप इसे इसके साथ शुरू करेंगे:

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync 

महत्वपूर्ण हिस्सा अंतिम एक है: conv=syncउन सभी ब्लॉकों को पैड करने के लिए dd को बताता है जो आंशिक रूप से केवल शून्य के साथ पढ़ सकते हैं, इसलिए परिणामी छवि में कुछ शून्य बहुत अधिक हो सकते हैं, लेकिन संरचनात्मक रूप से परतदार डिस्क के बराबर होगा, यह मेरी त्रुटियों को घटाता है। conv=noerror अगले ब्लॉक के साथ जारी रखने के लिए dd को बताते हुए, उन त्रुटियों को ध्यान में रखा। इस बिंदु पर, ब्लॉक आकार मायने रखता है, अगर यह त्रुटि को छोड़ने के लिए आवश्यक से बड़ा है, तो पठनीय डेटा यहां खो जाएगा। Blocksize हमेशा दो का कारक होना चाहिए - यदि संदेह है, 512kतो चाल चलनी चाहिए ।

तब मैं सुझाव दूंगा:

  • उस छवि की एक अनमोल कॉपी को कहीं सुरक्षित रखें
  • डिस्क छवि की एक प्रतिलिपि fsck
  • डिस्क छवि माउंट
  • अपनी फ़ाइलों की जाँच करें - वे अब परेशानी के बिना पढ़ने योग्य हैं, लेकिन कुछ गायब हो सकते हैं या काटे जा सकते हैं
  • यदि उपकरण स्वयं नहीं पढ़ा जा सकता है, तो आप भाग्य से बाहर हो सकते हैं। इसके अलावा, अगर डिवाइस में कुछ मालिकाना सॉफ़्टवेयर शामिल हैं, तो पहले ब्लॉक में एक्सेस करने पर रीड एरर वापस करने के लिए सेटअप हो सकता है।

(2010 में वापस लिखे गए लेख से आंशिक रूप से खुद को उद्धृत करते हुए)

आप देशी रहने के लिए की जरूरत नहीं है, तो आप हमेशा इस तरह के ddrescue (पैकेज के रूप में उपकरण है कि प्रक्रिया कुछ हद तक कम करने के लिए कोशिश कर रहे हैं, की कोशिश कर सकते gddrescue) और उसके साथी ddrescueview( sourceforge ) त्रुटियों कल्पना करने के लिए।


2

आपके प्रश्न के उत्तरार्ध के संबंध में "यह वह त्रुटि है जो मुझे dd का उपयोग करते समय मिलती है": मैं कुछ संभावनाओं को देख सकता हूं।

  1. स्वीकार किए गए उत्तर बनाम आपके द्वारा लिखी गई कमांड के अंतर पर ध्यान दें; आप के ~सामने एक याद आ रही है /USB_image। दूसरे शब्दों में, आप अपने होम डायरेक्टरी के बजाय अपने फाइल सिस्टम के रूट को आउटपुट करने की कोशिश कर रहे हैं।
  2. /dev/sddसही ड्राइव नहीं हो सकती है। sudo fdisk -lयूएसबी स्टिक के ज्ञात आकार में ड्राइव के आकार को चलाएं और तुलना करें। उदाहरण के लिए, मुझे पता है कि यह मेरी USB स्टिक है क्योंकि यह 16GB के करीब है Disk /dev/sdf: 15.8 GB, 15805186048 bytes:।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.