এমবিআর: কোনও ড্রাইভ বুটযোগ্য কিনা তা BIOS কীভাবে সিদ্ধান্ত নেবে?


12

Askubuntu উপর এই প্রশ্নের উত্তর দিতে চেষ্টা করার সময়: কীভাবে আমি আনইনস্টল গ্রাব আমি পড়তে MBR- এ Wikipedia নিবন্ধটি এবং একটি কিছুটা সংশ্লিষ্ট প্রশ্নে নিখুঁত উত্তর superuser এখানে অবশ্য এক জিনিস এখনও আমার কাছে পরিষ্কার নয়:

কোন ড্রাইভ বুটযোগ্য কিনা তা ঠিক কী সিদ্ধান্ত নিতে পারে বায়োসকে? সিস্টেমে একাধিক ড্রাইভ ইনস্টল করা থাকলে কীভাবে বুট সিকোয়েন্স ড্রাইভ # 1 ড্রাইভ থেকে এড়িয়ে যায় এবং # 2 ড্রাইভ থেকে বুট করার চেষ্টা চালিয়ে যায়?

আমার বোধগম্যতা হল যে একমাত্র বিআইওএস সাধারণত এমবিআরটিতে যাচাই করে তা হ'ল 512-বাইট সেক্টরের একেবারে শেষে এটির স্বাক্ষর এবং তারপরে এটি কেবল বুট সেক্টরের প্রথম 446 বাইটে অবস্থিত প্রাথমিক বুটলোডারটির নিয়ন্ত্রণ স্থানান্তর করে।

এটি কি বোঝায় যে বুট সেক্টরের প্রথম 446 বাইটে ডিস্কটি বুটযোগ্য না থাকলেও কিছু অর্থপূর্ণ বুটলোডার কোড থাকা আবশ্যক?

বিআইওএস # 1 ড্রাইভের বুটলোডারের কাছে নিয়ন্ত্রণ স্থানান্তর করার পরে যার কোনও "বুটেবল" পার্টিশন নেই - দ্বিতীয় ড্রাইভের বুটলোডারটি ঠিক কীভাবে ডাকা হবে?

দুঃখিত এটি যদি খুব প্রযুক্তিগত হয় :) সংক্ষিপ্ত প্রশ্নটি: "BIOS ঠিক কীভাবে কোনও ড্রাইভ এড়িয়ে যায় এবং পরেরটি থেকে বুট করার চেষ্টা করে?"

উত্তর:


16

কোন ড্রাইভ বুটযোগ্য কিনা তা ঠিক কী সিদ্ধান্ত নিতে পারে বায়োসকে?

BIOS- র সিদ্ধান্ত নেয় তাহলে একটি ড্রাইভ 16-বাইট পার্টিশন রেকর্ড, বর্তমান উপর ভিত্তি করে বুট করা যায় পরে উপস্থিত MBR কোড এলাকা (একটি টেবিল অনুষ্ঠিত 446 থেকে শুরু তম বাইট)। প্রতিটি পার্টিশন রেকর্ডের প্রথম বাইটটি ড্রাইভের বুটযোগ্য স্থিতিটি উপস্থাপন করে (এবং এটি 0x80বুটযোগ্য হিসাবে সেট করা থাকে, 0x00না হলে)। কিছু বায়োসগুলি এমবিআরের অন্যান্য অংশগুলি (যেমন পার্টিশনের ধরণ, চেকসাম) পরীক্ষা করতে পারে তবে মূল প্রয়োজনীয়তাটি বুটেবল ফ্ল্যাগ।

সিস্টেমে একাধিক ড্রাইভ ইনস্টল করা থাকলে কীভাবে বুট সিকোয়েন্স ড্রাইভ # 1 ড্রাইভ থেকে এড়িয়ে যায় এবং # 2 ড্রাইভ থেকে বুট করার চেষ্টা চালিয়ে যায়?

এটি বাস্তবায়ন নির্ভর and বেশিরভাগ ক্ষেত্রে, বিআইওএস আপনার সেট করা ক্রম অনুযায়ী প্রতিটি স্টোরেজ মাধ্যমটি অনুসন্ধান করবে এবং নির্ধারণ করবে যে এটি ডিভাইসটি (এমবিআর ডেটার মাধ্যমে) বুট করতে পারে কিনা। যদি এটি পারে তবে তা করে - যদি না হয় তবে এটি অন্যান্য ডিভাইসগুলির মাধ্যমে লুপিং চালিয়ে যেতে পারে (আবার, আপনি নির্বাচিত ক্রমে)।

বিআইওএস # 1 ড্রাইভের বুটলোডারের কাছে নিয়ন্ত্রণ স্থানান্তর করার পরে যার কোনও "বুটেবল" পার্টিশন নেই - দ্বিতীয় ড্রাইভের বুটলোডারটি ঠিক কীভাবে ডাকা হবে?

একবার কোনও বৈধ বুট ডিভাইস পাওয়া গেলে (যেমন বুটেবল পতাকা সেট হয়ে যায় এবং অন্যান্য অতিরিক্ত চেকগুলি পাস হয়), বিআইওএস এমবিআর সেক্টরটি র‌্যামে অনুলিপি করে। বিআইওএস তারপরে এই অবস্থানের শুরুতে ( JUMPনির্দেশ ব্যবহার করে ) নির্দেশ পয়েন্টারটি স্থানান্তরিত করে , যেখানে এমবিআর কোড বিভাগটি অবস্থিত, এবং কম্পিউটারটি শুরু হয়।

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

আমার বোধগম্যতা হল যে একমাত্র বিআইওএস সাধারণত এমবিআরটিতে যাচাই করে তা হ'ল 512-বাইট সেক্টরের একেবারে শেষে এটির স্বাক্ষর এবং তারপরে এটি কেবল বুট সেক্টরের প্রথম 446 বাইটে অবস্থিত প্রাথমিক বুটলোডারটির নিয়ন্ত্রণ স্থানান্তর করে।

এটি সঠিক, যদিও এটি লক্ষ করা উচিত যে বেশিরভাগ আধুনিক বায়োসগুলি একটি জিইউডি পার্টিশন টেবিলের পাশাপাশি পুরানো, প্রচলিত এমবিআর-স্টাইলের সারণীও সন্ধান করবে।

এটি কি বোঝায় যে বুট সেক্টরের প্রথম 446 বাইটে ডিস্কটি বুটযোগ্য না থাকলেও কিছু অর্থপূর্ণ বুটলোডার কোড থাকা আবশ্যক?

না , তবে ড্রাইভে অবশ্যই একটি বৈধ এমবিআর বা জিআইডি পার্টিশন টেবিল থাকতে হবে - অন্যথায়, এটি কম্পিউটার দ্বারা সনাক্ত করা যাবে না। এমবিআর কোড অংশটি সত্যই ফাঁকা থাকতে পারে, ড্রাইভের প্রথম সেক্টরে অবশ্যই একটি সুসংহত এমবিআর / জিপিটি থাকতে হবে।


খুব বিস্তারিত উত্তরের জন্য ধন্যবাদ। সুতরাং বৈধ বুটযোগ্য ডিভাইসের মানদণ্ডটি কি পার্টিশন টেবিলের বুটযোগ্য পার্টিশনের উপস্থিতি এবং কিছু "অন্যান্য অতিরিক্ত চেক" রয়েছে? আমি কিছুটা বিভ্রান্ত কারণ আস্কউবুন্টু সম্পর্কিত মূল প্রশ্নে লেখক দেখিয়েছেন যে ড্রাইভের সমস্ত পার্টিশন বুটযোগ্য নয় এবং এখনও তিনি ভাঙা গ্রুব দ্বারা সৃষ্ট ত্রুটিটি দেখেছেন - যা BIOS দ্বারা আদৌ চাওয়া উচিত হয়নি should কারণ ড্রাইভটি "বুটেবল" মানদণ্ডগুলি পূরণ করে না, সুতরাং BIOS এর কেবল ড্রাইভটি এড়িয়ে যাওয়া উচিত ছিল এবং পরেরটিতে যেতে হবে
সের্গেই

@ সার্জি আমি এই প্রশ্নটির দিকে চেয়েছি এবং আমি অনিশ্চিত। এমনটি হতে পারে যে উপস্থিত MBR দূষিত হয়, অথবা বুটেবল পতাকা (কীভাবে করবেন নিশ্চিত নন একটি অবৈধ মান সেট করা হয় fdiskসেই ক্ষেত্রে হ্যান্ডেল করা হবে, যদিও মূল সংস্করণ করেনি পতাকা অবৈধ উপস্থিত MBR হেডার)। আমি ওপিকে কাঁচা এমবিআর শিরোনাম পোস্ট করার পরামর্শ দিয়েছি, তবে সে বুট করার যোগ্য পতাকাটি "টগল" করতে বাছাই করতে (ম্যানুয়ালি পতাকাটি সেট / রিসেট করতে) চাইতে পারে।
ব্রেকথ্রু

মনে রাখবেন যে BIOS কোড জেনেরিক নয়। এটি প্রতিটি মেইনবোর্ডের সাথে সুনির্দিষ্ট, সুতরাং এটি জানেন যে কোন ধরণের ড্রাইভগুলি কোন বন্দরগুলির সাথে সংযুক্ত থাকতে পারে।
ল্যাটিনসইউড

এই উত্তর সম্পূর্ণ সঠিক নয়। এফডব্লিউআইইউ, একটি সক্রিয় পার্টিশনের জন্য যাচাই করা হচ্ছে এবং "ডিফল্ট" এমবিআর বুট কোডটি বিআইওএস নয় এমনটি কী। নিওসমার্ট আরও প্রশংসনীয় বর্ণনা উপস্থাপন করেছেন : “আইবিএম-সামঞ্জস্যপূর্ণ পিসিগুলিতে (মূলত সবকিছু) 512-বাইট এমবিআর এর চূড়ান্ত দুটি বাইটকে বুট স্বাক্ষর বলা হয় এবং নির্বাচিত বুট ড্রাইভটি আসলে বুটেবল কিনা তা নির্ধারণের জন্য বিআইওএস দ্বারা ব্যবহৃত হয় বা না." শেষ অংশটি ঠিক ভুল। লিগ্যাসি BIOS জিপিটি (উপযুক্ত বিআইওএস বুট কোড সহ) থেকে বুট করতে পারে, কারণ এটি মূলত "ফ্রি-স্টাইল" বুট করে।
ড্যানিয়েল বি

@ ড্যানিয়েলবি এই দুটি বিষয়ই সরাসরি উত্তরে সম্বোধন করা হয়েছে: " বিআইওএস সাধারণত এমবিআর পরীক্ষা করে এটির স্বাক্ষর 512-বাইট সেক্টরের একেবারে শেষে হয় এবং তারপরে এটি কেবল প্রথম 446 বাইটে অবস্থিত প্রাথমিক বুটলোডারটিতে নিয়ন্ত্রণ স্থানান্তর করে বুট সেক্টরের " এবং " সর্বাধিক আধুনিক BIOSes একটি জিইউডি পার্টিশন টেবিলের পাশাপাশি পুরানো, প্রচলিত এমবিআর-স্টাইলের সারণীও সন্ধান করবে
ব্রেকথ্রু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.