| title | گراب |
|---|---|
| description | |
| published | true |
| date | 2025-07-18 16:55:54 UTC |
| tags | |
| editor | markdown |
| dateCreated | 2025-07-11 03:01:36 UTC |
گراب (به انگلیسی: GRUB) مخفف (GRand Unified Bootloader) یک برنامهٔ بارکنندهٔ راهاندازی است که قادر به راهاندازی طیف گستردهای از سیستمعاملهای آزاد و انحصاری با استفاده از قابلیت بارگذاری زنجیرهای (chain-loading) است.
هنگام آغاز گراب، میتوان از رابط متنی یا فهرستی استفاده کرد. با استفاده از رابط متنی، میتوان مشخصات دیسک و نام پروندهٔ کرنل را به صورت دستی درج کرد. با بهرهگیری از رابط فهرستی میتوان سیستمعاملهای مورد نظر را با استفاده از کلیدهای جهتنما برگزید. این فهرست، بر پایهٔ پروندهٔ پیکربندیای است که از پیش تهیه شده. همچنین میتوان از رابط فهرستی به رابط متنی یا برعکس تعویض نمود.
گراب از سال ۱۹۹۵ شروع به کار کرد؛ زمانی که اریک بولن سعی در راهاندازی سیستمعامل گنو هرد داشت. بولن و برایان فورد ویژگی راهاندازی چندتایی را طراحی کردند.
سپس بولن تلاش کرد تا این قابلیت را به برنامهٔ بارکنندهٔ راهاندازی FreeBSD بیفزاید که به اندیشهٔ ساخت برنامهٔ بارکنندهٔ راهاندازی خودش افتاد. آنگاه گراب متولد شد. اریک ویژگیهای زیادی را به این برنامه افزود و سرانجام در سال ۱۹۹۹، گراب به عنوان یک بستهٔ نرمافزاری رسمی گنو برگزیده شد.
در طول چند سال، ویژگیهای زیادی به گراب افزوده شد، ولی خیلی زود مشخص شد که این برنامه با طراحی فعلی، قادر به ادامه نبوده و به نقطهای رسیده که افزودن ویژگیهای جدید، بدون خراب کردن ویژگیهای فعلی ممکن نیست. حدود سال ۲۰۰۲، اکوجی کار را بر روی PUPA (مخفف Preliminary Universal Programming Architecture for GNU GRUB) با هدف نوشتن دوبارهٔ هستهٔ گراب شروع کرد تا آن را تمیزتر، امنتر، قویتر و قدرتمندتر کند. نام این پروژه به گراب ۲ تغییر یافت و نام گراب ۱ نیز به legacy تغییر یافت. پس از آن، نگهداری گراب ۱ کمی ادامه پیدا کرد، تا آخرین نگارش آن که در تاریخ ۲۰۰۵ عرضه شد.
تا حدود سال ۲۰۰۷، توزیعهای گنو/لینوکسی استفاده از گراب ۲ را در سطوح محدود پذیرفتند و تا سال ۲۰۰۹، بسیاری از آنها گراب ۲ را به عنوان بارکنندهٔ راهاندازی پیشگزیدهٔ خود برگزیدند.
هدف اصلی گراب، همانگونه در تاریخچه بیان شد، راهاندازی چندتایی است. به همین منظور اصول زیر در طراحی آن در نظر گرفته شده:
- توابع ساده باید برای کاربران نهایی سرراست باشند
- قابلیتهای غنی برای پشتیبانی متخصصان و طراحان کرنل
- سازگاری با راهاندازی FreeBSD، NetBSD، OpenBSD و لینوکس و هرد
علاوه بر الزامات بالا، گراب ویژگیهای زیر را نیز داراست:
- شناسایی قالبهای اجرایی گوناگون
- پشتیبانی از کرنلهای بدون پشتیبانی از راهاندازی چندتایی
- پشتیبانی از ماژولهای گوناگون
- بارگذاری پروندهٔ پیکربندی
- فراهم ساختن رابط فهرستی
- دارا بودن رابط متنی انعطافپذیر
- پشتیبانی از سامانه پروندههای گوناگون
- پشتیبانی استخراج از حالت فشرده به صورت توکار
- دسترسی به دادههای موجود در هر یک از قطعات نصبشده
- شناسایی تمامی حافظههای اصلی
- پشتیبانی از راهاندازی از طریق شبکه
- پشتیبانی از پایانههای راه دور
-
در پارتیشن تیبلهای جیپیتی/امبیآر پارتیشنی با مشخصات زیر برای جاسازی core.img گراب نیاز است:
- حجم ۱ مگابایت
- فرمت ef02 در نرمافزار Fdisk و bios_grub در نرمافزار Parted
برای نصب گراب میتوانید از دستور زیر استفاده کنید:
sudo grub-install --target=i386-pc deviceکه عبارت device برابر با نام افزارهٔ مورد نظر است. به عنوان مثال:
sudo grub-install --target=i386-pc /dev/sdaاین دستور گراب را بر روی نخستین دیسک ذخیره، نصب میکند.
-
برای نصب گراب در سیستمهای یوایافآی پارتیشن تیبل جیپیتی توصیه میشود.
-
برای نصب گراب در سیستمهای یوایافآی به یک سیستم پارتیشن ایافآی نیاز است.
-
اگر ویندوز یوایافآی از پیش نصب شده دارید، ویندوز قبلاً این پارتیشن را ایجاد کرده است.
-
این پارتیشن باید دارای مشخصات زیر باشد:
- حجم: میانگین ۲۰۰ مگابایت
- فرمت: FAT32
- نقطهاتصال: boot/efi/
حال از دستور زیر برای نصب گراب استفاده کنید:
sudo grub-install --target="system-type" --boot-directory="efi-mount" deviceکه عبارتها:
-
"efi-mount" برابر با boot/efi/ است
-
"system-type" برابر با:
- برای سیستمهای ۳۲ بیتی: i386-efi
- برای سیستمهای ۶۴ بیتی: x86_64-efi
-
device برابر با نام افزارهٔ مورد نظر است.
برای مثال:
sudo grub-install --target=x86_64-efi --boot-directory=/boot/efi /dev/sdaاین دستور گراب را بر روی نخستین دیسک ذخیره، نصب میکند.
اخطار: هرگز از بستهی grub-customizer استفاده نکنید. این بسته با ایجاد پروندههای غیر استاندارد ممکن است باعث ناهماهنگی و خرابی در گراب شود.
روش تولید پیکربندی گراب در سیستمهای یوایافآی یا بایاس تفاوتی ندارد و با دستور زیر امکانپذیر است:
sudo update-grubپرونده پیکربندی گراب در مسیر زیر ذخیره میشود:
/boot/grub/grub.cfg
لازم به ذکر است که هرگز نباید این پرونده را تغییر داد. تغییرات مورد نیاز باید در پروندههای /etc/default/grub/ یا در زیرشاخهٔ /etc/grub.d/ ایجاد شده و سپس پیکربندی گراب دوباره تولید شود.
در واقع دستور update-grub پروندهٔ پیکربندی گراب را با توجه به مقادیری که در /etc/default/grub/ و یا زیرشاخههای پوشه /etc/grub.d/ تعیین شدهاند تولید کرده و آن را در /boot/grub/grub.cfg میریزد. راه دیگر استفاده از دستور grub-mkconfig است. این دستور پروندهٔ پیکربندی را با توجه به مقادیر تعیین شده تولید کرده و خروجی میدهد. پس میتوان خروجی آن را به /boot/grub/grub.cfg ریخت. (در بعضی توزیعها مانند پارچ لینوکس دستور update-grub وجود ندارد و به ناچار از این دستور باید استفاده کرد. هرچند همان update-grub هم به نوعی از mkconfig بهره میبرد.) پس دستور زیر با استفاده از mkconfig پروندهٔ نهایی را میسازد:
sudo grub-mkconfig -o /boot/grub/grub.cfgدر پرونده /etc/default/grub/ هر خط برای پیکربندی یک ویژگی در گراب استفاده میشود، برای نمونه، برای اینکه صفحه گراب همیشه هنگام روشن شدن رایانه دیده شود، باید در خط زیر عبارت hidden به menu تغییر داده شود:
GRUB_TIMEOUT_STYLE=hidden
همچنین برای اینکه صفحه گراب به مدت زمان مشخصی بر حسب ثانیه نمایش داده شود، باید در خط زیر زمان تعیین شود:
GRUB_TIMEOUT=10
برای تغییر پارامترهای خط فرمان هنگام بوت شدن کرنل میتوانید خط زیر را تغییر دهید (در مثال زیر دو مولفه splash و quiet اضافه شده):
GRUB_CMDLINE_LINUX="splash quiet"
برای آنکه سایر سیستمعاملها که توسط os-prober تشخیص داده شدهاند در منوی گراب آورده شوند لازم است مقدار زیر در /etc/default/grub/ تعیین شود (حالت پیشفرض این متغیر به توزیع بستگی دارد):
GRUB_DISABLE_OS_PROBER=false
برای نصب دوبارهٔ گراب روی رایانهای که گراب از پیش روی آن نصب بوده و دچار مشکل شده است، بخش تعمیر گراب را ببینید.