/ বুট পার্টিশন আসলে কি জন্য?


40

আমি লিনাক্স পার্টিশন এবং ফাইল সিস্টেমগুলিতে অপেক্ষাকৃত পুরানো পাঠটি পড়ছি ( এলপিক 1 টি শংসাপত্র বাইবেল )। এটা বলে:

লিনাক্স বুট লোডারগুলির কিছু সংস্করণ কোনও ডিস্কের প্রথম 1024 সিলিন্ডারের বাইরে থাকা কার্নেলটি অ্যাক্সেস করতে পারে না। ড্রাইভের শুরুতে / boot পার্টিশনটি স্থাপন করার পরে আপনি বুট-এ কার্নেলটি ব্যবহার করার সময় কোনও সমস্যা না হওয়ার বিষয়ে নিশ্চিত হতে পারেন। প্রথম পার্টিশনে থাকা অপারেটিং সিস্টেমের সাথে ডুয়াল বুটিং লিনাক্সের ক্ষেত্রেও এই সমস্যাটি প্রায়শই দেখা যায়।

কেন কোনও বুট লোডারটির " ডিস্কে প্রথম 1024 সিলিন্ডারের বাইরে কার্নেলের অ্যাক্সেস থাকবে না "?

এছাড়াও, " ড্রাইভের শুরুতে / বুট পার্টিশন স্থাপন " এর অর্থ কী?


এটি আর সত্য নয়, তাই আপনি কি historicalতিহাসিক কারণগুলি চান?
মুরু

হ্যাঁ, তবে লিনাক্স পার্টিশনে এখনও আমাদের / বুট ডিরেক্টরিটি রয়েছে?
SRYZDN

6
দাবীটি খুব আক্ষরিকভাবে পড়লে "আর সত্য হবে না" তবে এটির ক্ষেত্রে অনেকগুলি আধুনিক ডিস্ক লেআউট রয়েছে যা বেশিরভাগ বুটলোডার পড়তে পারে না। জেডএফএস অনেক কিছুই পাঠযোগ্য নয়; বিটিআরএফএস-অন-এলভিএম, একইভাবে। আপনার কার্নেল এবং initrd একটি সাধারণ ext3 / ext4 RAID1 এ রাখুন এবং প্রচুর মাথাব্যাথা এড়ানো যায়।
চার্লস ডাফি

মূলত BIOS দ্বারা বুট-লোডার জন্য প্রদান করা এপিআই হার্ডডিস্ক শুধুমাত্র ছিল থেকে লিনাক্স কার্নেলের পেতে রুম 1023 সেক্টর জন্য, অর্থাত ড্রাইভ শুরুতে। /bootপার্টিশন স্পষ্টভাবে তা নিশ্চিত করার জন্য কার্নেল লোড করার যোগ্য হবে যে এলাকায় হতে জারি করা হয়।
থোরবজর্ন রাভন অ্যান্ডারসন

উত্তর:


34

এটি লিনাক্সের চেয়ে অনেক পুরানো BIOS এবং বুটলোডার দ্বারা চাপানো একটি সীমাবদ্ধতা। বিআইওএস কেবল ডিস্কের প্রথম 1024 সিলিন্ডার অ্যাক্সেস করতে সক্ষম হবে ( সিলিন্ডার / মাথা / সেক্টর কী তা সম্পর্কে আরও তথ্যের জন্য এখানে দেখুন)। এই সীমাবদ্ধতাটি বুট লোডারগুলিতে প্রসারিত হবে যা তাদের সাধারণ প্রকৃতির কারণে তাদের নিজস্ব ডিস্ক ড্রাইভার নেই এবং ডিস্ক অ্যাক্সেস করার জন্য বিআইওএস পরিষেবাদি ব্যবহার করবে।

