گنو گراب

تاریخچه

گراب در ابتدا به وسیلهٔ اریش لوین و به عنوان بخشی از پروسه بوت سیستم عامل گنو هرد توسعه یافته به وسیلهٔ بنیاد نرم‌افزار آزاد توسعه می‌یافت. در ۱۹۹۹، Gordon Matzigkeit و Yoshinori K. Okuji گراب را به عنوان یک بسته نرم‌افزاری رسمی از پروژه گنو کردند و روند توسعه را برای عموم باز کردند.

ویژگی‌ها

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

گراب بسیار قابل حمل است. از فرمتهای اجرایی متفاوت پشتیبانی می‌کند و مستقل از ترجمه است. گراب از سیستم پرونده‌های معمول یونیکس، سیستم پرونده‌های ویندوز فت ان‌تی‌اف‌اس و LBA پشتیبانی می‌کند. گراب به کاربران اجازه می‌دهد تا محتویات فایل‌ها در سیستم پرونده‌های پشتیبانی شده را ببینند.

گراب می‌تواند با انواع واسط کاربری‌های مختلف استفاده شود. بسیاری از توزیع‌های لینوکس از امکان پشتیبانی گراب از رابط گرافیکی به منظور ارائه یک منوی بوت سفارشی با تصویر پس‌زمینه استفاده می‌کنند. رابط متنی گراب می‌تواند برای استفاده از درگاه سریال اصلاح شود در نتیجه یک ترمینال راه دور می‌تواند به یک بوت‌لودر دسترسی داشته باشد.

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

گراب از صفحه نمایش قابل مرور برای منوی بوت سیستم عامل‌های استفاده می‌کند. این به این معنی است که ۱۵۰ یا تعداد بیشتری گزینه بوت را می‌توان به راحتی افزودن آن‌ها به فایل پیکربندی menu.lst توسط گراب کنترل کرد. از کلیدهای جهتی می‌توان برای انتخاب سیستم عاملی که باید بوت شود استفاده کرد.

گراب از سیستم عامل‌هایی که قابلیت چند بوت ندارند نیز با استفاده از بارگذاری زنجیره‌ای (به انگلیسی:  chain loading) پشتیبانی می‌کند. گراب از دو یا سه خط فرمان متوالی برای بوت داس، ویندوز، لینوکس، بی‌اس‌دی یا سیستم سولاریس استفاده می‌کند که کار کردن با آن را بسیار آسان کرده‌است. بارگذاری زنجیره‌ای برای پشتیبانی از سیستم‌عامل‌های شبه یونیکس در گراب ایجاد شده‌است.

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

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

فرایند بوت

هنگامی که یک کامپیوتر روشن می‌شود، بایوس کامپوتر دستگاه اولیه قابل بوت (معمولا دیسک سخت) را پیدا می‌کند و برنامه خود راه‌انداز اولیه را از رکورد راه انداز اصلی یا MBR که ۵۱۲ بایت اول از دیسک سخت است بارگذاری می‌کند سپس کنترل را به این کد منتقل می‌کند.

نصب

یکی از ویژگی‌های کلیدی گراب این است که بدون اینکه به سیستم عامل دیگری نصب شود می‌تواند نصب شود. در این حالت به یک کپی از تصویر لینوکس برای چنین نصبی نیاز دارد. هنگام کار کردن به عنوان یک سیستم پایه و تنها گراب عملاً یک سیستم کوچک است که می‌تواند همه سیستم‌عامل‌های اصلی را همان‌طور که در بالا ذکر شده به وسیلهٔ بارگذاری زنجیره‌ای بوت کند.

برخلاف لودر لینوکس یا LILO نیازی به نصب مجدد گراب در رکورد راه انداز اصلی یا MBR یا پارتیشن‌ها بعد از تغییر در فایل پیکربندی نیست.

در لینوکس دستور grub-install برای نصب مرحله ۱ در رکورد راه انداز اصلی یا پارتیشن استفاده می‌شود. فایل پیکربندی گراب، مرحله ۲ (معمولاً) و فایل‌های دیگر باید در یک پارتیشن قابل استفاده باشند. اگر این فایل‌ها یا پارتیش غیرقابل دسترس شوند، مرحله ۱ کاربر را به واسط خط فرمان می‌فرستد.

نام و محل دیسک فایل پیکربندی گراب از سیستمی به سیستم دیگر متفاوت است. برای مثال در اپن سوزه و در دبیان (برای گراب ۱) فایل در مسیر /boot/grub/menu.lst است در حالی که در فدورا، جنتو و دبیان (برای گراب ۲) فایل در مسیر /boot/grub/grub.conf یا. /grub.cfg است. فدورا همچنین یک لینک نرم از /etc/grub.conf به /boot/grub/grub.conf برای سازگاری با FHS فراهم کرده‌است.

گراب را می‌توان در رسانه‌های جداشدنی مانند دیسک نوری (دسترسی بایوس و استاندارد El Torito)، فلاپی دیسک و فلش دیسک به منظور بالا آوردن یک سیستم که دیسک سخت ندارد یا از دیسک سخت نمی‌تواند بوت شود، نصب کرد.

توسعه

پراستفاده‌ترین نسخه گراب، نسخهٔ قدیمی آن (به انگلیسی:  GRUB Legacy) است. این نسخه هنوز رفع اشکال می‌شود اما امکانات جدید به این نسخه اضافه نمی‌شود. توسعه‌دهندگان گراب تمرکز خود را به گراب ۲، یک بازنویس مجدد با هدف ایجاد یک گنو گراب تمیزتر، قوی‌تر، و قابل حمل‌تر معطوف کرده‌اند. توسعه گراب ۲ با نام PUPA شروع شد. PUPA به وسیلهٔ آژانس توسعه فناوری اطلاعات (IPA) ژاپن پشتیبانی می‌شد. در سال ۲۰۰۲ هنگامی که نسخه ۰٫۹x گراب به گراب میراثی تغییر نام داد PUPA با توسعه گراب ۲ یکپارچه شد.

برخی از اهداف این پروژه عبارتند از پشتیبانی از پلتفرم‌های غیر x86، بین‌المللی کردن/محلی کردن، پشتیبانی از کاراکترهای غیر اسکی، ماژول‌های پویا، مدیرت حافظه، یک زبان اسکریپتی کوچک، چارچوب نرم‌افزار شیءگرا. اوبونتو گراب ۲ را به عنوان بوت‌لودر پیش‌فرض در نسخه ۹٫۱۰ خود به تصویب رساند.

ابزار پیکربندی گراب

ابزار نصاب در توزیع‌های مختلف اغلب ماژولهایی برای نصب و راه‌اندازی گراب دارد: برای مثال، یست ۲ در اپن سوزه، آناکوندا (به انگلیسی:  Anaconda) در توزیع‌های فدورا/ ردهت انترپرایز لینوکس. مدیر راه‌انداز (به انگلیسی:  StartUp-Manager) یک ویرایشگر پیکربندی گرافیکی گراب برای توزیع‌های دبیان بیس است. برای گراب ۲ ماژول کنترل کی‌دی‌ئی وجود دارد. GRLDR ICE یک ابزار کوچک برای ویرایش تنظیمات پیش‌فرض gldr از GRUB4DOS است.

ابزارها

ابزارهای گراب یک مجموعه از ابزارهای چندسکویی برای گراب، گراب ۲ و گراب برای داس (GRUB for DOS) است.