علی کنگرانی
علی کنگرانی
خواندن ۴ دقیقه·۳ سال پیش

Boot Manager In Linux

توضیح اینکه Boot Manager چیه و به چه دردی می خوره ؟

توضیح Boot loader یا Boot Manager، یک تیکه کد هستش که در زمان روشن شدن سیستم، به سخت افزار کمک می کنه که سیستم عامل شما رو بالا بیاره. Boot Manager جای همه ی سیستم عامل هایی که روی سیستم شما وجود دارند رو می دونه و به شما این قابلیت رو می ده که انتخاب کنید که با کدوم یکی از اونها سیستم رو بالا بیاره.

توضیح Boot loader تو لینوکس:

بین تمام توزیع های لینوکس، سه Boot Manager معروف وجود داره که این زیر دربارشون حرف می زنیم:

۱. توضیح Lilo: یک برنامه بسیار ساده و قدیمی که خیلی وقته دیگه هیچ کسی ازش استفاده نمی کنه. عکس زیر شاید یکم واسه کاربرای قدیمی نوستالژیک باشه. تنظیمات این برنامه رو می شد تو آدرس روبرو پیدا کرد etc/lilo.conf.


۲ و ۳. Grub: پرکاربرد ترین Boot loader موجود برای سیستم های لینوکسی گراب هستش. کار باهاش بسیار سادس و تمام توقعاتی که ازش می ره رو برآورده می کنه. اول از همه Grub Legacy اومد، بعد از اون برای برطرف کردن یک سری ایراد هاش، Grub اومد که خوبی های خودشو داشت اما در حال حاضر بیشترین استفاده رو Grub 2 داره که در این مقاله در موردش حرف می زنیم.


نحوه کار با Grub 2:

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

# vi /boot/grub/grub.cfg

تو شکل زیر می تونید یک نمای کلی از محتوای این فایل رو ببینید.


گراب زمانی که می خاد سیستم رو بالا بیاره از یک سری اسکریپت واسته انجام کارای مختلف استفاده می کنه.

# ls -l /etc/grub.d/


برای مثال اسکریپت زیر برای چک کردن قطعات سخت افزاری سیستم هستش.

# vi /etc/grub.d/30_os-prober


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

# vi /etc/default/grub


تو شکل زیر می تونید یک دید کلی به این فایل داشته باشید.


با تغییر مقدار GRUB_TIMEOUT، می تونید زمانی که گراب موقع بوت شدن واسه کاربر صبر می کنه رو تغییر بدین.


تو این بخش هر تغییری دوست داشته باشید رو می تونید وارد کنید. برای مثال می تونید عکسی رو که گراب در زمان بوت شدن بهتون نشون می ده رو تغییر بدین. برای این کار باید یک متغیر به اسم‌ “GRUB_BACKGROUND” ایجاد کنید و برای مقدار آدرس عکستون رو بدین.


در این بخش خیلی کار ها می شه انجام داد که بررسیشون از هدف این مقاله خارجه.

برای اینکه تغییراتی که وارد کردین روی گراب اعمال بشه و دفعه بعدی که سیستم بالا میاد ازشون استفاده کنه، باید دستور زیر رو بزنید. این دستور با توجه به فایلی که ما تغیر دادیم و خیلی چیز های دیگه فایل اصلی گراب رو که اول این بحث دیدیم رو ایجاد میکنه.

# update-grub


یه موضوعی که خوبه بدونید مفهوم Run level هستش.

سیستم عامل لینوکس می تونه تو حالت های مختلف بالا بیاد که این زیر با هم بررسیشون می کنیم.

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

توضیح Run level صفر: تو این حالت سیستم تمیز خاموش می شه‌ (یعنی پروسه های باز رو می بنده و بعد خاموش می شه).

# cat /etc/rc0.d


توضیح Run level یک: این حات تک کاربره هستش یا همون rescue mode. این حالت واسه وقتیه که یه مشکلی جدی تو سیستم پیش اومده و بالا نمیاد.

# cat /etc/rc1.d


توضیح Run level دو: این حالت با حالت پنج هیچ فرقی نداره و سیستم کامل به همرا تمامی پکیج ها و چند کاربره بالا میاد. توجه داشته باشید که در این حالت سیست مدر حالت گرافیکی بالا میاد.

# cat /etc/rc2.d


توضیح Run level سه: در این حالت سیستم به طور کامل و چند کاربره بالا میاد اما فقط تو حالت ترمینالی و بدون رابط گرافیکی.

# cat /etc/rc3.d


توضیح Run level چهار: خالی هستش و می تونید تنظیماتی که دوست دارید رو تو فایل زیر وارد کنید و Run level خاص خودتون رو داشته باشید.

# cat /etc/rc4.d


توضیح Run level پنج: این حالت با حالت دو هیچ فرقی نداره و سیستم کامل به همرا تمامی پکیج ها و چند کاربره بالا میاد. توجه داشته باشید که در این حالت سیست مدر حالت گرافیکی بالا میاد.

# cat /etc/rc5.d


توضیح Run level شش: تو این حالت سیستم به صورت خیلی تمیز، ریبوت می شه.

# cat /etc/rc6.d


برای تغییر تو یکی از این فایل ا می تونید به شکل زیر عمل کنید.

# vi /etc/rc3.d


تو شکل زیر می تونید یه تصویر کلی از محتوای این فایل رو ببینید.

برای دیدن Run level فعلی سیستم می تونید از دستور زیر استفاده کنید.

# runlevel

برای تغییر Run level سیستم می تونید به روش زیر عمل کنید.

نکته در شکل زیر می بینید که هم Run level فعلی سیستم رو در سمت راست نشون می ده و هم Run level قبلی رو (سمت چپ).

# telinit 3


boot managergrubgrub2linux boot managerlinux
شاید از این پست‌ها خوشتان بیاید