راهنمای گراب
ترجمه: ابراهیم محمدی
مشارکت کنندگان: سعید زبردست
گراب چیست؟
گراب يك Boot Loader است. Boot Loader اولين چيزی است كه بعد از راهاندازی سيستم اجرا میشود. گراب به شما اجازه میدهد كه سيستم عاملهای متفاوت و از هر كدام انواع مختلف را بر روی يك هارد ديسك واحد يا بر روی چندين هارديسك و بر روی يك سيستم داشته باشيد. براي مثال اگر شما هر دو سيستم عامل ويندوز و لينوكس را بر روي سيستم خود نصب كرده باشيد، گراب قبل ازهر دوی اين سيستمعاملها اجرا میشود و به شما اين اجازه را میدهد كه يكي از آن را برای بوت شدن انتخاب كنيد. شما همچنين با استفاده از گراب میتوانيد يك فلاپی بوت درست كنيد تا در صورت وقوع اتفاقهای غير منتظره از آن استفاده كنيد.
ایجاد نسخه پشتیبان از تنظیمات گراب
دستور زیر را در ترمینال وارد کنید.
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.back
دستور بالا از فایل menu.lst یک پشتیبان تهیه میکند. بدین شکل در صورت بروز مشکل میتوانید تنظیمات گراب را به حالت قبل بازگردانید.
ویرایش فایل menu.lst
برای امکان ایجاد ویرایش در فایل menu.lst و با توجه به آنکه از کدام خانواده اوبونتو استفاده میکنید، دستور مناسب را در ترمینال وارد کنید. بدین صورت فایل menu.lst آماده ویرایش میباشد.
اوبونتو
sudo gedit /boot/grub/menu.lst
کوبونتو
sudo kate /boot/grub/menu.lst
زوبونتو
gksudo mousepad /boot/grub/menu.lst
تغییر گزینههای بوت در گراب
اگر شما نياز داشته باشيد تا براي تغيير گزينه بوت يا انتخاب يك هسته متفاوت به داخل منوی گراب وارد شود، بايد بلافاصله بعد از اجرای گراب دكمه ESC را فشار دهيد. به طور پيشفرض شما بايد دكمه ESC را خيلي سريع فشار دهيد. براي افزايش اين زمان شما بايد فايل menu.lst را ويرايش كنيد و زمان وارد شده در قسمت timeout را كه برچسب ثانيه است را زياد كنيد.
همچنين شما میتوانيد اين منو را هميشه در هنگام اجرای گراب داشته باشيد. براي اين كار، با برداشتن # از ابتدای 'hiddenmenu' آن را از حالت توضيحات خارج كنيد.
بعد از فشار دادن ESC ليستی از هستهها و سيستم عاملهایی كه شما قادر به بوت كردن سيستم به وسيله آنها هستید، به شما ارائه خواهد شد. براي اصلاح گزينه بوت، سيستم عاملی كه میخواهيد ويرايش كنيد را انتخاب و سپس دكمه 'e' را فشار دهيد. در آنجا خطهایی كه با 'savedefault' , 'quiet , 'initrd' , 'kernel' و 'root' شروع میشوند به شما نشان داده خواهد شد. براي داشتن يك عمليات بوت طولانی ، شما ميتوانيد خط 'quiet' را با انتخاب آن و زدن دكمه 'd' حذف كنيد. شما همچنين بايد خط 'kernel' را انتخاب و با زدن دكمه 'e' اين خط را ويرايش و كلمه 'splash' را از انتهای اين خط حذف كنيد. بعد از انجام اصلاحات لازم، شما میتوانيد با فشار دادن'b' سيستم را با سيستمعامل انتخابی خود بوت كنيد. تغييرات انجام شده موقتی بوده در هنگام راهاندازی مجدد اعمال نخواهد شد.
تذكر: اگر برنامه نصاب اوبونتو در هنگام نصب، سيستم عامل ديگری را بر روی سيستم شما تشخيص دهد، منوی گراب به طور پيشفرض به نمايش درخواهد آمد و زمان 'timeout' افزايش خواهد يافت، بنابراين انجام مرحله بالا غيرضروری خواهد بود.
فهرست هستههای Automagic
اوبونتو از يك ابزار به نام update-grub براي ايجاد تغييرات در menu.lst استفاده ميكند. update-grub به طور خودكار تمام هستههایی را كه شما در شاخه boot داريد شناسایی میکند و بر روی هر کدام تنظيمات مختلف سراسری را اعمال میكند. هر وقت كه شما هسته لينوكس را با استفاده از مخازن به روز میكنید update-grub برای تصحيح تنظيمات گراب اجرا میشود.
بخشهایی از menu.lst كه update-grub آنرا مورد توجه قرار میدهد قسمت مابين دو خط "### BEGIN AUTOMAGIC KERNELS LIST" و "### END DEBIAN AUTOMAGIC KERNELS LIST" میباشد. توضيحات بعد از دو # میآيد. به طور مثال:(## اين يك توضيح است). گزينههای جهانی بعد از يك # میآيند. مانند خط زیر:
# groot=(hd0,4)
متداولترين گزينه براي تغيير احتمالا گزينه groot میباشد. اين گزينه را در صورتی تغيير دهيد كه boot در پارتيشنی متفاوت از پارتيشن / قرار داشته باشد. قسمت مربوطه در همين مقاله را براي كسب اطلاعات بيشتر درباره پارتيشن متفاوت boot/ مطالعه كنيد. گزينه ديگر برای تغيير Kopt میباشد كه مربوط به تنظيمات هسته میباشد و به تمام هستههای موجود در menu.lst اعمال میگردد.
تنظيم پارامترهای هسته
در menu.lst شما خطی مانند زير خواهيد يافت.
# kopt=root=/dev/sda1 ro
اين خط شبيه توضيحات میباشد ولي'#' در ابتدای خط را حذف نكنيد.
نكته مهم: گراب اين خط را به عنوان توضيحات فرض میكند و آن را ناديده میگيرد ولی اين خط به عنوان يك پارامتر پيكربندی توسط upsate-grub برای ساخت محتوای فايلی كه گراب آنرا در هنگام بوت میخواند استفاده میشود.
اگر شما نياز به پارامترهای اضافی هسته داريد (به عنوان مثال شخصی از شما میخواهد تا عمليات بوت را براي آزمايش يك مشكل با پارامترهای خاصی امتحان كنيد.) كافی است آنها را به انتهای اين خط اضافه كنيد. به عنوان مثال براي اضافه كردن noapic:
# kopt=root=/dev/sda1 ro noapic
بعد از ويرايش فايل دستور زير را در ترمينال اجرا كنيد.
sudo update-grub
توجه داشته باشيد كه شما میتوانيد با فشار دادن 'e' در هنگام نمايش منوی گراب و ويرايش خط هسته، پارامترهای هسته را به صورت موقت تغيير بدهيد. همانطور كه میدانيد اين تغييرات فقط مختص عمليات بوت جاری میباشد و در راهاندازیهای بعد اعمال نمیگردد.
اگر boot در شاخه ديگری قرار داشته باشد
این قسمت به زودی تکمیل خواهد شد ...
تغییر دیسکی که گراب در آن نصب شده است
فرض کنید در سیستمتان دو هارد( SATA(/dev/sda و (PATA(/dev/hdaرادارید .میخواهیدسیستم از روی SATAبوت شود اما BIOS برای بوت PATAرا به SATA ترجیح میدهد .برای حل این مشکل مراحل زیر را دنبال کنید :
مرحله اول : یافتن (groot (GRUB root
گراب نام درایوهارادر فایل boot/grub/device.map /،به صورت جدولی که شامل نام گرابی (برای مثال(hd0))و نام لینوکسی (برای مثال (/dev/hda))،لیست میکند .باید بدانیم کهboot/ در کدام درایو و پارتیشن قرار دارد برای این منظور از دستور df /boot استفاده میکنیم .خروجی این دستور نام پارتیشن لینوکسی است که boot/ در آنجا قرار دارد که خیلی راحت میتوان این خروجی را با اطلاعات داخل فایل boot/grub/device.map /هماهنگ کرد .
برای مثال
$ df /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 46M 15M 30M 33% /boot
$ cat /boot/grub/device.map
(hd0) /dev/hda
(hd1) /dev/sda
در نتیجه groot باید بر روی (hda1,4)تنظیم شود.
نکته: شماره پارتیشن گرابی همواره یکی از معادل لینوکسی آن کمتر است بنابراین فایل menu.lst را به صورت زیر ویرایش میکنیم
## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd1,4)
مرحله دوم :یافتن kernel root
بایدبرای کرنل مشخص کنیم که / در کجا mount شده .برای این منظور از دستور/ df استفاده میکنیم .با استفاده از خروجی این دستور مقدار معادل kopt را در فایل menu.lst ویرایش میکنیم .
برای مثال :
$ df /
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 8.3G 5.0G 63% /
فایل menu.lst را به صورت زیر ویرایش میکنیم
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specifiv kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
# kopt=root=/dev/sda3 ro /
به طور خلاصه : groot محلی است که boot/ در آنجا قرار دارد و kopt=root محلی است که / در آنجا قرار دارد.
Boot Splash Image
گراب به شما اجازه میدهد تا از يك عكس در پسزمينه منوی گراب استفاده كنيد. شما ميتوانيد در بسته 'grub-splashimages' يك مجموعه عكس مناسب پيدا كنيد يا میتوانيد خودتان يك عكس براي اين كار بسازيد.
عكس بايد 488*640 پيكسل اندازه داشته باشد و بيش از 16 رنگ نداشته باشد (هر چند داشتن تعداد رنگ كمتر مانند 12 رنگ باعث میشود كه با انتخاب رنگ متفاوت براي متن منوی گراب نوشتههای منو خواناتر شود) و به صورت قالب gzipped xpm باشد.
از برنامه گیمپ میتوانيد برای تغيير اندازه عكس (Image -> Scale Image) و كاهش تعداد رنگ (Image -> Mode -> Indexed) استفاده كنيد. همچنين گيمپ قادر است تا عكس را به صورت xpm.gz ذخيره كند.
و یا در خط فرمان در صورتی که نرم افزار Image Magick نصب است استفاده نمایید :
sudo convert -resize 640x480 -colors 14 FILE_NAME.jpg splashimage.xpm
در انتها آن را با فرمت gz فشرده سازی نمایید :
sudo gzip splashimage.xpm
پيكربندی دستی
بعد از ساختن فايل مربوطه، خطي مانند زير را به menu.lst سيستم خود اضافه كنيد.
splashimage=(hd0,4)/boot/grub/splash.xpm.gz
يك ترفند سودمند براي اين قسمت ايجاد يك لينك از عكس واقعی با نام splash.xpm.gz میباشد.
cd /boot/grub
sudo ln -s my_image.xpm.gz splash.xpm.gz
گراب در هنگام بوت عكس را از داخل هارد ديسك لود میكند. عكس در داخل MBR وجود ندارد. اگر شما از لينك عكس استفاده كنيد ديگر مجبور به ويرايش menu.lst و نصب مجدد گراب برای تعويض عكس نخواهيد بود. شما فقط بايد لينك عكس را عوض كنيد. مطمئن شويد كه هيچ لينكی به فايل در پارتيشن متفاوتی اشاره نكند. براي مثال اگر شما boot را در پارتيشن مجزایی ساخته باشيد.
Splash Image به وسيله update–grub
دستور update–grub به طور خودكار عكس boot/grub/splash.xpm.gz را برداشته و فايل menu.lst را برای شما ويرايش میكند. update–grub مواظب hdx و شماره پارتيشن مناسب نيز خواهد بود. (شما نيازی به تايپ (hd0,4) نداريد.)
sudo apt-get install grub-splashimages
sudo ln -s /boot/grub/splashimages/my_image.xpm.gz /boot/grub/splash.xpm.gz
sudo update-grub
ساخت یک فلاپی بوت
ابتدا فلاپی را فرمت کرده و فایل سیستم FAT را در آن ایجاد میکنیم برای این کارها دستورات زیر را به ترتیب در ترمینال اجرا میکنیم
fdformat /dev/fd0
mkfs -t msdos /dev/fd0
برای کپی اطلاعات مورد نیاز در فلاپی آن را mount میکنم
sudo mount -t msdos /dev/fd0
اطلاعات مورد نیاز گراب را در فلاپی کپی میکنیم
sudo mkdir -p /mnt/floppy/boot/grub
sudo cp /boot/grub/stage* /mnt/floppy/boot/grub
sudo cp /boot/grub/menu.lst /mnt/floppy/boot/grub
در اینجا فلاپی را umount کرده ولی آن را از درایو خارج نمیکنیم
sudo umount /mnt/floppy
فلاپی برای نصب نهایی که نصب GRUB boot loader است آماده شده ، برای نصب نهایی وارد گراب میشویم
sudo grub
دستورات زیر را به ترتیب اجرا میکنیم
grub>root (fd0)
grub>setup (fd0)
grub>quit
فلاپی بوت ساخته شد
تغییر سیستم عامل پیش فرض
از این راهنما در صورتی استفاده کنید که دارای چند پارتیشن و سیستم عامل بر روی کامپیوتر خود باشید و میخواهید که سیستم عاملی را که به طور پیش فرض کامپیوتر شما بعد از روشن شدن به طور پیش فرض با آن راهاندازی میشود را تغییر بدهید.
ویرایش menu.lst
خطوط زیر را در فایل menu.lst پیداکنید.
## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
...
default 0
...
حال عدد صفر را به یک عدد که متناظر با گزینه شما از منوی گراب میباشد تغییر دهید. این نکته را در نظر بگیرید که شمارش از صفر شروع میشود. به طور مثال اگر شما فهرستی مانند زیر داشته باشید و بخواهید سیستم عامل پیش فرض خود را به Microsoft Windows XP Professional تغییر یدهید بای پارامتر default را به ۴ تغییر بدهید.
title Ubuntu, kernel 2.6.20-16-generic
...
title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
...
title Ubuntu, memtest86+
...
title Other operating systems:
...
title Microsoft Windows XP Professional
این نکته را فراموش نکنید که هر خطی حتی 'Other operating systems' که در ابتدای آن خط در فایل menu.lst کلیدواژه title به کار رفته است را باید در شمارش به حساب آورید.
شما میتوانید به جای تنظیم پارامتر default با یک عدد ، از کلیدواژه 'saved' استفاده کنید. با این کار انتخاب شما در آخرین بوت سیستم به عنوان انتخاب پیش فرض گراب قرار خواهد گرفت. برای اینکه گزینهای قابل یادآوری باشد باید کلیدواژه 'savedefault' را داشته باشد. این کلیدواژه به طور پیشفرض برای نسخه های مختلف هسته موجود در/boot قرارداده خواهد شد. البته این کلیدواژه برای حالتهای rercovery تنظیم نمیشود.
اخطار: اگر از dmraid استفاده میکنید ، پارامتر default را به کلیدواژه 'saved' تغییر ندهید. در صورت انجام اینکار قادر به بوت کردن سیستم خود نخواهد بود.
نکته: update-grub همیشه نسخههای جدید هسته را به ابتدای فهرست menu.lst اضافه میکند. ای کار باعث تغییر در ترتیب قرار گرفتن گزینههای menu.lst و بروز خطا در صورت استفاده شما از default x میشود.
اگر ترجیح میدهید تا یک سیستم عامل غیر از اوبونتو (ویندوز ، فدورا کور ، سوزه و ...) گزینه پیشفرض گراب قرار بگیرد ، گزینه آن را بالای قسمتی که مورد بررسی update-grub قرار میگیرد قرار دهید و پارامتر default را به صورت زیر تنظیم کنید.
...
### BEGIN AUTOMATIC KERNELS LIST
...
### END DEBIAN AUTOMATIC KERNELS LIST
...
بدین صورت گزینه مورد نظر شما همیشه در بالای دیگر گزینهها قرار خواهد داشت. شکل صحیح تنظیم در این حالت به صورت زیر است.
#
# Put static boot stanzas before and/or after AUTOMATIC KERNEL LIST
... exactly here ...
### BEGIN AUTOMATIC KERNELS LIST
...
default 0
...
بوت از طریق شبکه
اگر شما از LTSP یا ادوبونتو استفاده میکنید ، ممکن است که بخواهید سیستم خود را بوسیله کارت شبکه بوت کنید.
کارتهای شبکه مختلف احتیاج به rom مشخص برای بوت شدن از طریق آن را دارند. برای فهمیدن آنکه به کدامیک نیاز دارید ، دستور lsmod را در ترمینال اجرا کنید و سپس floppy خود را جستجو کنید.
سپس به www.rom-o-matic.com بروید و rom مناسب را بارگذاری کنید.
حال نوبت به ویرایش menu,lst میرسد. خطوط زیر را قبل از و یا بعد از اضافه کنید ، در غیر از این صورت تغییرات شما توسط بروزآوریهای امنیتی پاک خواهد شد.
title LTSP
root (hd0,2)
kernel /boot/(rom you get from rom-o-matic)
تعمیر گراب بعد از نصب ویندوز
برای شروع کار به یک توزیع زنده مانند اوبونتو یا ناپیکس نیاز خواهید داشت. سیستم را از روی سی دی بوت کنید.پس از بالا آمدن توزیع زنده باید ترمینال را باز کنید.
پس از باز شدن ترمینال دستور زیر را وارد کنید:
sudo grub
این نوشته ها را می بینید و خط دریافت کننده دستورات هم به شکل <grub در می آید:
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename.
حالا باید این دستور را وارد کنید:
find /boot/grub/stage1
این دستور به ما می گوید فایل های گراب کجا هستند و خروجی آن به این صورت است :
(hdX,Y)
شماره ای که به جای حرف X می نشیند، مشخص کننده هارد دیسک است (این شماره از صفر شروع می شود) و شماره ی ارائه شده در مکان Y شماره پارتیشن در آن دیسک است.
در این مرحله با دستور زیر مشخص می کنیم فایل های گراب در کدام پارتیشن هستند:
root (hdX,Y)
و سپس:
setup (hd0)
در صورتیکه از بیش از یک هارد دیسک استفاده می کنید، و قصد دارید گراب را روی هارد دیسکی غیر از هارد اول نصب کنید -هارد اول، هارد دیسکی است که سیستم شما، به طور معمول برای بوت شدن به آن مراجعه می کند.- شماره هارد دیسک مورد نظرتان را به جای 0 در دستور فوق وارد کنید. (توجه داشته باشید که نیازی نیست لینوکس شما الزاما در آن دیسک نصب شده باشد)
شماره دیسک ها در لینوکس از صفر شروع می شود و در بازه اعداد صحیح مثبت افزایش می یابد.
و در نهایت:
quit
کافی است کامپیوتر را دوباره راه اندازی کنید٬منوی گراب را می بینید.به همین سادگی.
پاک کردن گراب و نصب بوت لودر ویندوز
اگر به هر دلیلی دیگه نمیخواهید که از گراب و لینوکس استفاده کنید و میخواهید گراب را پاک کرده و از همان روش معمولی بوت شدن ویندوز استفاده کنید، سیستم رو با CD ویندوز XP بوت کنید و وقتی به مرحله شروع نصب رسید، به جای اینکه بزنید ویندوز شروع به نصب کنه، دکمه R را بزنید تا وارد Recovery بشید. از اون دستور زیر رو اجرا کنید و به پیغام های هشدار، جواب مثبت بدهید تا بوت لودر ویندوز جایگزین گراب بشه:
fixmbr
Super Grub Disk
خب تا کنون با مدیریت گراب اشنا شدید و فرامین دستی انرا میدانید اما برای مدیریت و تعمیر گراب در صورت داشتن چند سیستم عامل یک راهکار فوق سریع نیز وجود دارد انهم استفاده از یک دیسک کم حجم است زیر بنام سوپر گراب
انرا دانلود و رایت و بوت میکنید بسان یک لینوکس و از ان بهره میبرید
بدلیل حجم خیلی کم ( زیر 5 مگابایت ) میتوانید انرا روی یک مینی دیسک نیز رایت کنید و یا یک سی دی معمولی همچنین نسخ دیگری برای یو اس بی و یا فلاپی و ... از این سوپر گراب وجود دارد
برای اطلاعات بیشتر به سایت رسمی ان مراجعه کنید
همچنین این لینک دانلود اخرین نسخه سوپر گراب دیسک
موفق باشید