USB फ्लैश ड्राइव से बाइट्स पढ़ें


0

मुझे पहले कुछ किलोबाइट से एक USB फ्लैश ड्राइव के हेक्स डंप की आवश्यकता है। फ्लैशड्राइव फैट 32 के साथ ताजा स्वरूपित है जो मैंने किया था lsblkवह मेरे यूएसबी डिवाइस के साथ जांच कर रहा है और मुझे मिला:

sdb                     8:16   0 186.3G  0 disk 
└─sdb1                  8:17   0 186.3G  0 part /media/me/E614-2E0B

इसके बाद मैं डेटा को कॉपी करता हूं: dd if=/dev/sdb1 of=usb.img bs=1024 count=5

और परिणाम है:

00000000: eb58 906d 6b66 732e 6661 7400 0240 4000  .X.mkfs.fat..@@.
00000010: 0200 0000 00f8 0000 3f00 ff00 3f00 0000  ........?...?...
00000020: 82dd 4917 80ba 0000 0000 0000 0200 0000  ..I.............
00000030: 0100 0600 0000 0000 0000 0000 0000 0000  ................
00000040: 8001 290b 2e14 e64e 4f20 4e41 4d45 2020  ..)....NO NAME
00000050: 2020 4641 5433 3220 2020 0e1f be77 7cac    FAT32   ...w|.
00000060: 22c0 740b 56b4 0ebb 0700 cd10 5eeb f032  ".t.V.......^..2
00000070: e4cd 16cd 19eb fe54 6869 7320 6973 206e  .......This is n
00000080: 6f74 2061 2062 6f6f 7461 626c 6520 6469  ot a bootable di
00000090: 736b 2e20 2050 6c65 6173 6520 696e 7365  sk.  Please inse
000000a0: 7274 2061 2062 6f6f 7461 626c 6520 666c  rt a bootable fl
000000b0: 6f70 7079 2061 6e64 0d0a 7072 6573 7320  oppy and..press
000000c0: 616e 7920 6b65 7920 746f 2074 7279 2061  any key to try a
000000d0: 6761 696e 202e 2e2e 200d 0a00 0000 0000  gain ... .......
000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
00000200: 5252 6141 0000 0000 0000 0000 0000 0000  RRaA............
00000210: 0000 0000 0000 0000 0000 0000 0000 0000  ................

सही कॉलम में मैं पाठ देख सकता हूं "यह बूट करने योग्य डिस्क नहीं है। कृपया बूट करने योग्य फ़्लॉपी डालें और फिर से प्रयास करने के लिए कोई भी कुंजी लिखें।" अब यकीन नहीं है कि क्या यह वास्तव में मेरे यूएसबी फ्लैश ड्राइव की सामग्री है या यदि कोई त्रुटि थी। क्या यह मेरे फ्लैश ड्राइव से बाइट डेटा प्राप्त करने का सही तरीका है या मेरे यूएसबी डिवाइस से हेक्स डंप प्राप्त करने का एक और तरीका है?

संपादित करें: यदि मैं / dev / sdb का उपयोग करता हूं तो मुझे:

00000000  33 c0 fa 8e d8 8e d0 bc  00 7c 89 e6 06 57 8e c0  |3........|...W..|
00000010  fb fc bf 00 06 b9 00 01  f3 a5 ea 1f 06 00 00 52  |...............R|
00000020  52 b4 41 bb aa 55 31 c9  30 f6 f9 cd 13 72 13 81  |R.A..U1.0....r..|
00000030  fb 55 aa 75 0d d1 e9 73  09 66 c7 06 8d 06 b4 42  |.U.u...s.f.....B|
00000040  eb 15 5a b4 08 cd 13 83  e1 3f 51 0f b6 c6 40 f7  |..Z......?Q...@.|
00000050  e1 52 50 66 31 c0 66 99  e8 66 00 e8 21 01 4d 69  |.RPf1.f..f..!.Mi|
00000060  73 73 69 6e 67 20 6f 70  65 72 61 74 69 6e 67 20  |ssing operating |
00000070  73 79 73 74 65 6d 2e 0d  0a 66 60 66 31 d2 bb 00  |system...f`f1...|
00000080  7c 66 52 66 50 06 53 6a  01 6a 10 89 e6 66 f7 36  ||fRfP.Sj.j...f.6|
00000090  f4 7b c0 e4 06 88 e1 88  c5 92 f6 36 f8 7b 88 c6  |.{.........6.{..|
000000a0  08 e1 41 b8 01 02 8a 16  fa 7b cd 13 8d 64 10 66  |..A......{...d.f|
000000b0  61 c3 e8 c4 ff be be 7d  bf be 07 b9 20 00 f3 a5  |a......}.... ...|
000000c0  c3 66 60 89 e5 bb be 07  b9 04 00 31 c0 53 51 f6  |.f`........1.SQ.|
000000d0  07 80 74 03 40 89 de 83  c3 10 e2 f3 48 74 5b 79  |..t.@.......Ht[y|
000000e0  39 59 5b 8a 47 04 3c 0f  74 06 24 7f 3c 05 75 22  |9Y[.G.<.t.$.<.u"|
000000f0  66 8b 47 08 66 8b 56 14  66 01 d0 66 21 d2 75 03  |f.G.f.V.f..f!.u.|
00000100  66 89 c2 e8 ac ff 72 03  e8 b6 ff 66 8b 46 1c e8  |f.....r....f.F..|
00000110  a0 ff 83 c3 10 e2 cc 66  61 c3 e8 62 00 4d 75 6c  |.......fa..b.Mul|
00000120  74 69 70 6c 65 20 61 63  74 69 76 65 20 70 61 72  |tiple active par|
00000130  74 69 74 69 6f 6e 73 2e  0d 0a 66 8b 44 08 66 03  |titions...f.D.f.|
00000140  46 1c 66 89 44 08 e8 30  ff 72 13 81 3e fe 7d 55  |F.f.D..0.r..>.}U|
00000150  aa 0f 85 06 ff bc fa 7b  5a 5f 07 fa ff e4 e8 1e  |.......{Z_......|
00000160  00 4f 70 65 72 61 74 69  6e 67 20 73 79 73 74 65  |.Operating syste|
00000170  6d 20 6c 6f 61 64 20 65  72 72 6f 72 2e 0d 0a 5e  |m load error...^|
00000180  ac b4 0e 8a 3e 62 04 b3  07 cd 10 3c 0a 75 f1 cd  |....>b.....<.u..|
00000190  18 f4 eb fd 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  56 b4 07 1e 00 00 80 01  |........V.......|
000001c0  01 00 07 fe ff ff 3f 00  00 00 82 dd 49 17 00 00  |......?.....I...|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

वहां स्ट्रिंग "ऑपरेटिंग सिस्टम लोड त्रुटि" होती है।

मैं जो चाहता हूं वह एक डंप है जिसमें एफएटी है - फाइल आवंटन तालिका।


1
" अब यह सुनिश्चित नहीं करें कि क्या यह वास्तव में मेरे यूएसबी फ्लैश ड्राइव की सामग्री है " - यह है ... आपको क्या देखने की उम्मीद थी?
जूनी

पाठ "यह बूट करने योग्य डिस्क नहीं है। कृपया एक बूट करने योग्य फ़्लॉपी डालें और फिर से प्रयास करने के लिए कोई भी कुंजी लिखें" मुझे उत्सुक बनाता है, यह क्यों है?
ईसेन

जवाबों:


1

यह सही है यदि आप विभाजन का डंप प्राप्त करने की कोशिश कर रहे हैं ( /dev/sdb1) - जो आपको लगता है कि आप हैं।

यह पाठ मौजूद है क्योंकि इसका उपयोग (और अंत में संग्रहीत) एक बहुत ही अल्पविकसित "boot_code" ब्लॉक में उस mkfs.fatस्थान पर किया जाता है। यह " बस के मामले में " फ्लॉपी जैसी पुरानी तकनीक के साथ संगतता सुनिश्चित करता है । इस पाठ का कारण आधुनिक दुनिया में बड़े पैमाने पर " इतिहास के कारण " है।

आप इस पाठ को mkfs.fatयहाँ स्रोत कोड में देख सकते हैं : src / mkfs.fat.c: 209

फ़ाइल आबंटन तालिका एक "छोटी सी चीज जिसे आप देख सकते हैं" नहीं है, लेकिन (FAT - धन्यवाद @grawity के मामले में) एक बड़े भाग के रूप में संग्रहीत की जाती है। आपको बिना टूल के फाइल टेबल को समझने के लिए कच्चे डेटा को संभालने और अपने सिर में बेस -16 मैथ्स करने के साथ बहुत सहज होने की आवश्यकता होगी।

आप FAT में आगे शोध करना चाहते हैं:


1

हां - लेकिन क्योंकि आपने डिवाइस के नाम के रूप में 'sdb 1 ' को निर्दिष्ट किया है, रीड पूरे ड्राइव की शुरुआत के बजाय 1 विभाजन की शुरुआत में शुरू होता है (जो 'sdb' है)।

तो आप एक FAT32 फाइलसिस्टम के पहले कुछ सेक्टर देख रहे हैं। FAT इस स्थान को VBR ("वॉल्यूम बूट रिकॉर्ड") के लिए आरक्षित करता है और विभिन्न FAT स्वरूपण उपकरण यहां एक बुनियादी 'प्लेसहोल्डर' VBR जोड़ते हैं, इसलिए बूट त्रुटि संदेश।

(साथ ही, फ्लॉपी डिस्क और अन्य "superfloppy" -formated उपकरणों विभाजन नहीं है - फाइल सिस्टम क्षेत्र 0 पर शुरू होता है, तो फैट VBR है फ्लॉपी डिस्क के एमबीआर।)

संपूर्ण डिस्क से डेटा पढ़ने के लिए (विभाजन सीमाओं की अनदेखी) /dev/sdbइनपुट फ़ाइल के रूप में उपयोग करें । ( head -c 5k /dev/sdb | hexdump -Cयदि आप चाहें तो आप किसी भी उपकरण का उपयोग कर सकते हैं।)


नमस्कार, आपके उत्तर के लिए धन्यवाद। मैं जो चाहता हूं वह फ़ाइल आवंटन तालिका और पहले कुछ डेटा को देखना है। अगर मैं / dev / sdb का उपयोग करता हूं तो मुझे एक परिणाम मिलता है जहां स्ट्रिंग "ऑपरेटिंग सिस्टम लोड त्रुटि" होती है।
ईसेन

1
फ़ाइल आवंटन तालिका एक " छोटी सी चीज़ जिसे आप देख सकते हैं " नहीं है, लेकिन पूरे डिस्क में फैली हुई है। यदि यह वह है जिसे आप देखना चाहते हैं, तो विभाजन ( /dev/sdb1) का उपयोग करना सही है। बिना टूल के FAT को समझने के लिए आपको कच्चे डेटा को संभालने और अपने सिर में बेस -16 मैथ्स करने के साथ बहुत सहज होने की आवश्यकता होगी।
जूनी

1
यह एफएटी के मामले में बहुत फैलता नहीं है (लगता है कि सब कुछ युक्त एक ही तालिका है), लेकिन यह विभाजन में थोड़ा गहरा स्थित है। (उदाहरण के लिए, fsck -v /dev/sdb1मेरे लिए पता चलता है और "डेटा क्षेत्र बाइट 4,146,176 से शुरू होती है" "सबसे पहले फैट बाइट 16384 पर शुरू होता है"।)
grawity

@grawity ओह - मुझे बताने के लिए धन्यवाद!
जूनी

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