এর অর্থ বুটলোডার এবং কার্নেল উভয়ই (যেহেতু এটি লোড করা বুটলোডারের কাজ) এই সীমাবদ্ধতা সহ সিস্টেমে প্রথম 1024 সিলিন্ডারের মধ্যে থাকতে হবে। এটি করার একটি সহজ উপায় ছিল /bootকার্নেল সমেত একটি পৃথক পার্টিশন তৈরি করা এবং ড্রাইভের শুরুতে (সাধারণত এটি প্রথম পার্টিশন তৈরি করে) রেখে দেওয়া। এর অর্থ হ'ল এটি প্রথম 1024 সিলিন্ডারের মধ্যে শারীরিকভাবে বসবাস করবে, অবশ্যই পার্টিশনটি খুব বেশি বড় ছিল না।

সীমাবদ্ধতা আর কোনও সমস্যা নয় কারণ এটি কেবল পুরানো BIOS- এ প্রয়োগ হয়। এছাড়াও, অনেক আধুনিক বুটলোডার (যেমন GRUB) এর নিজস্ব ডিস্ক ড্রাইভার রয়েছে এবং তাই BIOS পরিষেবাদির উপর নির্ভর করার প্রয়োজন নেই। আধুনিক বুটলোডার /bootঅন্যান্য উদ্দেশ্যে ব্যবহার করতে পারে তবে পৃথক পার্টিশনে এবং প্রথম 1024 সিলিন্ডারের মধ্যে এটি আর প্রয়োজন হয় না (যদিও অনেকগুলি ক্ষেত্রে /bootপৃথক পার্টিশন থাকা প্রয়োজন)।


5
এটি সত্য, তবে বর্তমানে এটি লিখিতভাবে বোঝা যায় যে আধুনিক সিস্টেমগুলি পৃথকীকরণ ছাড়া করতে পারে /boot। এটি প্রায়শই অসত্য - বিশেষত LVM এবং অভিনব আধুনিক ফাইল সিস্টেম যেমন ব্লক-লেয়ার কার্যকারিতা সহ মূলরূপে নির্মিত।
চার্লস ডাফি

3
@ চারেলস, এমনটি ভাবেন না, এই সঠিক কারণে আমি আমার " এবং " এর তাত্ক্ষণিকতায় রাখার বিষয়ে সতর্ক ছিলাম ।
গ্রামীণ

@ চার্লসডুফি - আধুনিক সিস্টেমগুলি - এমনকি অভিনব fs স্তরগুলির সাথেও - /bootপ্রচলিত অর্থে ছাড়াই মোটামুটি সহজেই করা সম্ভব । /boottraditionতিহ্যগতভাবে এটি একটি বুটলোডারকে উত্সর্গীকৃত - তবে বিগত কয়েক বছরে নির্মিত বেশিরভাগ কম্পিউটারগুলি একটি বুটলোডার বিল্টইন নিয়ে ফার্মওয়্যারের সাথে আসে - যাইহোক, যে কোনও কারণেই, সাধারণ প্রচলিত পদ্ধতিতে এখনও অ্যাক্রোনিস্টিক বুটলডারগুলি পছন্দ করা grubএবং বন্ধুরা এর কার্যকারিতাটির পক্ষে এবং বাইপাস করতে পারে জটিলতা, আমার ধারণা। ফার্মওয়্যার বুটলোডারগুলির একটি ডেডিকেটেড পার্টিশন প্রয়োজন, যদিও - তবে এটির সাথে সাধারণত তেমন কিছু করার থাকে না /boot
মাইকজার্ভ

1
@ মিমকিজার, এহ? আপনি কি EFI উল্লেখ করছেন? EFI স্পষ্টভাবে FAT12, FAT16 এবং FAT32 সমর্থন করে; যদি জেডএফএসের মতো কোনও কার্নেল লোড করার চেষ্টা করা হয় তবে এটিকে এড়াতে এখনও একটি সহজ ফাইল সিস্টেমের প্রয়োজন। এর সাথে কিছু করার আছে কিনা /bootতা নিখুঁতভাবে কনফিগারেশন-নির্দিষ্ট।
চার্লস ডাফি

