بوت لودر یک جزء ضروری سیستم عامل است که به مقداردهی اولیه سخت افزار و بارگذاری اجزای نرم افزار لازم برای فرآیند بوت موفقیت آمیز کمک میکند. اگر یک کامپیوتر دارای چندین سیستم عامل باشد، بوت لودرها یک رابط کاربری ارائه میدهند که به شما امکان میدهد سیستم عامل مورد نظر را انتخاب کنید. این مطلب بوت لودر GRUB را معرفی کرده و عملکرد و هدف آن را در یک سیستم لینوکس توضیح میدهد.
GRUB چیست؟
GRUB (با نام GNU GRUB یا GNU Grand Unified Bootloader نیز شناخته میشود) یک بوت لودر و مدیر بوت برای لینوکس و سایر سیستم عاملهای مبتنی بر یونیکس است. GRUB پس از اتمام تستهای سخت افزاری لازم توسط BIOS و لود آن از Master Boot Record (MBR) شروع میشود. پس از بارگذاری، GRUB کنترل سیستم را در دست گرفته و کرنل لینوکس را لود میکند.
دو نسخه از GRUB در حال حاضر برای لینوکس موجود است:
- GRUB Legacy (GRUB 1). این نسخه منسوخ شده از GRUB هنوز در برخی از توزیع های قدیمی لینوکس یافت میشود.
- GRUB 2 این نسخه GRUB از معماریهای کامپیوتر شخصی (مانند ARM) و سیستمهای فایل (مانند ReiserFS)، محیطهای RAID و LVM پشتیبانی میکند. اکثر توزیعهای فعلی از GRUB 2 استفاده میکنند. برای مثال، منوی GRUB در Linux Mint در زیر آمده است:
مقایسه Bootloader و Boot Manager
GRUB هم به عنوان بوت لودر و هم به عنوان مدیر بوت عمل میکند. این دو جزء در هنگام راه اندازی سیستم عملکردهای مجزایی را انجام میدهند.
- بوت لودر کرنل سیستم را از یک دستگاه ذخیره سازی (HDD یا SDD) روی RAM بارگذاری میکند. بوت لودرها همچنین به کارهای اولیه سخت افزاری مانند تنظیم حافظه و پیکربندی CPU کمک میکنند.
- مدیر بوت رابطی را به کاربر ارائه میکند که در آن پیکربندی بوت را مدیریت میکند و انتخاب میکند که کدام سیستم را بارگیری کند. این رابط میتواند یک منوی ساده پیشفرض GRUB باشد یا برای یک توزیع خاص سفارشی شود، به عنوان مثال، Kali Linux:
GRUB چه کاری انجام میدهد؟
هنگامی که بایوس GRUB را در حافظه بارگذاری کرد، GRUB یک منو با گزینه های بوت به کاربر ارائه می دهد. این گزینهها شامل سیستم عاملهای نصب شده بر روی سیستم و گزینههای بوت ویژه مانند safe mode میباشد.
پس از اینکه کاربر یک گزینه را انتخاب کرد یا زمان تعیین شده برای انتخاب منقضی شد، GRUB هسته مربوطه را بارگیری میکند. برای تکمیل موفقیت آمیز این فرآیند، GRUB پارامترهای زیر را در نظر می گیرد:
- BOOT_IMAGE این پارامتر مکان هسته لینوکس را مشخص می کند.
- initrd (initial ramdisk) طرحی که نشان میدهد چگونه یک سیستم فایل روت موقت را در RAM بارگذاری کنید.
- root محل فایل سیستم روت
- quiet یک گزینه پیکربندی برای پنهان کردن خروجی مربوط به سیستم در طول فرآیند boot-up.
- ro این پارامتر مشخص می کند که سیستم فایل باید به صورت فقط خواندنی نصب شود تا filesystem consistency check programs (fsck) فعال شود.
- splash صفحه نمایش برای نمایش در هنگام بوت شدن سیستم عامل
فرآیند بوت GRUB
فرآیند بوت GRUB شامل دو یا سه مرحله است:
- مرحله 1. مرحله اولیه GRUB درست پس از بارگذاری GRUB توسط BIOS از MBR شروع میشود. GRUB از فضای کوچک اختصاص داده شده برای کد اولیه در MBR برای شروع مرحله بعدی و پیچیدهتر استفاده میکند.
- مرحله 1.5. این مرحله اختیاری خواندن پویا فایل مرحله 2 را امکان پذیر می کند. GRUB از چندین فایل سیستم پشتیبانی می کند و سیستم فایل مربوط به فایل سیستمی که فایل مرحله دو در آن قرار دارد را نصب می کند. اگر مرحله 1.5 در حین نصب GRUB وجود نداشته باشد، مرحله 2 به صورت ایستا بارگیری می شود.
- مرحله 2 مرحله نهایی فرآیند بوت GRUB طولانی ترین و پیچیده ترین مرحله است. این مرحله شامل تمام مراحل ضروری برای راه اندازی سیستم است، از جمله:
- نمایش منوی بوت
- در حال بارگیری کرنل سیستم عامل
- شروع به کار کردن هسته
- مقداردهی اولیه فضای کاربری
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
ویژگیهای GRUB
GRUB یک بوت لودر همه کاره و قوی است که برای پشتیبانی از الزامات سیستم عاملهای مدرن طراحی شده است. در زیر لیستی از ویژگی های ضروری GRUB آمده است:
- معماری مدولار طراحی ماژولار GRUB محدودیتهای BIOS را کنار گذاشته و به آن امکان میدهد ویژگیهای بیشتری ارائه دهد.
- پیکربندی انعطاف پذیر با ویرایش فایل پیکربندی GRUB، کاربران میتوانند جنبههای مختلف سیستم خود را سفارشی کنند، مانند ورودی پیشفرض بوت، پارامترهای کرنل و مدتزمانهای وقفه.
- پشتیبانی از چند بوت GRUB یک منوی راهاندازی را فراهم میکند و انتخاب سیستمعاملی که باید اجرا شود را برای کاربران سیستمهای چندگانه آسان میکند.
- تشخیص دینامیک GRUB به صورت پویا سیستم عاملهای نصب شده را تشخیص میدهد و ورودیهای بوت را ایجاد میکند.
- بارگیری زنجیر(Chainloading). GRUB میتواند با سایر بوت لودرها مانند Windows Boot Manager و NTLDR ادغام شود.
- پشتیبانی از سیستمهای فایل پشتیبانی از فایل سیستم های مختلف (مانند ext2، ext3، ext4، Btrfs، HFS+، NTFS، FAT و ReiserFS) GRUB را به گزینهای مطمئن برای اجرای هر سیستم عامل مبتنی بر یونیکس تبدیل میکند.
- زبان برنامه نویسی. کاربرانی که نیاز به ایجاد تنظیمات بوت سفارشی و اتوماسیون دارند می توانند از زبان برنامه نویسی GRUB استفاده کنند.
- حفاظت از رمز عبور GRUB با ارائه محافظت از رمز عبور برای منوی بوت لودر، امنیت سیستم را افزایش می دهد.
- حالت نجات(Rescue mode) حالت نجات به کاربران کمک میکند تا مشکلات مربوط به بوت را عیب یابی و رفع کنند.
- پشتیبانی Legacy BIOS و UEFI هم با بایوس سنتی و هم با سیستم عامل مدرن UEFI کار می کند.
- بوت شبکه. GRUB از بوت PXE پشتیبانی می کند و به کامپیوترهای موجود در شبکه امکان می دهد توسط سرور بوت شوند.
چگونه به GRUB دسترسی داشته باشیم و آن را ویرایش کنیم؟
پیکربندی GRUB را تغییر دهید و رابط آن را با ویرایش فایل پیکربندی آن سفارشی کنید. پیکربندی GRUB از طریق یک برنامه ترمینال در سیستم شما انجام می شود و به امتیازات مدیریتی نیاز دارد.
برای شروع پیکربندی GRUB:
- فایل پیکربندی را در یک ویرایشگر متنی مانند Nano باز کنید:
sudo nano /etc/default/grub
فایل حاوی پارامترهایی است که نحوه رفتار GRUB را کنترل میکند. در اینجا چند تنظیمات معمول ویرایش شده وجود دارد:
- GRUB_DEFAULT یک فهرست عددی یا عنوان ورودی منو را به عنوان ورودی راهاندازی پیشفرض تنظیم میکند.
- GRUB_TIMEOUT تعداد ثانیهها را تعیین میکند که GRUB منوی بوت را قبل از راه اندازی گزینه پیش فرض نشان میدهد.
- GRUB_HIDDEN_TIMEOUT منوی GRUB را پنهان یا نشان میدهد.
- GRUB_CMDLINE_LINUX. پارامترهای خط فرمان کنل را تعریف میکند.
- GRUB_DISABLE_OS_PROBER. تشخیص پویا سیستم عامل را غیرفعال میکند.
- پس از اتمام تغییرات در فایل، آن را ذخیره کرده و از ویرایشگر خارج شوید. سپس از دستور زیر برای اعمال تغییرات در ترمینال استفاده کنید:
sudo update-grub
این دستور تغییرات در /etc/default/grub را اسکن میکند و آنها را در grub.cfg، فایلی که GRUB در طول فرآیند بوت استفاده میکند، اعمال می کند.
- کامپیوتر را ریستارت کنید تا تغییرات اعمال شوند.
ویرایش رابط GRUB
فایل پیکربندی همچنین میتواند ظاهر GRUB را در سیستم تغییر دهد. برای سفارشی کردن GRUB مراحل زیر را دنبال کنید:
- فایل پیکربندی را در یک ویرایشگر متن باز کنید:
sudo nano /etc/default/grub
- به دنبال پارامترهایی بگردید که ظاهر مدیر بوت GRUB را تعریف می کنند:
- GRUB_BACKGROUND این پارامتر به شما امکان میدهد یک image پس زمینه سفارشی تنظیم کنید. از سینتکس زیر استفاده کنید:
GRUB_BACKGROUND="[path-to-the-image]/[filename].jpg"
- GRUB_THEME اگر توزیع شما از تمهای GRUB پشتیبانی می کند، مسیر فایل تم را در اینجا تنظیم کنید.
پرونده را ذخیره کرده و خارج شوید.
- GRUB را به روز کنید:
sudo update-grub
سفارشیسازیها در ریستارت بعدی نشان داده میشوند.
سفارشی ساز GRUB
GRUB Customizer یک ابزار رابط کاربری گرافیکی برای تغییر ظاهر و احساس GRUB بدون ویرایش دستی فایلهای پیکربندی است. با دنبال کردن مراحل زیر آن را از طریق ترمینال نصب کنید:
- مخزن GRUB Customizer را اضافه کنید:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
Enter را فشار دهید تا اضافه شدن مخزن را تأیید کنید و منتظر بمانید تا فرآیند به پایان برسد.
- اطلاعات مخزن را به روز کنید:
sudo apt update
- GRUB Customizer را نصب کنید:
sudo apt install grub-customizer
Y را تایپ کرده و Enter را فشار دهید تا نصب شروع شود.
- برنامه را با تایپ کردن راه اندازی کنید:
grub-customizer
پنجره رابط کاربری گرافیکی GRUB Customizer ظاهر می شود.
در ادامه چند ویژگی ارزشمند سفارشی ساز GRUB آورده شده است:
- رابط کاربری ساده رابط کاربری گرافیکی برای تنظیم مجدد ورودیهای بوت در منوی بوت و تنظیم ورودی بوت پیش فرض
- گزینههای شخصی سازی برای تغییر image پس زمینه منوی GRUB و ظاهر کلی
- گزینههایی برای تنظیم مقدار وقفه
- روشی گرافیکی برای ویرایش پارامترهای کرنل و متغیرهای محیطی GRUB
- گزینههایی برای نصب GRUB در یک پارتیشن یا دستگاه خاص
نتیجه
پس از خواندن این مطلب باید در مورد GRUB، ویژگیها و نحوه پیکربندی آن بر اساس نیازهای خود اطلاعات بیشتری کسب کرده باشید. علاوه بر این در این مطلب GRUB Customizer را معرفی کردیم، یک ابزار رابط کاربری گرافیکی برای ویرایش پیکربندی GRUB
نظرتون برامون مهمه شما اولین نظر رو بنویسید