/ dev / sda1 / dev / sda এর সাবসেট নয়?


18

আমার পার্টিশন টেবিলের প্রথম এন্ট্রিটি হ'ল:

$ sudo hexdump -Cv -n 16 -s 446 /dev/sda
000001be  80 01 01 00 83 fe ff ff  3f 00 00 00 81 1c 20 03  |........?..... .|

( -সিভি আউটপুট ফর্ম্যাটটি বর্ণনা করে, -n 16 16 বাইট এবং -s 446 প্রথম 446 বাইট ছেড়ে যায়)
আপনি দেখতে পাচ্ছেন যে আমার প্রথম পার্টিশনটি একটি প্রাথমিক লিনাক্স পার্টিশন এবং এই পার্টিশনটি সেক্টর 63৩ এ শুরু হয় (উদাহরণস্বরূপ দেখুন [ পার্টিশন টেবিলের কাঠামোর জন্য এখানে] [1]।
আমি তখন প্রত্যাশা করব যে প্রথম sectors৩ টি সেক্টর এবং অন্যান্য পার্টিশনগুলি ছাড়া, / dev / sda1 এবং / dev / sda হুবহু একই।

তবে এটি নয়, সেক্টর # 2 / dev / sda1 এর সেক্টরটি / dev / sda এর # 65 সেক্টরের মতো নয় (তবে তারা খুব মিল, কেবল 16 বাইট আলাদা):

$ sudo hexdump -Cv -n 512 -s 65b /dev/sda
00008200  00 20 19 00 90 03 64 00  2d 00 05 00 5a 2f 56 00  |. ....d.-...Z/V.|
00008210  b6 b1 16 00 00 00 00 00  02 00 00 00 02 00 00 00  |................|
00008220  00 80 00 00 00 80 00 00  00 20 00 00 d8 38 ee 4c  |......... ...8.L|
00008230  9a 01 ef 4c 05 00 24 00  53 ef 01 00 01 00 00 00  |...L..$.S.......|
00008240  59 23 e9 4c 00 4e ed 00  00 00 00 00 01 00 00 00  |Y#.L.N..........|
00008250  00 00 00 00 0b 00 00 00  00 01 00 00 3c 00 00 00  |............<...|
00008260  42 02 00 00 7b 00 00 00  85 23 eb f2 71 67 44 f5  |B...{....#..qgD.|
00008270  bb 8f 6f f2 3a 59 ff 4d  55 62 75 6e 74 75 00 00  |..o.:Y.MUbuntu..|
00008280  00 00 00 00 00 00 00 00  2f 75 62 75 6e 74 75 00  |......../ubuntu.|
00008290  d8 3c df 5d 00 88 ff ff  52 d0 ef 1d 00 00 00 00  |.<.]....R.......|
000082a0  c0 40 51 b6 00 88 ff ff  00 4e c8 bb 00 88 ff ff  |.@Q......N......|
000082b0  c0 f6 86 b8 00 88 ff ff  30 2e 0d a0 ff ff ff ff  |........0.......|
000082c0  38 3d df 5d 00 88 ff ff  00 00 00 00 00 00 fe 03  |8=.]............|
000082d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000082e0  08 00 00 00 00 00 00 00  00 00 00 00 8a 53 d3 0e  |.............S..|
000082f0  7c 7a 43 e4 8b fb ca e0  72 b7 fa c8 01 01 00 00  ||zC.....r.......|
00008300  00 00 00 00 00 00 00 00  16 4c 47 4b 0a f3 03 00  |.........LGK....|
00008310  04 00 00 00 00 00 00 00  00 00 00 00 fe 7f 00 00  |................|
00008320  24 b7 0c 00 fe 7f 00 00  01 00 00 00 22 37 0d 00  |$..........."7..|
00008330  ff 7f 00 00 01 00 00 00  23 37 0d 00 00 00 00 00  |........#7......|
00008340  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 08  |................|
00008350  00 00 00 00 00 00 00 00  00 00 00 00 1c 00 1c 00  |................|
00008360  01 00 00 00 e9 7f 00 00  00 00 00 00 00 00 00 00  |................|
00008370  00 00 00 00 04 00 00 00  9f 7d bb 00 00 00 00 00  |.........}......|
00008380  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00008390  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000083f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

বনাম

$ sudo hexdump -Cv -n 512 -s 2b /dev/sda1
00000400  00 20 19 00 90 03 64 00  2d 00 05 00 5a 2f 56 00  |. ....d.-...Z/V.|
00000410  b6 b1 16 00 00 00 00 00  02 00 00 00 02 00 00 00  |................|
00000420  00 80 00 00 00 80 00 00  00 20 00 00 df 76 ef 4c  |......... ...v.L|
00000430  df 76 ef 4c 06 00 24 00  53 ef 01 00 01 00 00 00  |.v.L..$.S.......|
00000440  59 23 e9 4c 00 4e ed 00  00 00 00 00 01 00 00 00  |Y#.L.N..........|
00000450  0

