আমি যখন উইন্ডোজের সাথে একটি বুটেবল এনটিএফএস পার্টিশনটিকে অন্য একটি ব্লক অফসেটে নিয়ে যাই, আবার বুটযোগ্য হওয়ার জন্য আপডেট করার কী দরকার?
পটভূমি: আমি এমন একটি প্রোগ্রাম লেখার পরিকল্পনা করেছি যা প্রয়োজনীয় ক্রিয়া সম্পাদন করে , এজন্য আমি উইন্ডোজ ডিভিডি থেকে বুট করে মাইক্রোসফ্টের সরঞ্জামগুলি কীভাবে ব্যবহার করতে পারি তার গাইড খুঁজছি না। পরিবর্তে, আমার নিজের কীভাবে এই জিনিসগুলিকে সংশোধন করতে হবে তা প্রয়োজন, যাতে আমি যখন এমন কোনও পিসি ব্যবহারকারী যখন তার উইন্ডোজ সিস্টেমটিকে একটি বড় হার্ড ডিস্কে স্থানান্তর করতে চান তখন তার পক্ষে সহজ সমাধান লিখতে পারি easier
বিশেষত, আমি যা চেষ্টা করেছি তা এখানে:
আমার বেশ কয়েকটি পার্টিশনযুক্ত একটি ডিস্ক রয়েছে যার মধ্যে একটি এটিতে উইন্ডোজ সহ এনটিএফএস পার্টিশন রয়েছে এবং ডিস্কটি পার্টিশন লেআউটের জন্য প্লেইন পুরাতন এমবিআর ব্লক 0 ব্যবহার করে (4 পার্টিশনের বেশি নয়)।
এখন আমি একটি নতুন, বৃহত্তর, ডিস্ক ফর্ম্যাট এবং বিভাজন। সেখানে আমি এনটিএফএস বিভাজনের জন্য জায়গা তৈরি করেছি এবং পুরাতন ডিস্কের এনটিএফএস উইন্ডোজ বিভাজন থেকে সামগ্রীগুলি অনুলিপি করছি। এবং আমি পার্টিশনটিকে "সক্রিয়" করি।
যাইহোক, আমি যখন এই ডিস্কটি থেকে বুট করার চেষ্টা করি, আমি তত্ক্ষণাত "পঠন ত্রুটি" বার্তাটি পাই এবং বুটিংটি বন্ধ হয়ে যায়, সঠিক পাঠ্যটি হ'ল:
A disk read error occurred
Press Ctrl+Alt+Del to restart
আমি যাচাই করেছি যে উভয় ডিস্কের ব্লক 0 এ একই বুট সেক্টর কোড রয়েছে।
আমার কাছে মনে হয় অন্য কিছু আপডেট করার প্রয়োজন হতে পারে। আমি অনুমান করি যে কোথাও একটি নিখুঁত ব্লক রেফারেন্স আছে যা আমাকে আপডেট করা দরকার, সম্ভবত পরবর্তী স্তরের লোডার বা এনটি কার্নেলের দিকে ইঙ্গিত করে।
আপডেট: আমি এই নিবন্ধটি আমি যা জানতে চাই তার গভীরতায় চলেছি। তবে এটি বুট.আইএনই পরিবর্তন করতে বলেছে, তবে আমার এখানে উইন্ডোজ installed ইনস্টল রয়েছে, যেখানে এ জাতীয় জিনিসগুলি পরিবর্তিত হয়েছে বলে মনে হয়: কোনও বুট.ইনই নয়, জিআইডি এবং এটিতে থাকা অন্যান্য ডেটা সহ সিস্টেম ভলিউম তথ্য নামক একটি ফোল্ডার যা আমার সমস্যার সাথে সম্পর্কিত বলে মনে হচ্ছে । খনন চালিয়ে যাচ্ছি ...
আপডেট 2: স্টারম্যানের ভয়াবহ চেহারাযুক্ত তবে খুব তথ্যপূর্ণ ওয়েবসাইটের জন্য ধন্যবাদ , আমি প্রথম ধাপটি বের করতে সক্ষম হয়েছি: এনটিএফএস বুট সেক্টরের "লুকানো" সেক্টরের ক্ষেত্র রয়েছে। এই ক্ষেত্রটিতে বুট সেক্টরের সেক্টর নম্বর থাকতে হবে। এটি "পঠন ত্রুটি" বার্তা সমাধান করে। এখন, আমি পরিবর্তে একটি "BOOTMGR অনুপস্থিত" ত্রুটি পেয়েছি। দেখে মনে হচ্ছে অন্য কোনও জায়গা আছে যেখানে একটি ব্লক নম্বর সামঞ্জস্য করতে হবে তবে আমি কোড লিস্টিং এ কিছুই খুঁজে পাচ্ছি না।
আমি এই "BOOTMGR অনুপস্থিত" সমস্যাটি ঠিক করার জন্য উইন্ডোজ সরঞ্জামগুলির পরামর্শ দেওয়ার জন্য অনেকগুলি সহায়তা সাইট পেয়েছি, তবে পর্দার আড়ালে কী ঘটে যায় তা কারওই মনে হয় না। কিছুটা সমস্যা থাকলে উইন্ডোজটিকে পুনরায় ইনস্টল করার পরামর্শ দেওয়ার মতো। কমপক্ষে, এই সংশোধনগুলি বেশিরভাগ বিসিডিডিট এবং বুট্রেইক সরঞ্জামগুলিতে জড়িত বলে মনে হচ্ছে work এখন, সরানো পার্টিশনের ক্ষেত্রে তারা কী করে বিশেষত পরবর্তীকালে কে জানে?
আপডেট 3: প্রচুর পরীক্ষামূলক-ত্রুটির প্রচেষ্টার পরে, আমি এখন বিশ্বাস করি যে সমাধানটি বিসিডি-টেম্পলেট রেজিস্ট্রি ফাইলে রয়েছে যা সাধারণত \ উইন্ডোজ \ সিস্টেম 32 \ কনফিগারেশনের অভ্যন্তরে থাকে। যদি আমি "বিসিডিবাট" কমান্ডটি ব্যবহার করে এটি আপডেট হয়ে যাই তবে উইন্ডোজ এটি থেকে শুরু হয়। এই রেজিস্ট্রিটিতে উপরের প্রশ্নের সাথে কী তথ্য প্রাসঙ্গিক রয়েছে তা এখন খুঁজে বের করার মাঝখানে আমি আছি। এই রেজিস্ট্রি বিষয়বস্তু কোন পয়েন্টার স্বাগত।
আপডেট 4: সন্ধান করে যে বিসিডি-টেম্পলেট ফাইলটি আবার লিখিত হয়ে যায় এবং এর পূর্বসূরীর চেয়ে বিভিন্ন বাইনারি সামগ্রী থাকে, তবে অভ্যন্তরের মান পরিবর্তন হয় না। সুতরাং এটি অবশ্যই অন্য কিছু হতে হবে যা বিসিডিবুট.এক্সই লিখেছেন। আমি পূর্বেই এটি পরীক্ষা করে দিয়েছিলাম যে এটি পার্টিশনের প্রথম 32 টি বুট ব্লক পরিবর্তন করে, তবে সেগুলি অপরিবর্তিত রয়েছে বলে মনে হয়। প্যারিটিটন মানচিত্রের কোনও পরিবর্তন হয় না। তাহলে বিসিডিবুট্রি বিসিডি রেজিস্ট্রি ছাড়াও কী পরিবর্তন করে? আমি কীভাবে এটি ট্রেস করতে পারি তার কোনও টিপস? এমন কোনও নিম্ন স্তরের সরঞ্জাম রয়েছে যা আমাকে দেখায় যে কোনও প্রোগ্রামে কী ফাইল লিখেছে?
আপডেট 5: উত্তরটি মনে হয়: সি: \ বুট \ বিসিডিও পরিবর্তিত হয়েছে, এবং এটি বুট পরিচালকের প্রক্রিয়াটির জন্য মূল ফাইল হিসাবে উপস্থিত হবে। আমি পরে এটি তদন্ত করব ...
আপডেট 6: এটি একটি গুরুত্বপূর্ণ বিশদ বলে মনে হচ্ছে যে আমি উইন্ডোজ installed ইনস্টল করার সময় আমার দুটি মূল পার্টিশন তৈরি হয়েছিল: 204800 সেক্টরের একটি ছোট পার্টিশন যা বুটস্ট্র্যাপ পার্টিশন বলে মনে হয়, তার পরে উইন্ডোজ সিস্টেম সহ প্রকৃত, বৃহত্তর, পার্টিশন থাকে ( ড্রাইভ সি :)। যখন আমি এই ইনস্টলেশনটি কোনও নতুন, বৃহত্তর, ডিস্কে স্থানান্তরিত করার চেষ্টা করেছি, তখন আমি নতুন ড্রাইভে একই দুটি পার্টিশন অক্ষত রেখেছি, যদিও সেগুলি ভিন্ন অফসে শেষ হয়েছিল। এর ফলেই "BOOTMGR অনুপস্থিত" বার্তাটি পৌঁছেছে। তার পর থেকে, আমি কেবল উইন্ডোজ পার্টিশনে বিসিডিবুট.এক্সই ব্যবহার করেছি, যা যুক্ত হয়েছেএই পার্টিশনের \ বুট \ বিসিডি ফাইল। এই ফাইলটি (এবং ফোল্ডার) মূলত কেবলমাত্র ছোট পার্টিশনে উপস্থিত ছিল। সুতরাং, এই সমস্যাটি আমার ক্ষেত্রে আরও জটিল হতে পারে কারণ একটি পার্টিশন (বুট স্ট্র্যাপার) অন্য একটি পার্টিশন (ওএস সমন্বিত একটি) বলে উল্লেখ করা হয়েছে, অন্য লোকেরা কেবল উভয়ই একটি বিভাজন নিয়ে কাজ করতে পারে এবং সম্ভবত সেখানে সমাধান রয়েছে maybe সহজ।
আপডেট 7: আরও একটি বিশদ পাওয়া গেছে: \ বুট \ বিসিডি ফাইলটি এমবিআরের ক্রমিক নম্বর রেকর্ড করে। যদি এই সংখ্যাটি মেলে না, তবে সিস্টেমটি বুট হবে না। এরপরে আমি পরীক্ষা করব যদি সেখানে কোনও নিরঙ্কুশ ব্লক রেফারেন্সও সঞ্চিত থাকে।
\BCD\Boot
এবং আপনি সাধারণত এটির মাধ্যমে সম্পাদনা করবেন bcdedit.exe
, না bcdboot
। এবং হ্যাঁ, বুট-স্ট্র্যাপিংয়ের জন্য পৃথক পার্টিশন (যা কেবলমাত্র তখনই প্রয়োজনীয় যখন আপনি সম্পূর্ণ ডিস্ক এনক্রিপশন বৈশিষ্ট্যটি ব্যবহার করেন, যেহেতু ডিক্রিপশন কোডটি মূল উইন্ডোজ পার্টিশনের বাইরে সংরক্ষণ করতে হবে) বুট প্রক্রিয়াটি উপস্থিত থাকলে তা নিয়ন্ত্রণ করে।