ক্লোনড উইন্ডোজ 7 বিসিডিতে কেন অসম্পূর্ণ ডেটা থাকে (এবং, সুতরাং, বুটিং প্রতিরোধ করে)?


9

আমার দুর্ভাগ্য হয়েছে যে একটি হার্ড ড্রাইভকে এর চেয়ে ছোটটির সাথে প্রতিস্থাপনের জন্য ডুয়াল-বুটিং উইন্ডোজ এক্সপি / 7 বক্সটি ক্লোন করা প্রয়োজন। এটি বুট করতে আমার খুব সমস্যা হয়েছিল এবং আমি কী চলছে তা বুঝতে চাই এবং যদি আমি আরও ভাল কিছু করতে পারি।

পটভূমি: মেশিনটিতে 3 টি পার্টিশন সহ 750 জিবি ড্রাইভ রয়েছে:

  • উইন্ডোজ এক্সপি
  • উইন্ডোজ 7
  • উপাত্ত

আসল ইনস্টলেশনটি এমনভাবে করা হয়েছিল যাতে আলাদা কোনও উইন্ডোজ 7 পুনরুদ্ধারের পার্টিশন না থাকে। আমি আশা করি এই ঘটনাটি কিছুটা সহজ করেছে।

আমি এটি একটি 80 জিবি ড্রাইভ দিয়ে প্রতিস্থাপন করছি। পার্টিশনগুলি ইতিমধ্যে উইন্ডোজ 7 এর মধ্যে থেকে সঙ্কুচিত হয়ে গেছে যাতে তারা ছোট ডিস্কে ফিট করে।

আমি পার্টিশনগুলি অনুলিপি করতে GParted(একটি PartedMagicলিনাক্স লাইভসিডি থেকে) ব্যবহার করেছি । আমি উইন্ডোজ এক্সপি পার্টিশনটিকে সক্রিয় পার্টিশন হিসাবে চিহ্নিত করি (মূল ডিস্কের মতোই)।

CloneZillaবড় থেকে ছোট ডিস্কে স্থানান্তরের কারণে আমি একটি সম্পূর্ণ ডিস্ক অনুলিপি ব্যবহার বা করতে অক্ষম ছিলাম ।

পার্টিশনগুলি অনুলিপি করার পরে, আমি নিজেই জুড়ে বুট লোডারটি অনুলিপি করে (পার্টিশন টেবিলটি অনুলিপি না করার বিষয়ে যত্ন নিয়ে):

$ dd if=/dev/sda of=/dev/sdb bs=446 count=1

আমি মূল ডিস্কটি সরিয়ে নিয়েছি, নতুনটি সেট করেছি যাতে এটি শারীরিকভাবে আসল (আইডিই চ্যানেল 1 মাস্টার) এর সাথে একইভাবে সংযুক্ত থাকে এবং বুট করার চেষ্টা করে। এটি সফলভাবে বুট মেনু উপস্থাপন করেছে তবে দুটি বিকল্প নির্বাচন করে ব্যর্থ হয়েছে (দুটি রয়েছে: এক্সপির জন্য একটি এবং উইন 7 এর জন্য একটি)।

আমি মোটামুটি গবেষণা করেছি যা আমাকে উইন্ডোজ 7 বুট কনফিগারেশনের ডেটাতে যা করা উচিত হবে তা ধারণ করে না তা উপলব্ধি করতে দেয়। আমি বিসিডি আউটপুটটিকে মূল এবং নতুন ডিস্কগুলি থেকে তুলনা করেছি এবং উল্লেখ করেছি যে ডিভাইসের প্রবেশপথগুলি পরবর্তীকালে ছিল unknown। সুতরাং আমি ম্যানুয়ালি এগুলিকে পরিবর্তিত করে আসলটির সাথে মেলে - এরকম:

$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:

এবং রিবুট করা। এবার আমি এক্সপি এবং উইন 7 উভয়ই বুট করতে পারি। আমার আরও পরীক্ষা করা দরকার কারণ দুটি বিসিডির মধ্যে অন্য পার্থক্য রয়েছে বলে মনে হচ্ছে, তবে উপরের পরিবর্তনগুলি কমপক্ষে বুট করার অনুমতি দিয়েছে।

