گراب

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو

گراب (به انگلیسی: GRUB) مخفف (GRand Unified Bootloader) یک برنامهٔ بارکنندهٔ راه‌اندازی است که قادر به راه‌اندازی طیف گسترده‌ای از سیستم‌عامل‌های آزاد و انحصاری با استفاده از قابلیت بارگذاری زنجیره‌ای(chain-loading) است.

هنگام آغاز گراب، می‌توان از رابط متنی یا فهرستی استفاده کرد. با استفاده از رابط متنی، می‌توان مشخّصات دیسک و نام پروندهٔ کرنل را به صورت دستی درج کرد. با بهره گیری از رابط فهرستی می‌توان سیستم‌عامل‌های مورد نظر را با استفاده از کلیدهای جهت نما برگزید. این فهرست، بر پایهٔ پروندهٔ پیکربندی‌ای است که از پیش تهیه شده. هم‌چنین می‌توان از رابط فهرستی به رابط متنی یا برعکس تعویض نمود.

از نگارش ۹.۱۰ اوبونتو به بعد از نگارش ۲ گراب به صورت پیش‌گزیده استفاده می‌شود.

نمایی از نگارش ۲ گراب در ابتدای راه‌اندازی رایانه
نشان گراب توسّط کارول کرنسکی
نشان دیگری از گراب توسّط کارول کرنسکی



تاریخچه

گراب از سال ۱۹۹۵ شروع به کار کرد؛ زمانی که اریک بولن سعی در راه‌اندازی سیستم‌عامل گنو هرد داشت. بولن و برایان فورد ویژگی راه‌اندازی چندتایی را طرّاحی کردند.

سپس بولن تلاش کرد تا این قابلیت را به برنامهٔ بارکنندهٔ راه‌اندازی FreeBSD بیفزاید که به اندیشهٔ ساخت برنامهٔ بارکنندهٔ راه‌اندازی خودش افتاد. آنگاه گراب متولّد شد. اریک ویژگی‌های زیادی را به این برنامه افزود و سرانجام در سال ۱۹۹۹، گراب به عنوان یک بستهٔ نرم‌افزاری رسمی گنو برگزیده شد.

در طول چند سال، ویژگی‌های زیادی به گراب افزوده شد، ولی خیلی زود مشخّص شد که این برنامه با طرّاحی فعلی، قادر به ادامه نبوده و به نقطه‌ای رسیده که افزودن ویژگی‌های جدید، بدون خراب کردن ویژگی های فعلی ممکن نیست. حدود سال ۲۰۰۲، اکوجی کار را بر روی PUPA (مخفّف Preliminary Universal Programming Architecture for GNU GRUB) با هدف نوشتن دوبارهٔ هستهٔ گراب شروع کرد تا آن را تمیزتر، امن‌تر ، قوی‌تر و قدرتمندتر کند . نام این پروژه به گراب ۲ تغییر یافت و نام گراب ۱ نیز به legacy تغییر یافت. پس از آن، نگه‌داری گراب ۱ کمی ادامه پیدا کرد، تا آخرین نگارش آن که در تاریخ ۲۰۰۵ عرضه شد.

تا حدود سال ۲۰۰۷، توزیع های گنو/لینوکسی استفاده از گراب ۲ را در سطوح محدود پذیرفتند و تا سال ۲۰۰۹، بسیاری از آن‌ها گراب ۲ را به عنوان بارکنندهٔ راه‌اندازی پیش‌گزیدهٔ خود برگزیدند.

ویژگی‌ها

هدف اصلی گراب، همان گونه در در تاریخچه بیان شد، راه‌اندازی چندتایی است. به همین منظور اصول زیر در طرّاحی آن در نظر گرفته شده:

  • توابع ساده باید برای کاربر های نهایی سرراست باشند
  • قابلیت‌های غنی برای پشتیبانی متخصّصان و طرّاحان کرنل
  • سازگاری با راه‌اندازی FreeBSD ،NetBSD ،OpenBSD و لینوکس و هرد

علاوه بر الزامات بالا، گراب ویژگی ها زیر را نیز داراست:

  • شناسایی قالب‌های اجرایی گوناگون
  • پشتیبانی از کرنل‌های بدون پشتیبانی از راه‌اندازی چندتایی
  • پشتیبانی از ماژول های گوناگون
  • بارگذاری پروندهٔ پیکربندی
  • فراهم ساختن رابط فهرستی
  • دارا بودن رابط متنی انعطاف‌پذیر
  • پشتیبانی از سامانه پرونده‌های گوناگون
  • پشتیبانی استخراج از حالت فشرده به صورت توکار
  • دسترسی به داده‌های موجود در هر یک از قطعات نصب‌شده
  • شناسایی تمامی حافظه‌های اصلی
  • پشتیبانی از راه‌اندازی از طریق شبکه
  • پشتیبانی از پایانه های راه دور

نصب

سیستم های بایاس

  • حجم ۱ مگابایت
  • فرمت ef02 در نرم‌افزار Fdisk و bios_grub در نرم‌افزار Parted


برای نصب گراب می‌توانید از دستور زیر استفاده کنید :

 $ sudo grub-install --target=i386-pc device 

که عبارت device برابر با نام افزارهٔ مورد نظر است. به عنوان مثال :

 $ sudo grub-install --target=i386-pc /dev/sda 

این دستور گراب را بر روی نخستین دیسک ذخیره، نصب می‌کند.


سیستم های یو‌ای‌اف‌آی

اگر ویندوز یو‌ای‌اف‌آی از پیش نصب شده دارید، ویندوز قبلا این پارتیشن را ایجاد کرده است.
این پارتیشن باید دارای مشخصات زیر باشد:

حال از دستور زیر برای نصب گراب استفاده کنید:

 $ 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 

این دستور گراب را بر روی نخستین دیسک ذخیره، نصب می‌کند.

پیکربندی

روش تولید پیکربندی گراب در سیستم های یو‌ای‌اف‌آی یا بایاس تفاوتی ندارد و با دستور زیر امکان پذیر است:

$ sudo update-grub

پرونده پیکربندی گراب در مسیر زیر ذخیره می‌شود:

/boot/grub/grub.cfg 

لازم به ذکر است که هرگز نباید این پرونده را تغییر داد. تغییرات مورد نیاز باید در پرونده‌های etc/dafault/grub/ یا در زیر شاخهٔ /etc/grub.d/ ایجاد کرده و سپس پیکربندی گراب را دوباره تولید کرد.

در واقع دستور update-grub پروندهٔ پیکربندی گراب را با توجه به مقادیری که در etc/dafault/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

تعمیر

برای نصب دوبارهٔ گراب روی رایانه‌ای که گراب از پیش روی آن نصب بوده و دچار مشکل شده است تعمیر گراب را ببینید.


اعمال تغییر در منوی گراب

برای تغییر تنظیمات گراب با ابزار گرافیکی از بستهٔ زیر استفاده کنید.


 $ grub-customizer