ভাল প্রশ্ন ... +1 যদিও উত্তর সম্পর্কে ধারণা নেই
রোবটহুমানস

সঠিক পার্থক্য থাকতে পারে?
হ্যালো 71

উত্তর:


6

চমৎকার সন্ধান, যেহেতু আমি আমার সিস্টেমেও এই প্রভাবটি পুনরুত্পাদন করতে সক্ষম হয়েছি। আমার সাইটে এটি / dev / hda এ ঘটে তাই এটি কোনও এসসিএসআই সমস্যা নয়।

# uname -a
Linux X.X.X 2.6.26-2-686 #1 SMP Tue Mar 9 17:35:51 UTC 2010 i686 GNU/Linux

আমি মনে করি whitequarkএটি সঠিক যে এটি একটি ক্যাশে সমস্যা। আপনার সাইটে যা ঘটেছিল তা আমার ব্যাখ্যা এখানে রয়েছে ( নোট করুন যে আমি নিশ্চিত নই যে আমার ব্যাখ্যাটি সঠিক কিনা ):

/ dev / sda1 ব্যবহৃত হয়। সুতরাং "সিঙ্ক" প্রতিবার জার্নাল ফ্লাশ করা (বা অনুরূপ) সুপারব্লক আপডেট করে। সুতরাং ডিস্ক / ডেভ / এসডিএ 1 পরিবর্তন করা হয়েছে।

তবে কার্নেলটি / dev / sda এবং / dev / sda1 এর জন্য একটি সংযুক্ত ক্যাশে ব্যবহার করে না, পরিবর্তে উভয় "ফাইল" তার নিজস্ব ক্যাশে। এর জন্য / dev / sda1 (সিঙ্ক) আপডেট করা / dev / sda এর ক্যাশেটিকে অকার্যকর করে না। সুতরাং / dev / sda থেকে পড়া পুরানো ক্যাশের মানটি দেখায় (সুতরাং ক্যাশটি হার্ডড্রাইভের সাথে সিঙ্কের বাইরে) যখন / dev / sda1 সঠিক (নতুন) মানগুলি দেখায়।

আমার পাশের পরিস্থিতি এখানে দেখা গেল। আমি / দেব / এইচডিএর আগে কিছু ডাম্পগুলি করে এখানে এসেছি, সুতরাং এটি ইতিমধ্যে কিছু পুরানো ডেটা ক্যাশে করেছে:

# od -tx1z -N 10k /dev/hda2 > NOW1
# dd ibs=512 skip=1975995 if=/dev/hda | od -tx1z -N 10k > MAIN1
# diff NOW1 MAIN1
3,4c3,4
< 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 be 1a 39 00  >..1.W.a..}....9.<
< 0002020 4e ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >N.!.............<
---
> 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 4e 1b 39 00  >..1.W.a..}..N.9.<
> 0002020 52 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >R.!.............<

# od -tx1z -N 10k /dev/hda2 > NOW1
# diff NOW1 MAIN1
3,4c3,4
< 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 be 1a 39 00  >..1.W.a..}....9.<
< 0002020 4e ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >N.!.............<
---
> 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 4e 1b 39 00  >..1.W.a..}..N.9.<
> 0002020 52 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >R.!.............<

# od -tx1z -N 10k /dev/hda2 > NOW2
# dd ibs=512 skip=1975995 if=/dev/hda | od -tx1z -N 10k > MAIN2
# diff MAIN1 MAIN2
# diff NOW2 MAIN2
3,4c3,4
< 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 f0 19 39 00  >..1.W.a..}....9.<
< 0002020 41 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >A.!.............<
---
> 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 4e 1b 39 00  >..1.W.a..}..N.9.<
> 0002020 52 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >R.!.............<
106c106
< 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 01 00  >................<
---
> 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 00 00  >................<
334c334
< 0021540 00 80 4d 00 01 80 4d 00 02 80 4d 00 02 00 63 3e  >..M...M...M...c><
---
> 0021540 00 80 4d 00 01 80 4d 00 02 80 4d 00 02 00 64 3e  >..M...M...M...d><

যখন / dev / hda কোনও আপডেট দেখায় না, / dev / hda2 কিছু পরিবর্তন দেখায়। তবে যখন আমি ক্যাশেগুলি ফ্লাশ করি এবং আবার চেষ্টা করি, সমস্ত কিছু একই রকম হয়:

# hdparm -f /dev/hda

/dev/hda:

# dd ibs=512 skip=1975995 if=/dev/hda | od -tx1z -N 10k > MAIN2
# diff MAIN1 MAIN2
3,4c3,4
< 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 4e 1b 39 00  >..1.W.a..}..N.9.<
< 0002020 52 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >R.!.............<
---
> 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 dc 1a 39 00  >..1.W.a..}....9.<
> 0002020 96 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >..!.............<
36,37c36,37
< 0010300 00 00 03 00 01 00 03 00 02 00 03 00 00 00 bb 3b  >...............;<
< 0010320 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
---
> 0010300 00 00 03 00 01 00 03 00 02 00 03 00 00 00 bc 3b  >...............;<
> 0010320 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
48c48
< 0010600 00 00 06 00 01 00 06 00 02 00 06 00 03 00 18 3f  >...............?<
---
> 0010600 00 00 06 00 01 00 06 00 02 00 06 00 04 00 18 3f  >...............?<
106c106
< 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 00 00  >................<
---
> 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 01 00  >................<

# od -tx1z -N 10k /dev/hda2 > NOW2
# diff NOW2 MAIN2
# diff MAIN1 MAIN2
3,4c3,4
< 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 4e 1b 39 00  >..1.W.a..}..N.9.<
< 0002020 52 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >R.!.............<
---
> 0002000 00 00 31 01 57 c4 61 02 04 7d 1e 00 dc 1a 39 00  >..1.W.a..}....9.<
> 0002020 96 ea 21 01 00 00 00 00 02 00 00 00 02 00 00 00  >..!.............<
36,37c36,37
< 0010300 00 00 03 00 01 00 03 00 02 00 03 00 00 00 bb 3b  >...............;<
< 0010320 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
---
> 0010300 00 00 03 00 01 00 03 00 02 00 03 00 00 00 bc 3b  >...............;<
> 0010320 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
48c48
< 0010600 00 00 06 00 01 00 06 00 02 00 06 00 03 00 18 3f  >...............?<
---
> 0010600 00 00 06 00 01 00 06 00 02 00 06 00 04 00 18 3f  >...............?<
106c106
< 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 00 00  >................<
---
> 0012440 00 80 14 00 01 80 14 00 02 80 14 00 00 00 01 00  >................<

কীভাবে পুনরুত্পাদন করতে হবে তার সংক্ষিপ্ত নোট:

  • আপনার সিস্টেমটি নিষ্ক্রিয় এবং ক্যাশে যাওয়ার জন্য প্রচুর পরিমাণে র‌্যাম রয়েছে তা নিশ্চিত করুন।
  • চালানোর fdisk -u -lপার্টিশন আরম্ভ খুঁজে। আমার পাশে এটি 1975995
  • একটি মাউন্ট করা পার্টিশন এবং সম্পূর্ণ ড্রাইভ চয়ন করুন।
  • তারপরে উভয় ডাম্প (NOW1, MAIN1) করুন এবং তাদের তুলনা করুন। তারা সমান তুলনা করবে।
  • পার্টিশনটিতে কিছুটা পরিবর্তন করুন, সিঙ্ক করুন।
  • আরও সময় ছেড়ে দিন।
  • কিছুটা পরিবর্তন করুন, আবার সিঙ্ক করুন।
  • NOW2 ফেলে দিন, এটি NOW1 থেকে পৃথক হবে
  • MAIN2 ডাম্প করুন, এটি MAIN1 থেকে পৃথক হওয়া উচিত নয় !
  • সম্পাদন hdparmআপনার ড্রাইভের জন্য লাইন
  • আবার MAIN2 ফেলে দিন, এখন এটি MAIN1 থেকে পৃথক হবে।
  • আপনি যদি যথেষ্ট দ্রুত হন তবে NOW2 এবং MAIN2 সমান তুলনা করবে।

0

একটি অনুরূপ পরীক্ষা করার পরে আমি কোন বিচ্ছিন্নতা পাইনি। হতে পারে যে নির্দিষ্ট খাতটি প্রতিটি ডাম্পের মাঝে লেখা হয়েছিল।

নিম্নলিখিত কমান্ড একই / সেকেন্ডের / dev / sda এবং / dev / sda1 থেকে উত্তোলিত প্রথম সেক্টরের 488MB তুলনা করে:

$ diff <(sudo hexdump -Cv -n $((512*100000)) -s 0x7e00 /dev/sda | awk '{$1=""}1' ) <(sudo hexdump -Cv -n $((512*100000)) /dev/sda1 | awk '{$1=""}1' )

যেখানে 0x7e00 প্রথম পার্টিশনের অফসেট।


1
এটি ডিস্ক ক্যাশে কিছুটা হলেও সম্পর্কিত হতে পারে।
হোয়াইটকিয়ার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.