সুতরাং আমার প্রশ্নটি সত্যই জিজ্ঞাসা করা হয়েছে যে ক্লোন করা পার্টিশনের বিসিডি কেন আসলটির থেকে আলাদা দেখাবে এবং বুটিং প্রতিরোধের পক্ষে যথেষ্ট?

এবং এটি অনুসরণ করে জিজ্ঞাসা করা হবে যে আমি এই অন্যভাবে করা উচিত?

উত্তর:


13

উইন্ডোজ অপারেটিং সিস্টেমযুক্ত পার্টিশনগুলি ক্লোন করার পরে, ক্লোন করা পার্টিশনগুলি ক্লোনড ডিস্কের ঠিক একই অবস্থানে না থাকলে সেগুলি বুট কনফিগারেশন ডেটা ঠিক করতে হবে।

উইন্ডোজ বুট প্রক্রিয়া, উইন্ডোজ ভিস্তা যেহেতু, "বুট কনফিগারেশন ডেটা" (বিসিডি) হিসাবে এটির কনফিগারেশন সংরক্ষণ করে এবং এটি পার্টিশনগুলিকে বোঝায়, পার্টিশন সংখ্যার দ্বারা নয় তবে একটি ডিস্ক স্বাক্ষর এবং সেক্টর অফসেট দ্বারা। ডিস্ক স্বাক্ষর একটি 32-বিট মান যা মাস্টার বুট রেকর্ডে এমবেড করা হয়। 0 সেক্টরের প্রথম 446 বাইট অনুলিপি করে ডিস্কের স্বাক্ষরটি অনুলিপি করবে।

যদি ক্লোনিং ক্রিয়াকলাপগুলির ফলে ক্লোনড ডিস্ক পার্টিশনগুলির বিভিন্ন প্রারম্ভিক ক্ষেত্রের ঠিকানা থাকে, তবে মূলগুলি (পুরো ডিস্ক ক্লোনটি ব্যবহার না করা পর্যন্ত সম্ভবত) ক্লোনটি সম্ভবত এই প্রতিকারগুলি প্রয়োগ না করা পর্যন্ত বুট করতে ব্যর্থ হয়।

মূলত, সেক্টর অফসেটগুলি আপডেট করতে হবে এবং এর জন্য আপনাকে একটি পুনরুদ্ধার কনসোল ব্যবহার করতে হবে (এটি একটি উইন্ডোজ 7 ইনস্টল ডিভিডিতে উপলব্ধ)। নিশ্চিত করুন যে কেবল ক্লোনড ড্রাইভ সংযুক্ত রয়েছে এবং একটি উইন্ডোজ 7 ইনস্টল ডিভিডি থেকে বুট করুন। প্রথম স্ক্রিনে ভাষা নির্বাচন করুন এবং "পরবর্তী" টিপুন। পরবর্তী স্ক্রিনে (যেখানে "এখন ইনস্টল করুন" প্রদর্শিত হয়) কমান্ড প্রম্পট পেতে SHIFT + F10 টিপুন।

প্রথমে স্থানে থাকা ড্রাইভের অক্ষর এবং পার্টিশনগুলির সাথে সেগুলি নিশ্চিত করুন:

diskpart
list volume
exit

এছাড়াও, আপনার যদি প্রয়োজন হয় তবে সক্রিয় পার্টিশনটি পুনরায় নিশ্চিত করুন:

diskpart
select disk 0
select part 1
detail part
select part 2
detail part
... and so-on
exit

একটি BIOS সিস্টেমে, বিসিডি একটি ফাইলে সঞ্চিত থাকে X:\Boot\BCDযেখানে Xসক্রিয় পার্টিশনের ড্রাইভ লেটার থাকে (UEFI এর জন্য এটি EFI সিস্টেম পার্টিশনে রয়েছে)। সাধারণত লুকানো থাকে, এটি দিয়ে দেখা যায়

dir /AH X:\Boot

এটি এর মত ব্যাক আপ করা যেতে পারে:

bcdedit /export X:\path\to\bcd\backup

এবং পুনরুদ্ধার

bcdedit /import X:\path\to\bcd\backup

