محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

GRUB چیست؟ معرفی Grand Unified Boot Loader لینوکس به زبان ساده

قبلا در انجمن تخصصی فناوری اطلاعات ایران بصورت اجمالی مقایسه ای بر دو Boot Loader معروف لینوکسی LILO و GRUB داشتیم اما امروز می خواهیم بصورت ویژه به بررسی GRUB بپردازیم . یکی از واژه های جالبی که برای افراد تازه کار با محیط لینوکس همیشه کمی ترس در بر دارد واژه Boot Loader است. دلیل آن هم کاملا مشخص است ، افرادی که به تازگی با محیط لینوکس آشنا شده اند و با آن کار می کنند اکثر از محیط سیستم عامل ویندوز به لینوکس مهاجرت کرده اند ، در دنیای ویندوزی به هیچ عنوان تا به حال ممکن است اسم Bootloader را نیز نشنیده باشند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. GRUB یا Grand Unified Boot Loader چیست ؟

کاربران ویندوز فقط متوجه می شوند که ویندوز آنها Boot می شوند و از روندی که در پس زمینه Boot شدن این سیستم عامل طی می شود هیچ اطلاعی ندارند و برایشان این فرآیند کاملا نامحسوس است. برخی اوقات ممکن است به مشکلاتی در Boot سیستم بخورند و با استفاده از Windows Recovery Console مشکلات Boot را حل کنند اما در همین حد برایشان کفایت می کند. اما وقتی صحبت از لینوکس می شود و همه چیز قابل بررسی و مشاهده می شود ، فرآیند Boot شدن سیستم عامل و به ویژه نحوه Boot شدن یک سیستم عامل و نرم افزاری که اینکار را برای آنها انجام می دهد مهم می شود و اینجاست که تازه کاران باید با واژه Bootloader و نحوه عملکرد آن در لینوکس بیشتر آشنا شوند.

در این مقاله ما می خواهیم یک درک ابتدایی از عملکرد GRUB Bootloader که اصلی ترین Bootloader لینوکسی است به شما بدهیم. اگر تا کنون کمی با سیستم عامل لینوکس کار کرده باشید و حداقل با ساختار پارتیشن بندی ، فایل سیستم و ساختار آن و دایرکتوری های پیشفرض لینوکس آشنایی اولیه داشته باشید و کمی هم با دستورات خط فرمان اولیه لینوکس آشنایی پیدا کرده باشید ، گام بعدی این است که دانش خود را فراتر بگذارید و بدانید که GRUB که Bootloader اصلی لینوکس است چگونه کار می کند و اصلا منوی Boot ای که در زمان روشن کردن سیستم مشاهده می کنید چگونه ایجاد می شود و سیستم عامل چگونه Boot می شود و در نهایت اگر به مشکلات Boot در لینوکس برخورد کردید چگونه آنها را برطرف کنید ، اینکار با استفاده از تغییرات منوی GRUB انجام می شود و شما باید با این محیط و به ویژه کار با محیط های چند سیستم عاملی در GRUB آشنایی پیدا کنید.

GRUB یا Grand Unified Boot Loader چیست ؟

Boot Loader یک کد نرم افزاری است که قبل از اجرای سیستم عامل اجرا می شود و کمک می کند که سیستم عامل به درستی در سیستم اجرا و در محیط عملیاتی قرار بگیرد. Boot Loader ها معمولا روشی های مختلفی برای Boot کردن Kernel سیستم عامل ها دارند و همچنین امکاناتی را فراهم می کنند تا در صورت بروز مشکل برای فرآیند Boot سیستم عامل از طریق دستورات یا ارسال یک سری مقادیر به Kernel سیستم عامل مشکلات مربوطه را برطرف کنند تا Boot سیستم عامل به درستی انجام شود. اگر فرض را بر این بگذارید که یک کامپیوتر با سیستم عامل RedHat Enterprise Linux روشن شود ، سیستم عامل RedHat Enterprise Linux ای که روی سیستم نصب شده است ابتدا توسط Boot Loader از محل نصب به حافظه سیستم منتقل می شود تا شروع به کار کند.

برنامه Boot Loader یک کامپیوتر بر روی هارد دیسک آن کامپیوتر ذخیره شده است و وظیفه اصلی آن Load کردن Kernel سیستم عامل لینوکس و فایل های ضروری مورد نیاز برای Boot سیستم عامل به داخل حافظه RAM سیستم می باشد. اما توجه کنید که همه سیستم عامل ها از Boot Loader های مشابهی استفاده نمی کنند برای مثال RedHat Enterprise Linux از Boot Loader های مختلفی برای معماری های سخت افزاری کامپیوتر مختلف استفاده می کند ، در ادامه برخی از این معماری ها و Boot Loader های مورد استفاده در آنها در این سیستم عامل را مشاهده می کنید :

انواع Boot Loader های لینوکس

GRUB یا همان GRand Unified Boot Loader در واقع Boot Loader پیشفرض لینوکس برای معماری های AMD32 ، AMD64 ، Intel x86 و Intel 64T است .GRUB این امکان را به شما می دهد که سیستم عامل مورد نظرتان را در هنگام Boot سیستم انتخاب کنید و از همه مهمتر اینکه GRUB به شما اجازه می دهد که در زمان Boot شدن Kernel سیستم عامل به آن یک سری آرگومان ارسال کنید. در برخی موارد اینکار بسیار می تواند به شما کمک کند. برای مثال قبلا در انجمن تخصصی فناوری اطلاعات ایران با استفاده از GRUB و ارسال همین آرگومان پسورد سیستم عامل لینوکس را ریست کردیم. GRUB به نسبت Boot Loader قدیمی تر که به نام LILO وجود داشت ساختار پیچیده تری دارد اما طبیعتا پیشرفته تر و قابل اعتماد تر از LILO است.

تا اینجای کار متوجه شدیم که کار Boot Loader پیدا کردن Linux Kernel و سایر فایل های ضروری آن و Load کردن آن در حافظه است ، سپس همین Boot Loader هسته یا Kernel را Start می کند تا بتواند پردازش های خودش را انجام دهد. علاوه بر این Boot Loader وظیفه کنترل کردن چگونگی Boot سیستم را نیز بر عهده دارد ، اگر شما یک سیستم Dual Boot داشته باشید ، این Boot Loader است که به شما امکان انتخاب سیستم عامل مورد نظرتان در هنگام Startup را می دهد.

زمانیکه کامپیوتر Boot می شود BIOS سیستم که در حافظه ROM سیستم که یک حافظه فقط خواندنی است قرار دارد از رکورد اول هارد دیسک شما یا همان Master Boot Record یا MBR برنامه Boot Loader را فراخواهی می کند. البته برخی از نسخه های لینوکس وجود دارند که مستقیما اینکار را از حافظه Flash انجام می دهند و به سمت BIOS ارسال می کنند . به این موضوع توجه کنید که لینوکس ذاتا به گونه ای طراحی شده است که نیازی به Boot Loader نداشته باشد و مستقیما از طریق سکتورهای هارد دیسک Boot شود اما استفاده کردن از Boot Loader در لینوکس مزایای زیر را برای ما فراهم می کند :

  1. امکان Boot کردن چندین سیستم عامل یا Dual Boot
  2. امکان ارسال پارامتر یا آرگونان به کرنل سیستم عامل در هنگام Boot ( برای موارد رفع اشکال کاربردی است )
  3. امکان Load کردن Kernel های متفاوت بصورت Interactive ( زمانیکه می خواهید Kernel را بروز رسانی کنید کاربرد دارد )
  4. و ... ITPRO باشید

محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات