گراب: تفاوت بین نسخهها
(ویراستاری) |
|||
(۱۹ نسخهٔ میانی ویرایش شده توسط ۸ کاربر نشان داده نشده) | |||
سطر ۱: | سطر ۱: | ||
+ | '''گراب''' (به انگلیسی: GRUB) مخفف (GRand Unified Bootloader) یک برنامهٔ [[Bootloader|بارکنندهٔ راهاندازی]] است که قادر به راهاندازی طیف گستردهای از [[OS|سیستمعاملهای]] آزاد و انحصاری با استفاده از قابلیت بارگذاری زنجیرهای(chain-loading) است. | ||
+ | |||
+ | هنگام آغاز گراب، میتوان از رابط متنی یا فهرستی استفاده کرد. با استفاده از رابط متنی، میتوان مشخّصات دیسک و نام پروندهٔ [[Kernel|کرنل]] را به صورت دستی درج کرد. با بهره گیری از رابط فهرستی میتوان سیستمعاملهای مورد نظر را با استفاده از کلیدهای جهت نما برگزید. این فهرست، بر پایهٔ پروندهٔ پیکربندیای است که از پیش تهیه شده. همچنین میتوان از رابط فهرستی به رابط متنی یا برعکس تعویض نمود. | ||
+ | |||
+ | از نگارش ۹.۱۰ [[Ubuntu|اوبونتو]] به بعد از نگارش ۲ گراب به صورت پیشگزیده استفاده میشود. | ||
+ | |||
[[پرونده:GRUB2_(2015).png|512px|thumb|left| نمایی از نگارش ۲ گراب در ابتدای راهاندازی رایانه]] | [[پرونده:GRUB2_(2015).png|512px|thumb|left| نمایی از نگارش ۲ گراب در ابتدای راهاندازی رایانه]] | ||
[[پرونده:Grub_logo.png|128x|thumb|left| نشان گراب توسّط [[کارول کرنسکی]]]] | [[پرونده:Grub_logo.png|128x|thumb|left| نشان گراب توسّط [[کارول کرنسکی]]]] | ||
[[پرونده:Grub_logo2.png|128px|thumb|left| نشان دیگری از گراب توسّط کارول کرنسکی]] | [[پرونده:Grub_logo2.png|128px|thumb|left| نشان دیگری از گراب توسّط کارول کرنسکی]] | ||
− | + | {{الگو:clear}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=تاریخچه= | =تاریخچه= | ||
− | گراب از سال ۱۹۹۵ | + | گراب از سال ۱۹۹۵ شروع به کار کرد؛ زمانی که اریک بولن سعی در راهاندازی سیستمعامل [[GNU HURD|گنو هرد]] داشت. بولن و برایان فورد ویژگی راهاندازی چندتایی را طرّاحی کردند. |
− | سپس بولن تلاش کرد تا این قابلیت را به برنامهٔ بارکنندهٔ راهاندازی [[FreeBSD]] بیفزاید که به اندیشهٔ ساخت برنامهٔ بارکنندهٔ راهاندازی خودش افتاد. آنگاه گراب متولّد شد. اریک ویژگیهای زیادی را به این برنامه افزود و سرانجام در سال ۱۹۹۹، گراب به عنوان یک بستهٔ نرمافزاری رسمی گنو برگزیده | + | سپس بولن تلاش کرد تا این قابلیت را به برنامهٔ بارکنندهٔ راهاندازی [[FreeBSD]] بیفزاید که به اندیشهٔ ساخت برنامهٔ بارکنندهٔ راهاندازی خودش افتاد. آنگاه گراب متولّد شد. اریک ویژگیهای زیادی را به این برنامه افزود و سرانجام در سال ۱۹۹۹، گراب به عنوان یک بستهٔ نرمافزاری رسمی گنو برگزیده شد. |
در طول چند سال، ویژگیهای زیادی به گراب افزوده شد، ولی خیلی زود مشخّص شد که این برنامه با طرّاحی فعلی، قادر به ادامه نبوده و به نقطهای رسیده که افزودن ویژگیهای جدید، بدون خراب کردن ویژگی های فعلی ممکن نیست. حدود سال ۲۰۰۲، اکوجی کار را بر روی PUPA (مخفّف Preliminary Universal Programming Architecture for GNU GRUB) با هدف نوشتن دوبارهٔ هستهٔ گراب شروع کرد تا آن را تمیزتر، امنتر ، قویتر و قدرتمندتر کند . نام این پروژه به گراب ۲ تغییر یافت و نام گراب ۱ نیز به legacy تغییر یافت. پس از آن، نگهداری گراب ۱ کمی ادامه پیدا کرد، تا آخرین نگارش آن که در تاریخ ۲۰۰۵ عرضه شد. | در طول چند سال، ویژگیهای زیادی به گراب افزوده شد، ولی خیلی زود مشخّص شد که این برنامه با طرّاحی فعلی، قادر به ادامه نبوده و به نقطهای رسیده که افزودن ویژگیهای جدید، بدون خراب کردن ویژگی های فعلی ممکن نیست. حدود سال ۲۰۰۲، اکوجی کار را بر روی PUPA (مخفّف Preliminary Universal Programming Architecture for GNU GRUB) با هدف نوشتن دوبارهٔ هستهٔ گراب شروع کرد تا آن را تمیزتر، امنتر ، قویتر و قدرتمندتر کند . نام این پروژه به گراب ۲ تغییر یافت و نام گراب ۱ نیز به legacy تغییر یافت. پس از آن، نگهداری گراب ۱ کمی ادامه پیدا کرد، تا آخرین نگارش آن که در تاریخ ۲۰۰۵ عرضه شد. | ||
سطر ۲۵: | سطر ۲۴: | ||
* توابع ساده باید برای کاربر های نهایی سرراست باشند | * توابع ساده باید برای کاربر های نهایی سرراست باشند | ||
* قابلیتهای غنی برای پشتیبانی متخصّصان و طرّاحان کرنل | * قابلیتهای غنی برای پشتیبانی متخصّصان و طرّاحان کرنل | ||
− | * سازگاری با راهاندازی FreeBSD ،[[NetBSD]] ،[[OpenBSD]] و لینوکس | + | * سازگاری با راهاندازی FreeBSD ،[[NetBSD]] ،[[OpenBSD]] و لینوکس و [[HURD|هرد]] |
علاوه بر الزامات بالا، گراب ویژگی ها زیر را نیز داراست: | علاوه بر الزامات بالا، گراب ویژگی ها زیر را نیز داراست: | ||
سطر ۳۵: | سطر ۳۴: | ||
* دارا بودن رابط متنی انعطافپذیر | * دارا بودن رابط متنی انعطافپذیر | ||
* پشتیبانی از سامانه پروندههای گوناگون | * پشتیبانی از سامانه پروندههای گوناگون | ||
− | * | + | * پشتیبانی استخراج از حالت فشرده به صورت توکار |
* دسترسی به دادههای موجود در هر یک از قطعات نصبشده | * دسترسی به دادههای موجود در هر یک از قطعات نصبشده | ||
* شناسایی تمامی [[Ram|حافظههای اصلی]] | * شناسایی تمامی [[Ram|حافظههای اصلی]] | ||
− | * | + | * پشتیبانی از راهاندازی از طریق شبکه |
* پشتیبانی از [[Terminal|پایانه های]] راه دور | * پشتیبانی از [[Terminal|پایانه های]] راه دور | ||
=نصب= | =نصب= | ||
− | + | ==سیستم های [[Bios|بایاس]]== | |
− | <pre language="bash"> $ sudo grub-install device </pre> | + | |
+ | |||
+ | * در پارتیشن تیبل های [[GPT|جیپیتی]]/[[MBR|امبیآر]] پارتیشنی با مشخصات زیر برای جاسازی <code>core.img</code> گراب نیاز است: | ||
+ | :* حجم ۱ مگابایت | ||
+ | :* فرمت <code>ef02</code> در نرمافزار [[fdisk|Fdisk]] و <code>bios_grub</code> در نرمافزار [[parted|Parted]] | ||
+ | |||
+ | |||
+ | برای نصب گراب میتوانید از دستور زیر استفاده کنید : | ||
+ | |||
+ | <pre language="bash"> $ sudo grub-install --target=i386-pc device </pre> | ||
− | + | که عبارت <code>device</code> برابر با نام افزارهٔ مورد نظر است. به عنوان مثال : | |
− | <pre language="bash"> $ sudo grub-install /dev/sda </pre> | + | <pre language="bash"> $ sudo grub-install --target=i386-pc /dev/sda </pre> |
این دستور گراب را بر روی نخستین دیسک ذخیره، نصب میکند. | این دستور گراب را بر روی نخستین دیسک ذخیره، نصب میکند. | ||
+ | |||
+ | ==سیستم های [[UEFI|یوایافآی]]== | ||
+ | |||
+ | * برای نصب گراب در سیستم های [[UEFI|یوایافآی]] پارتیشن تیبل [[GPT|جیپیتی]] توصیه میشود. | ||
+ | * برای نصب گراب در سیستم های [[UEFI|یوایافآی]] به یک سیستم پارتیشن [[EFI|ایافآی]] نیاز است. | ||
+ | :''اگر ویندوز [[UEFI|یوایافآی]] از پیش نصب شده دارید، ویندوز قبلا این پارتیشن را ایجاد کرده است.'' | ||
+ | :این پارتیشن باید دارای مشخصات زیر باشد: | ||
+ | :* حجم: میانگین ۲۰۰ مگابایت | ||
+ | :* فرمت: <code>FAT32</code> | ||
+ | :* [[MountPoint|نقطهاتصال]]: <code>boot/efi/</code> | ||
+ | |||
+ | حال از دستور زیر برای نصب گراب استفاده کنید: | ||
+ | |||
+ | <pre language="bash"> $ sudo grub-install --target="system-type" --boot-directory="efi-mount" device </pre> | ||
+ | |||
+ | که عبارت | ||
+ | |||
+ | * <code>"efi-mount"</code> برابر با <code>boot/efi/</code> است | ||
+ | * <code>"system-type"</code> برابر با | ||
+ | :* برای سیستم های ۳۲ بیتی : <code>i386-efi</code> | ||
+ | :* برای سیستم های ۶۴ بیتی : <code>x86_64-efi</code> | ||
+ | * <code>device</code> برابر با نام افزارهٔ مورد نظر است. | ||
+ | |||
+ | برای مثال : | ||
+ | |||
+ | <pre language="bash"> $ sudo grub-install --target=x86_64-efi --boot-directory=/boot/efi /dev/sda </pre> | ||
+ | |||
+ | این دستور گراب را بر روی نخستین دیسک ذخیره، نصب میکند. | ||
=پیکربندی= | =پیکربندی= | ||
− | + | ||
+ | {{اخطار| هرگز از بستهی grub-customizer استفاده نکنید. این بسته با ایجاد پرونده های غیر استاندارد ممکن است باعث ناهماهنگی و خرابی در گراب شود.}} | ||
+ | |||
+ | روش تولید پیکربندی گراب در سیستم های [[UEFI|یوایافآی]] یا [[Bios|بایاس]] تفاوتی ندارد و با دستور زیر امکان پذیر است: | ||
+ | |||
+ | <pre language="bash">$ sudo update-grub</pre> | ||
+ | |||
+ | پرونده پیکربندی گراب در مسیر زیر ذخیره میشود: | ||
+ | |||
<pre>/boot/grub/grub.cfg </pre> | <pre>/boot/grub/grub.cfg </pre> | ||
− | لازم به ذکر است که هرگز نباید این پرونده را تغییر داد. تغییرات مورد نیاز باید در پروندههای <code>etc/ | + | لازم به ذکر است که هرگز نباید این پرونده را تغییر داد. تغییرات مورد نیاز باید در پروندههای <code>etc/dafault/grub/</code> یا در زیر شاخهٔ <code>/etc/grub.d/</code> ایجاد کرده و سپس پیکربندی گراب را دوباره تولید کرد. |
− | <pre | + | |
+ | در واقع دستور update-grub پروندهٔ پیکربندی گراب را با توجه به مقادیری که در <code>etc/dafault/grub/</code> و یا زیرشاخه های پوشه <code>/etc/grub.d/</code> تعیین شده اند تولید کرده و آن را در <code>boot/grub/grub.cfg/</code> میریزد. | ||
+ | راه دیگر استفاده از دستور grub-mkconfig است. این دستور پروندهٔ پیکربندی را با توجه به مقادیر تعیین شده تولید کرده و خروجی میدهد. پس می توان خروجی آن را به <code>boot/grub/grub.cfg/</code> ریخت.(در بعضی توزیع ها دستور update-grub وجود ندارد و به ناچار از این دستور باید استفاده کرد. هرچند همان update-grub هم به نوعی از mkconfig بهره میبرد.) | ||
+ | پس دستور زیر با استفاده از mkconfig پروندهٔ نهایی را میسازد. | ||
+ | <pre> | ||
+ | sudo grub-mkconfig -o /boot/grub/grub.cfg | ||
+ | </pre> | ||
+ | |||
+ | در پرونده <code>etc/default/grub/</code> هر خط برای پیکربندی یک ویژگی در گراب استفاده میشود، برای نمونه، برای این که صفحه گراب همیشه هنگام روشن شدن رایانه دیده شود، باید در خط زیر عبارت <code>hidden</code> به <code>menu</code> تغییر داده شود: | ||
+ | <pre>GRUB_TIMEOUT_STYLE=hidden</pre> | ||
+ | همچنین برای این که صفحه گراب به مدت زمان مشخصی بر حسب ثانیه نمایش داده شود، باید در خط زیر زمان تعیین شود: | ||
+ | <pre>GRUB_TIMEOUT=10</pre> | ||
+ | |||
+ | برای تغییر پارامتر های خط فرمان هنگام بوت شدن کرنل می توانید خط زیر را تغییر دهید.(در مثال زیر دو مولفه splash و quiet اضافه شده) | ||
+ | <pre> | ||
+ | GRUB_CMDLINE_LINUX=splash quiet | ||
+ | </pre> | ||
+ | برای آن که سایر سیستم عامل ها که توسط os-prober تشخیص داده شده اند در منوی گراب آورده شوند لازم است مقدار زیر در <code>etc/default/grub/</code> تعیین شود (حالت پیشفرض این متغیر به توزیع بستگی دارد) | ||
+ | <pre> | ||
+ | GRUB_DISABLE_OS_PROBER=false | ||
+ | </pre> | ||
− | [[ | + | =تعمیر= |
+ | برای نصب دوبارهٔ گراب روی رایانهای که گراب از پیش روی آن نصب بوده و دچار مشکل شده است [[GRUB/Recover|تعمیر گراب]] را ببینید. |
نسخهٔ کنونی تا ۶ شهریور ۱۴۰۳، ساعت ۲۲:۵۵
گراب (به انگلیسی: GRUB) مخفف (GRand Unified Bootloader) یک برنامهٔ بارکنندهٔ راهاندازی است که قادر به راهاندازی طیف گستردهای از سیستمعاملهای آزاد و انحصاری با استفاده از قابلیت بارگذاری زنجیرهای(chain-loading) است.
هنگام آغاز گراب، میتوان از رابط متنی یا فهرستی استفاده کرد. با استفاده از رابط متنی، میتوان مشخّصات دیسک و نام پروندهٔ کرنل را به صورت دستی درج کرد. با بهره گیری از رابط فهرستی میتوان سیستمعاملهای مورد نظر را با استفاده از کلیدهای جهت نما برگزید. این فهرست، بر پایهٔ پروندهٔ پیکربندیای است که از پیش تهیه شده. همچنین میتوان از رابط فهرستی به رابط متنی یا برعکس تعویض نمود.
از نگارش ۹.۱۰ اوبونتو به بعد از نگارش ۲ گراب به صورت پیشگزیده استفاده میشود.
تاریخچه
گراب از سال ۱۹۹۵ شروع به کار کرد؛ زمانی که اریک بولن سعی در راهاندازی سیستمعامل گنو هرد داشت. بولن و برایان فورد ویژگی راهاندازی چندتایی را طرّاحی کردند.
سپس بولن تلاش کرد تا این قابلیت را به برنامهٔ بارکنندهٔ راهاندازی FreeBSD بیفزاید که به اندیشهٔ ساخت برنامهٔ بارکنندهٔ راهاندازی خودش افتاد. آنگاه گراب متولّد شد. اریک ویژگیهای زیادی را به این برنامه افزود و سرانجام در سال ۱۹۹۹، گراب به عنوان یک بستهٔ نرمافزاری رسمی گنو برگزیده شد.
در طول چند سال، ویژگیهای زیادی به گراب افزوده شد، ولی خیلی زود مشخّص شد که این برنامه با طرّاحی فعلی، قادر به ادامه نبوده و به نقطهای رسیده که افزودن ویژگیهای جدید، بدون خراب کردن ویژگی های فعلی ممکن نیست. حدود سال ۲۰۰۲، اکوجی کار را بر روی PUPA (مخفّف Preliminary Universal Programming Architecture for GNU GRUB) با هدف نوشتن دوبارهٔ هستهٔ گراب شروع کرد تا آن را تمیزتر، امنتر ، قویتر و قدرتمندتر کند . نام این پروژه به گراب ۲ تغییر یافت و نام گراب ۱ نیز به legacy تغییر یافت. پس از آن، نگهداری گراب ۱ کمی ادامه پیدا کرد، تا آخرین نگارش آن که در تاریخ ۲۰۰۵ عرضه شد.
تا حدود سال ۲۰۰۷، توزیع های گنو/لینوکسی استفاده از گراب ۲ را در سطوح محدود پذیرفتند و تا سال ۲۰۰۹، بسیاری از آنها گراب ۲ را به عنوان بارکنندهٔ راهاندازی پیشگزیدهٔ خود برگزیدند.
ویژگیها
هدف اصلی گراب، همان گونه در در تاریخچه بیان شد، راهاندازی چندتایی است. به همین منظور اصول زیر در طرّاحی آن در نظر گرفته شده:
- توابع ساده باید برای کاربر های نهایی سرراست باشند
- قابلیتهای غنی برای پشتیبانی متخصّصان و طرّاحان کرنل
- سازگاری با راهاندازی FreeBSD ،NetBSD ،OpenBSD و لینوکس و هرد
علاوه بر الزامات بالا، گراب ویژگی ها زیر را نیز داراست:
- شناسایی قالبهای اجرایی گوناگون
- پشتیبانی از کرنلهای بدون پشتیبانی از راهاندازی چندتایی
- پشتیبانی از ماژول های گوناگون
- بارگذاری پروندهٔ پیکربندی
- فراهم ساختن رابط فهرستی
- دارا بودن رابط متنی انعطافپذیر
- پشتیبانی از سامانه پروندههای گوناگون
- پشتیبانی استخراج از حالت فشرده به صورت توکار
- دسترسی به دادههای موجود در هر یک از قطعات نصبشده
- شناسایی تمامی حافظههای اصلی
- پشتیبانی از راهاندازی از طریق شبکه
- پشتیبانی از پایانه های راه دور
نصب
سیستم های بایاس
برای نصب گراب میتوانید از دستور زیر استفاده کنید :
$ 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/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
تعمیر
برای نصب دوبارهٔ گراب روی رایانهای که گراب از پیش روی آن نصب بوده و دچار مشکل شده است تعمیر گراب را ببینید.