যদি কোনও ডিস্কে একাধিক অপারেটিং সিস্টেম থাকে, তবে একাধিক বিসিডি থাকতে পারে। সক্রিয় বিসিডি হ'ল \Boot\BCDপার্টিশনের একটি যা সক্রিয় হিসাবে চিহ্নিত - সক্রিয় পার্টিশন । এর বিষয়বস্তু তালিকাভুক্ত করতে (ক্রমবর্ধমান ক্রম ক্রম :)

bcdedit
bcdedit /enum
bcdedit /enum ALL
bcdedit /enum ALL /v

সক্রিয় বিসিডি ঠিক করার জন্য, সঠিক পার্টিশনের জন্য ড্রাইভ লেটারগুলি স্থাপন করুন এবং করুন:

bcdedit /set {default} osdevice partition=X:
bcdedit /set {default} device partition=X:
bcdedit /set {bootmgr} device partition=X:
bcdedit /set {memdiag} device partition=X:
bcdedit /set {ntldr} device partition=X:

বা, অন্য একটি বিসিডি ঠিক করতে (এই উদাহরণগুলিতে "এক্স: \ বুট \ বিসিডি" তে):

bcdedit /store X:\boot\bcd /set {default} osdevice partition=X:
bcdedit /store X:\boot\bcd /set {default} device partition=X:
bcdedit /store X:\boot\bcd /set {bootmgr} device partition=X:
bcdedit /store X:\boot\bcd /set {memdiag} device partition=X:
bcdedit /store X:\boot\bcd /set {ntldr} device partition=X:

উদাহরণস্বরূপ, আমার সিস্টেমটিতে এক্সপি এবং 7 রয়েছে এবং তারা এক্সপি প্রদর্শন করে C:এবং 7 চলছে D:এবং সক্রিয় পার্টিশনটি রয়েছে C:। তারপর সক্রিয় স্কুবা BCD হতে হবে c:\boot\BCD। বুট ম্যানেজারটি পাওয়া যাবে C:\bootmgrএবং মেমরি ডায়াগোনস্টিক এ থাকবে C:\boot\memtest.exe, প্রয়োজনীয় আদেশগুলি হবে:

bcdedit /set {ntldr} device partition=C:
bcdedit /set {memdiag} device partition=C:
bcdedit /set {bootmgr} device partition=C:
bcdedit /set {default} device partition=D:
bcdedit /set {default} osdevice partition=D:

এই পরিবর্তনগুলির সাথে, কম্পিউটারটি পুনরায় বুট করা (Alt-F4 টিপুন এটি অর্জন করবে) এবং ডিভিডি সরিয়ে দেওয়ার ফলে সিস্টেমটি সফলভাবে বুট হতে পারে।

আরও পড়া:

(পুরো ডিস্কের ক্লোনটি এই সমস্যায় ভোগা উচিত নয় কারণ অনুলিপিটিতে পার্টিশন বিন্যাসটি মূলটির মতোই হওয়া উচিত)


নোট যে bcdbootবুট এন্ট্রি পুনরায় তৈরি করার একটি সহজ উপায় প্রদান করে তবে আমি নিশ্চিত নই যে এটি কোনও এক্সপি / ডাব্লু 7 ডুয়াল-বুট দৃশ্যে উপযুক্ত হবে।
হ্যারি জনস্টন

আমি আপনার উত্তরটি ভালবাসি, তবে আপনি কি দয়া করে এটি কিছুটা পরিষ্কার করতে পারেন? আমি মনে করি প্রচুর বহিরাগত তথ্য রয়েছে (যেমন উদাহরণস্বরূপ কমান্ডগুলি যখন আপনার আসল কমান্ডের ঠিক পরে থাকে, ইত্যাদি)।
Bigbio2002

আপনি আনসারটি পছন্দ করেছেন বলে আমি আনন্দিত তবে আমি মনে করি না যে সেখানে প্রচুর বহিরাগত তথ্য রয়েছে। আমার একটি সাধারণ ব্যাখ্যা আছে এবং শেষে একটি বাস্তব উদাহরণ রয়েছে যা প্রকৃতপক্ষে প্রতিস্থাপন করে যে পরিবর্তনগুলি পরিবর্তন করতে হবে তার মধ্যে পার্টিশনগুলি কীভাবে নির্ধারণ করা যায় তা প্রদর্শন করে। আমার ক্লোন করা সিস্টেমটি ঠিক করার জন্য আমার উপরোক্ত সমস্ত জ্ঞানের প্রয়োজন ছিল এবং তাই, অন্যকে যতটা তথ্য সরবরাহ করার জন্য এটিকে পুরোপুরি উত্তর হিসাবে উপস্থাপন করেছি।
স্টারফাই