1
আসলে এটি সত্য নয় যে এটি আর কোনও সমস্যা নয়। আমি মাঝে মাঝে এই সমস্যাগুলি নিয়ে মোটামুটি নতুন মেশিনগুলি দেখতে পাই (যেমন 5 বছরের পুরানো)। মঞ্জুর, বিআইওএসগুলি সেখানে ফার্মওয়্যারের বোকামি টুকরো, তবে তারা এখনও বিদ্যমান।
Ruslan

23

ইতিহাস

/bootঅপারেটিং সিস্টেম দ্বারা ব্যবহৃত হয় না, তবে এর বুটলোডার দ্বারা এমন ফাইল রয়েছে । আপনি নিজেরাই বুটলোডারের উভয় ফাইলই পাবেন (যেমন /boot/grub/*গ্রাবের মতো ) এবং লিনাক্স কার্নেল ( /boot/vmlinuz*) এবং প্রায়শই একটি সম্পর্কিত initrd বা initramfs

লিগ্যাসি বিআইওএস ( একটি সাম্প্রতিক কম্পিউটারগুলিতে পাওয়া নতুন ইউইএফআইয়ের বিপরীতে ) পিসিতে, রমের সফ্টওয়্যার বুট ডিস্কের প্রথম 512 বাইট মেমোরিতে ( বুট সেক্টর ) লোড করে । কেবল 512 বাইট (সমস্তটির মধ্যে এমনকি কোডও রয়েছে: এর মধ্যে কিছুতে পার্টিশন টেবিলের মতো ডেটা রয়েছে) দিয়ে কোডটি বেশি কিছু করতে পারে না - সেখানে সত্যিকারের ডিস্ক ড্রাইভার থাকতে পারে না। এই জাতীয় সীমিত স্থানে যা করা যায় তা হ'ল আরও কোড লোড করার জন্য একটি বায়োএস ইন্টারফেস ব্যবহার করা। এই ইন্টারফেসটি ডিস্কে Nth সেক্টরটি লোড করার জন্য একটি কমান্ড সরবরাহ করে - এবং এন এর আকার সীমাবদ্ধ, সুতরাং কেবল ডিস্কের শুরুটি সেই পথে পৌঁছানো যায়।

বিআইওএস ইন্টারফেসটি প্রায় তিন দশক বা তার চারপাশে বেশ খানিকটা বিকশিত হয়েছে, তবে এর আকারের সীমাবদ্ধতাগুলি ডিস্কের আকারগুলি ধরে রাখতে লড়াই করেছে, ফলে পুরানো BIOSes এবং বুটলোডার 32MB, 512MB, 2GB, 8GB (এবং সম্ভবত অন্যান্য থ্রেশহোল্ডগুলি যা আমি মনে করি না)। সরাসরি ডিস্ক ড্রাইভ অ্যাক্সেসের জন্য প্রয়োজনীয় সমস্ত টুকরো লোড করতে বুটলোডারকে BIOS ইন্টারফেস ব্যবহার করতে সক্ষম হওয়া প্রয়োজন। বুটলোডারগুলিতে সাধারণত সমস্ত ডিস্ক নিয়ন্ত্রকের জন্য ড্রাইভার থাকে না, তাই লিনাক্স কার্নেল (এবং initrd / initramfs) লোড করা পর্যন্ত সমস্ত কিছু BIOS ইন্টারফেস ব্যবহার করতে হয় এবং এইভাবে ডিস্কের শুরুতে ফিট করতে হয়।

মনে রাখবেন যে এটি BIOS বা বুটলোডারের সীমাবদ্ধতা, লিনাক্স নিজেই বা বিতরণের নয়।

/bootআজ আলাদা করুন

সাম্প্রতিক বিআইওএস এবং সাম্প্রতিক বুটলোডার, বা ইউইএফআই সহ একটি সিস্টেমে আকারের সীমাবদ্ধতা আর প্রাসঙ্গিক নয়: ডিস্ক মাপগুলির এখন বেশিক্ষণ সময় ধরে রয়েছে। তবে অন্যান্য ব্যবহারের ক্ষেত্রেও পৃথক /bootপার্টিশনকে দরকারী করে তোলে useful এটি মূল সিস্টেমটিকে এমন একটি RAID ডিভাইসে থাকতে দেয় যা বুটলোডার সমর্থন করে না, বা এমন একটি ফাইল-সিস্টেম টাইপ যা বুটলোডার সমর্থন করে না। এটি মূল সিস্টেমকে একটি এনক্রিপ্ট করা ডিভাইসে থাকতে দেয়, যা লিনাক্স ডিক্রিপ্ট করতে পারে তবে বুটলোডার নয়।

এই সীমাবদ্ধতা এবং ব্যবহারের কেসের কোনওটি যদি আপনার ক্ষেত্রে প্রযোজ্য না হয়, /bootআলাদা পার্টিশন হিসাবে রাখা কার্যকর নয়। তবে তারা পর্যাপ্ত লোককে প্রভাবিত করে যে বেশিরভাগ বন্টন এটি সমর্থন করে।


22

উল্লিখিত BIOS সমস্যার পাশে অন্য কারণ হ'ল পৃথক /bootপার্টিশনটি /বুট লোডার বুঝতে না পারে এমন ভলিউমের জন্য ফাইল সিস্টেম ব্যবহারের অনুমতি দেয় (যার সাথে ব্লক তালিকার লোডিং সীমাবদ্ধ না করে lilo)।


ভার্চুয়াল মেশিনের ভিতরে লিনাক্স বুট করার সময় কি এটির বিশেষ প্রাসঙ্গিকতা থাকবে?
টম রাসেল

1
@ টমরসেল নং, সেই দিকটি সম্পর্কিত নয়।
হউক লেগেইন

18

বুটিং হার্ড হয়

বুট করা ... ভাল ... এটি সত্যিই সবচেয়ে শক্ত অংশ। প্রতিবার যখন কোনও কম্পিউটার বুট হয় তখন এটি মূলত নিজেকে নতুনভাবে পূরণ করে। এটি এর বিভিন্ন অংশগুলির সাথে নিজেকে পরিচিত করে তোলে এবং প্রতিটিটির জন্য এটির সক্ষমতা অর্জন করে। তবে এটি নিজের বুটস্ট্র্যাপ দ্বারা নিজেকে টানতে হবে, তাই কথা বলতে, প্রতি বার থেকে স্কয়ার এক থেকে।

বুট প্রক্রিয়া ডিজাইন করার সময় কৌশলটি মেশিনকে পর্যায়ক্রমে আনতে হয়। আপনার বুটটি অবশ্যই দ্রুত এবং নির্ভরযোগ্য হতে হবে এবং প্রতিবার এটি সম্পূর্ণ অজানা পরিবেশে দুটি জিনিসই হওয়া উচিত । আমি এমনকি সত্যিকারের / সুরক্ষিত মোড কথোপকথনেও উদ্যোগ নেব না (যা এটি এমনকি আমি বলতে পারতাম না তাও বলা যায় না) , তবে বুট করার মতো অনেক কিছুই চলছে। যেহেতু কম্পিউটারটি তার বিভিন্ন উপাদানগুলিকে প্রতিটি সময় স্নাতক পদক্ষেপে এটি করে। সম্ভবত এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ হ'ল অন বোর্ডের কোডটি চালানো থেকে অন-ডিস্ক কোড সম্পাদন করা বা অন্য কথায় - কার্নেল এক্সিকিউট হওয়া। এটি তখনই হয় যখন ফার্মওয়্যার (সম্ভবত) অপারেটিং সিস্টেমের কাছে আত্মসমর্পণ করে।

বহু বছর আগে এত ঘটনা ঘটেনি। এটি BIOS হিসাবে ব্যবহৃত হত সত্যই বেসিক ইন / আউট - নিয়মিত প্রোগ্রামগুলি পর্দা অঙ্কন এবং ডিস্ক অ্যাক্সেসের মতো জিনিসগুলির জন্য ফার্মওয়্যারের কাছে কল করত। এগুলিকে বাধা বলা হত - পুরানো টুপিগুলি তাদের নতুন ডট-ম্যাট্রিক্স বা ইউএসআরের জন্য প্রায়শই আইআরকিউ দেওয়ার ক্ষেত্রে পাওয়া আনন্দিত রোমাঞ্চের জন্য তাদের সেরা স্মরণ করতে পারে।

INT13H

বিআইওএস ডিস্ক অ্যাক্সেসের জন্য পরিষেবা হিসাবে অফার করে এমন বাধা ( বা INTসমাবেশ লিঙ্গে ) 13 এইচ সিরিজের ফাংশন functions ফার্মওয়্যার থেকে ডিস্কে ঝাঁপ দেওয়ার জন্য বুট প্রক্রিয়াতে বিআইওএস সিস্টেমগুলির জন্য এটি আজও ব্যবহৃত হয়।

একটি বায়োস সিস্টেম এটি আবিষ্কার করে এমন প্রতিটি ডিস্কের প্রথম কয়েকটি বাইট পরীক্ষা করে এবং এটি একটি মাস্টার বুট রেকর্ড ( বাMBR ) হিসাবে স্বীকৃত একটি প্যাটার্ন সন্ধান করবে । এটি কয়েক দশক পুরানো ডি-ফ্যাক্টো স্ট্যান্ডার্ড এবং এতে কিছুটা কাঁচা, এক্সিকিউটেবল বাইনারি রয়েছে যা ডিস্কের মাথায় লেখা থাকে written এমবিআর একটি বায়োএস ডিস্ককে বুটেবল হিসাবে চিহ্নিত করে। এটি যখন খুঁজে পাওয়া যায় তখন এটি চেক করা বন্ধ হয়ে যায়, এবং ব্যবহারিকভাবে কোনও চালাক কৌশল না করে আপনি যা পেয়েছেন তা হ'ল। এটি যখন এটির সন্ধান করে এটি এটিকে মেমোরিতে মানচিত্র করে এবং এটি কার্যকর করে (রিয়েল মোডে, তবে আমি এখনও সেখানে যাচ্ছি না)

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

বুট-লোডার প্রকৃত কার্নেলের মধ্যে পড়ে এবং executes যখন এটা মেমরি (আমরা সব প্রার্থনা এটা প্রত্যেক সময় হবে) , তাই একটি মাধ্যমে বায়োস জিজ্ঞাসা করে সম্ভবত কি করতে হবে INT13Hবিঘ্ন কল। এবং যদি এটি না হয় - প্রচুর ফ্যানসিয়ার বুটলোডারগুলি প্রচলিত অর্থে ফাইল সিস্টেমগুলি মাউন্ট করবে এবং কোডটি অন্যভাবে চালিত করবে - তবে সম্ভবত খুব কমই বুটলোডার দু'একটি না করে অভিনব হয়ে উঠেছে INT13H। প্রায়শই বুটলোডারগুলিকে নিজেদের - বা বিভিন্ন ধাপে নিজেদের চেইনলোড করতে হবে - কারণ 512 বাইটগুলি প্রথমে তাদের বরাদ্দ করা এমনকি তাদের প্রয়োজনের সাথেও খাপ খায় না।

চিকেন এবং ইজিজি

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

আপনি দেখুন, একবার কার্নেলটি কার্যকর হয়ে যায় এবং হার্ডওয়্যারটি অ্যাক্সেস এবং নিয়ন্ত্রণের জন্য এর সমস্ত অজস্র রুটিনগুলি শুরু করে, এই সমস্ত সমস্যাগুলি क्रमबद्धভাবে অদৃশ্য হয়ে যায় (বা, কিছুটা হলেও পরিবর্তন করুন) , কারণ আধুনিক ওএসগুলি কোনও সিস্টেমের সম্পূর্ণ নিয়ন্ত্রণ নেয়, তবে যতক্ষণ না তারা ফার্মওয়্যার অনুমতি দেবে ততক্ষণ সিস্টেমের সীমাবদ্ধতা প্রসারিত হয়। এটি অনেক কিছুই বলছে - বিআইওএস INT13H8086 সাল থেকে খুব বেশি পরিবর্তন হয়নি The কলটি একটি 8086 আসল। হ্যাঁ, সেখানে (অগণিত) এক্সটেনশানগুলি হয়েছে এবং অবশ্যই হ্যাকস রয়েছে, তবে নতুনত্বগুলি ...?

ভালো এবং ভালো

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

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

এটি এই বিড়াল এবং মাউস গেমটি আপনার প্রশ্নে উল্লেখ করা হয়েছে। বিআইওএস যখন তার নিখুঁত আকারের কারণে কোনও নির্দিষ্ট পয়েন্টের বাইরে কোনও ডিস্ক বুঝতে ব্যর্থ হয়, তখন আপনি যে কোনও ডেটা বুট-এ যেমন আপনার জন্য পুনরুদ্ধার করতে চান - যেমন একটি বুটলোডার বা কার্নেল - সম্ভবত সেই বিন্দুটি অতিক্রম না করাই ভাল। এখান /bootথেকেই এসেছে।

প্রকৃতপক্ষে আরও ভাল হতে পারে

আজকাল এই জাতীয় জিনিসগুলি BIOS এর মৃত্যুতে আপত্তিজনকভাবে তৈরি। এটি আগত 30 বছর ছিল, তবে এটি ইউইএফআই (বা ইএফআই 2.0) মানক দ্বারা বিগত কয়েক বছরে মূলত প্রতিস্থাপন করা হয়েছে । ইউইএফআই এক মিনিট থেকে একটি মাউন্ট সরবরাহ করে , এটি প্রোটেক্টেড মোডে সূচনা করে, এটি নিজস্ব বুটলোডার অন্তর্ভুক্ত করে, এটি রিবুট-ধ্রুবক ফ্ল্যাশ-মেমরি ভেরিয়েবল স্টোরেজ সরবরাহ করে, এটি কিছুটা আম্পটেন জেটাবাইট বা ডিস্ক প্রতি যা কিছু হ্যান্ডেল করার জন্য অনুমিত হয় ... এবং আরও অনেক কিছু অন্য। এটি নিখুঁত থেকে অনেক দূরে তবে এটি পূর্বসূরীর চেয়ে এটি একটি বিশাল উন্নতি।

এমনকি ডিস্ক-এনক্রিপশন বা স্তরযুক্ত ফাইল সিস্টেমগুলির সাথে জড়িত বিশেষায়িত বুটলোডারদের পক্ষে যুক্তিগুলি সমতল হয়ে যায় যখন আপনি বিবেচনা করেন যে এই সমস্ত কিছু অবশ্যই ওএস কার্নেল দ্বারা পরিচালিত করা উচিত, এবং আপনি যদি বুট এ একটি মাউন্ট সরবরাহ করেন তবে আপনি সর্বদা একটি স্পষ্ট- এটি কার্যকর করার জন্য শট (বিশেষত বিবেচনা করে যে লিনাক্স কার্নেল, এর ডিফল্ট কনফিগারেশনে এটি একটি নিজস্ব EFI- এক্সিকিউটেবল)

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


8

যে /bootডিরেক্টরিটি রয়েছে তা historতিহাসিকভাবে নির্ধারিত হয় এবং সেখান থেকে ফাইলসাইম হায়ারার্কি স্ট্যান্ডার্ডে "স্থির" থাকে । এই জাতীয় মান থাকার ফলে প্রোগ্রামগুলি (এবং সিসাদ্মিন) নির্দিষ্ট স্থানে নির্দিষ্ট ফাইলগুলি আশা করতে পারে। এই ক্ষেত্রে বুট প্রক্রিয়া সম্পর্কিত ফাইলগুলি।

/bootপুরানো BIOS'es যারা উপলব্ধ ছিল ড্রাইভের সম্পূর্ণ পরিসরে ব্লক / সেক্টর সূচী করতে সক্ষম ছিল না তাদের ডিস্কের শুরুতে একটি পার্টিশন থাকা। এ কারণে যে তথ্য লোড করা উচিত সেগুলি এমন একটি খাতে থাকা উচিত যা সূচিকৃত হতে পারে, সুতরাং পৃথক পৃথক পার্টিশন (নিম্ন সেক্টরের সংখ্যা সহ) /bootযার জন্য বায়োস অতিরিক্ত ডেটা / প্রোগ্রামগুলি লোড করতে পারে (যা পরিবর্তে পুরো সম্বোধনে সক্ষম ছিল) বিআইওএস ব্যবহার না করে ডিস্কের ব্যাপ্তি)।


6

পৃথক / বুট বিভাজন থাকাও খুব সুশৃঙ্খল হতে পারে। আমার মেশিনে, আমার অনেকগুলি ডিস্ট্রোস এবং ব্যাকআপ রয়েছে, তাদের প্রত্যেকের নিজস্ব পার্টিশন রয়েছে তবে তারা সকলেই একই / বুট পার্টিশনটি ভাগ করে, যেখানে সমস্ত ওএসের জন্য সমস্ত কার্নেল থাকে। এছাড়াও, সমস্ত ডিস্ট্রোস আমার একটিকে নির্দেশ করে এবং শুধুমাত্র লিলো কোডফের অনুলিপি / বুটে রয়েছে, তাই আমি কখনই অনুমান করতে হবে না যে আমি যখন কার্নেলগুলি যুক্ত করব তখন ডিস্ট্রোস যুক্ত করুন, যাই হোক না কেন হ্যাকটি কী চলছে। আমার লিলো কনফ থেকে একটি স্নিপ এখানে দেওয়া হয়েছে:

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y5--5-Debian1"
label  = y5:D1:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y8--5-Debian2"
label  = y8:D2:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=y11-5-Debian3"
label  = y11:D3:16.0-4

image  = /boot/vmlinuz-3.16.0-4-686-pae
initrd = /boot/initrd.img-3.16.0-4-686-pae
root   = "LABEL=w5--5-Debian1"
label  = w5:D1:16.0-4

... এটি কেবলমাত্র দুটি ডিস্কে আমার ডেবিয়ান ব্যাকআপ। কার্নেলের ট্র্যাক রাখা কত সহজ? (এখনই, একই কর্নেল ব্যবহার করে সমস্ত ব্যাকআপ)।


5

যদিও আধুনিক সিস্টেমে কোনও ফাইলের সেক্টরগুলি ডিস্কের যে কোনও জায়গায় অ্যাক্সেস করা যায়, তবুও বুট উপকরণগুলি তাদের নিজস্ব বুট বিভাজনের মধ্যে সীমাবদ্ধ রাখার বুদ্ধি বোধ করে, কেবল "সমস্ত ডিমকে একটি ঝুড়িতে রাখবেন না" এই মূলনীতি থেকে।

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

বুট পার্টিশনটি আপনাকে "উদ্ধার" বিকল্পের বিকল্প বিকল্প পার্টিশন মাউন্ট করার মতো বিকল্প দিতে পারে। এছাড়াও, যদি আপনি বিভিন্ন পার্টিশনে বিভিন্ন অপারেটিং সিস্টেমগুলি মাল্টি-বুট করেন? তারপরে বুট সামগ্রীগুলি কোনও সিস্টেমের সাথে সম্পর্কিত নয়। এটির নিজস্ব বিভাজন থাকা যুক্তিসঙ্গত। আপনি যে কোনও ওএস পার্টিশনকে অন্য কোনও ওএসের সাথে প্রতিস্থাপন করতে পারবেন, তবে বাকি ওএসগুলি বুট করতে সক্ষম হবেন।

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

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


5

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

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


4

আজকাল বুট বিভাজনের আরও একটি কারণ হ'ল:

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