Stage 1.5 در فرآیند بوت لینوکس
سلام ببخشید یه مبحث توی بوت شدن لینوکس من نمی فهمم ممنون میشم راهنمایی کنید مرسی
فرآیند بوت شدن لینوکس :
وقتی سیستم روشن میشه برق به تمام سخت افزار ها
هارد دیسک ها و CPU و سایر اجزا میرسه
وقتی به CPU میرسه ، میاد BIOS رو که توی حافظه ROM قرار داره صدا میزنه ،
BIOS
میاد 2 تا کار انجام میده ، اول از همه یه پالس الکتریکی به تمام سخت افزار ها ارسال می کنه تحت عنوان Power on self تا سلامت دستگاه ها تست بشه ،
و این دستگاه ها جواب سالم بودن خودشون برمی گردونن و اگر همه چی اوکی باشه یک صدای بوق در هنگام استارت کامپیوتر می خوره .
مرحله دوم بایوس میاد از سخت افزار هایی که بوتیبل هستن طبق الویت که ما می تونیم تنظیمات بایوس مشخص کنم ، میره سراغ اون ( مثلا من چند تا فضای ذخیره سازی هارد دیسک 1 , هارد دیسک 2 , سی دی ، یو اس بی دارم
الویت اول ام گذاشتم هارد دیسک ۱ اول میاد سراغ این
stage 1 :
خب BIOS میره از MBR هارد دیسک ام ( کل MBR پونصد و دوازده بایته )
446 بایت اول اش که MBR Primary code هست می خونه و توی RAM قرار میده تا اجرا بشه . ( 64 بایت اش متا دیتاهای جدول پارتیشن نگه میداره
اون 446 بایت میاد توی ۶۴ بایت می گرده و پارتیشن که فعاله ( سیستم عامل توش نصبه ) آدرس سکتور شروع اش می خونه مثلا می فهمه که سکتور ۲۰۴۸ آدرس شروع پارتیشن است که سیستم عامل توی اون نصبه ،
حالا مسئله اینه که در این مرحله بوت لودر اولیه مون ، بیاد سکتور ۲۰۴۸ لود کنه توی RAM ( بوت لودر اصلی مون GRUB توی این سکتور است ) .
و بقیه مراحل دیگه اوکیه این بوت لودر اصلی میاد سیستم عامل لود می کنه و .....
گفته میشه که ما بین stage 1 ( همون بوت لودر اولیه که ۴۴۶ بایت mbr هستش که کارش لود کردن اولین سکتور پارتیشن فعال است ) و stage 2 ( همون GRUB یا بوت لودر اصلی لینوکس که این بوت لودر میاد در نهایت هسته کرنل لود می کنه توی RAM )
بین این دو استیج ، یه استیج واسط به اسم
Stage 1.5
هست که بلافاصله بعد از MBR و قبل از اولین پارتیشن سیستم قرار داره یعنی سکتور ۱ تا ۲۰۴۷ است . این استیج که شامل یه کد اجرایی است به این دلیل وجود داره که STAGE 1 چون حجم فضای خیلی محدودی داره توانایی خوندن فایل سیستم های پیشرفته نداره و یک چیز دیگه نمی تونه کل محتویات /boot/grub که همون بوت لودر اصلی مون هست بخونه و لود کنه توی RAM
ضعیفه میشه گفت .
سوال اول اینه که آیا لوکیشن stage 1.5 همیشه همین است ؟ ( یعنی بلافاصله بعد از MBR و قبل از اولین پارتیشن سیستم ) یا ممکنه لوکیشن اش تغییر کنه ؟؟؟
سوال دوم : اینکه وقتی stage 1 میاد سکتور اول پارتیشن فعال لود می کنه توی RAM ، مرحله بعدی که باید انجام بده اینه که stage 1.5 هم لود کنه توی RAM تا اجرا بشه ، اما مسئله اینه که آدرس فیزیکی این از کجا داره ؟؟؟ همون آدرس ۱ تا ۲۰۴۷ .
آیا در سکتور اول پارتیشن فعال آدرس Stage 1.5 مشخص شده ، آیا تعریف شده یا نه از قبل توی کد stage 1 تعریف شده؟؟؟
سوال بعدی ام اینه که : بعد از لود شدن stage 1.5 ، کار بوت لودر اولیه همون stage 1 تمومه پس از RAM خارج میشه ،
حالا الان توی RAM
دو تا چیزه
یکی سکتور اول پارتیشن فعال + کد استیج ۱.۵
اینجور که من فکر می کنم نمی دونم درسته یا نه ، استیج ۱.۵ آدرس بوت لودر اصلی استیج ۲ از سکتور اول پارتیشن فعال توی RAM می فهمه و شروع می کنه فایل های بیشتری از /boot / grub لود کردن در RAM ، آیا این درسته ؟؟؟؟
2 پاسخ
مرسی استاد ، الان کامل متوجه شدم فقط یه چند سوال دارم
اول اینکه : آدرس فیزیکی stage 1.5 توی کد stage 1 از قبل تعریف شده ، یعنی کدش گفته شده که بعد از اینکه سکتور اول پارتیشن فعال لود کردی حالا برو به این آدرس 30 کیلو بایت اول اینو لود کن توی RAM ، و کارت تموم و خارج شو از RAM ؟
و اینکه stage 1.5 فایل سیستم تمام پارتیشن ها داخل خودش داره یعنی کل ساختار درختی پارتیشن ها داخل اش است ؟ ( شامل فایل سیستم پارتیشن / ، فایل سیستم پارتیشن /boot و همه شون ؟ )
و خود stage 1.5 یک : آدرس پارتیشن فعال از طریق فایل سیستم های که داخل خودش داره می فهمه یا دو : از اون سکتور اول پارتیشن فعال که قبلا لود شده بود از اون کمک می گیره تا آدرس فیزیکی پارتیشن پیدا کنه ؟
اگه یک درست باشه ، یعنی مسیر /boot/grub خودش تو این فایل سیستم که داخل خودش داره میره جستجو می کنه و بعد که پیدا کرد ، آدرس اش میخونه که کجاست ، تا لودش کنه ؟
سلام ، Stage 1 میتونه بصورت مستقیم Stage 2 رو اجرا کنه اما جوری برنامه نویسی شده که بره Stage 1.5 رو اجرا کنه. GRUB Stage 1.5 تو ۳۰ کیلوبایت اول هارد درایو درست قبل از پارتیشین اول قرار گرفته که دنبال MBR یا همون Boot Sector میگرده. اگه این فضا در دسترس نباشه حالا به هر دلیلی مثل LVM ، GPT یا مشکلات Partition Table و ... در نهایت Stage 1.5 انجام نمیشه. Stage 1.5 شامل فایل سیستم درایور ها هستش که به Stage 1.5 این امکان رو میده تا Stage 2 رو به طور مستقیم از فایل سیستم یا مسیر های شناخته شده ای تو ساختار سلسله مراتبی گنو/لینوکس مثل boot/grub/ اجرا یا load کنه. Stage 2 هم در نهایت فایل های پیکربندی پیش فرض سیستم و بقیه ماژول ها رو در صورت لزوم بارگزاری می کنه.