8

বিসিডি ইন্টার্নালগুলির এই অনানুষ্ঠানিক ডকুমেন্টেশন অনুসারে , বিসিডি স্টোরের পার্টিশনগুলি আসলে ডিস্ক স্বাক্ষর এবং পার্টিশন অফসেট দ্বারা চিহ্নিত করা হয়। আপনি ডিস্ক স্বাক্ষরটি (এমবিআর বাইটস 440-443) অনুলিপি করেছেন, তবে সম্ভবত সম্ভবত একটি ছোট ডিস্কে পার্টিশন রাখার সময় পার্টিশন অফসেটগুলি পরিবর্তিত হয়েছে, সুতরাং BOOTMGR আর এই পার্টিশনগুলি সন্ধান করতে সক্ষম হয় নি।


এটি আকর্ষণীয় এবং অবশ্যই এটি কেন কাজ করবে না তা ব্যাখ্যা করে - পার্টিশনের অফসেটগুলি অবশ্যই পৃথকভাবে পৃথক হবে। কেন-ও-কেন এটি আরও আনুষ্ঠানিকভাবে নথিভুক্ত নয় কারও অনুমান! ক্লোনড ডিস্কে এটি "মেরামত" করার কোনও গৃহীত (অফিসিয়াল বা অযৌক্তিক) উপায় আছে কি?
স্টারফাই

আমি অনুমান করি যে সরকারী উপায়টি হ'ল "পূর্বে প্রস্তুত সিস্টেম মেরামত ডিস্ক থেকে বুট করা (বা একটি সত্যিকারের ইনস্টলেশন মিডিয়া, যদি আপনার এটি থাকে এবং ডিওইএম রিকভারি মিডিয়া না থাকে) এবং স্টার্টআপ মেরামত চালান ; যদি এটি ব্যর্থ হয় তবে ওএস পুনরায় ইনস্টল করুন। স্টার্টআপ মেরামত আপনার ক্ষেত্রে এক্সপি পুনরুদ্ধার করবে কিনা তা নিশ্চিত নয়।
সের্গেই ভ্লাসভ

@ স্টারফ্রি সেখানে অনেকগুলি বিসিডি সম্পাদক রয়েছেন, বিল্ট-ইন কমান্ড-লাইন ওয়ান ( bcdedit) সহ including আমি ভিজ্যুয়াল বিসিডি সম্পাদক নিজেই পক্ষপাতী। আপনি যদি কোনও উইন্ডোজ পরিবেশে প্রবেশ করতে পারেন তবে ভিজ্যুয়াল বিসিডি বুট ডিভাইস সেট করা বেশ সহজ করে তোলে। কমান্ড প্রম্পটটি (আমার মনে হয় এটি F11 বা কিছু ছিল) এবং bcdeditসেখানে ব্যবহার করে আপনি বুট ডিভিডি থেকে একই কাজ করতে পারেন । আপনি যদি ম্যানুয়ালি এটি ঠিক করতে প্রস্তুত মনে করেন তবে আমি সিস্টেম মেরামতের বিরুদ্ধে সুপারিশ করব, যেহেতু আমার আগে সিস্টেম মেরামত অন ডিস্ক পুনরুদ্ধারের পরিবেশ সরিয়ে নিয়েছে।
বব

ধন্যবাদ সার্জি এবং @ বব। আমি এই উত্তরটি গ্রহণ করেছি কারণ এটি আমাকে কী ঘটছে তা সম্পূর্ণরূপে বুঝতে বাধ্য করেছিল। আমি এখন যা জানি তার একটি পৃথক উত্তরে নথিভুক্ত করেছি।
স্টারফ্রি

আমার অজ্ঞতাটি ক্ষমা করুন, তবে @ স্টারফ্রাই যদি বাইটটি এসডিএ (পার্টিশন sda1 নয়) এর উপর বাইট অনুলিপি করার জন্য, তবে পুরো ড্রাইভের sda হয়, তবে কেন পার্টিশন অফসেটগুলি আলাদা হবে?
বারলপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.