آموزش بازیابی GRUB در RHEL 7 و CentOS 7

موضوعاتی که در این مقاله به آنها پرداخته خواهد شد، به شرح زیر است:

چطوری GRUB رو توی RHEL 7 و CentOS 7 بازیابی کنیم؟

توی این مقاله می‌خوایم قدم به قدم بهتون نشون بدیم که چطوری GRUB رو توی سیستم‌عامل‌های RHEL 7 و CentOS 7 بازیابی کنین. از دست دادن یا خراب شدن GRUB یکی از مشکلاتیه که خیلی وقتا توی سرورها و سیستم‌های لینوکسی پیش میاد. ممکنه این اتفاق به خاطر بد بودن دیسک، یه باگ توی فریمور یا حتی خاموش کردن یهویی سیستم بیفته. سیستم‌ها معمولا با فریمورهای BIOS یا UEFI میان، پس بهتره بدونین که سیستم‌عاملتون الان از کدوم داره استفاده می‌کنه. اینم یه راه برای تشخیص BIOS از UEFI توی سرورهای لینوکسی. برای اینکه بتونین GRUB رو توی RHEL 7 و CentOS 7 تعمیر کنین، باید آخرین دی‌وی‌دی یا فایل ISO مربوط بهشون رو داشته باشین.

یه سری ارورهای رایج توی GRUB در مقاله بازیابی GRUB:

اگه GRUB خراب شده باشه یا کلا از بین رفته باشه، سیستم دیگه بوت نمی‌شه و یه همچین چیزی نشون می‌ده و گیر می‌کنه:

GNU GRUB version 0.97 (638K lower / 3143616K uper memory) [ 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.] grub>

سیستم با این پیغام متوقف می‌شه:

GRUB loading stage 2

توی اینجور مواقع، لطفا مراحل زیر رو دنبال کنینپ.نآیا نیاز به سرور مجازی فرانسه دارید؟ لطفا بر روی لینک اون کلیک کنید! اگر نیاز به vps فرانسه با آی پی تمیز و بدون محدودیت دارید کلیک کنید.

 

بازیابی GRUB در سیستم‌های مبتنی بر BIOS

خب، بریم سراغ بازیابی یا بازگردانی GRUB توی سیستم‌هایی که از BIOS استفاده می‌کنن:

۱. اول از همه، آخرین DVD مربوط به RHEL 7 یا CentOS 7 رو توی سرور بذارین یا اگه از ILO استفاده می‌کنین، فایل ISO رو بهش وصل کنین.
۲. اگه هم دارین از ماشین مجازی استفاده می‌کنین، فایل ISO رو به ماشین وصل کنین.
۳. حالا سرور رو با استفاده از همون DVD یا فایل ISO بوت کنین.

۴. انتخاب گزینه عیب‌یابی (Troubleshooting)

بعد از اینکه سیستم با استفاده از DVD یا فایل ISO بوت شد، شما با منوی بوت مواجه می‌شین. توی این مرحله، باید گزینه Troubleshooting (عیب‌یابی) رو انتخاب کنین. معمولاً این گزینه در انتهای لیست قرار داره.

انتخاب گزینه عیب‌یابی برای شروع فرآیند بازیابی GRUB

همونطور که توی تصویر می‌بینین، گزینه Troubleshooting با یه کادر نارنجی مشخص شده. با انتخاب این گزینه، شما به ابزارهای مختلفی برای رفع مشکل و بازیابی سیستم، از جمله ابزار تعمیر GRUB، دسترسی پیدا می‌کنین. برای انتخاب این گزینه، معمولاً باید از کلیدهای جهت‌نما استفاده کنین و بعدش کلید Enter رو بزنین.

۵. انتخاب حالت نجات (Rescue Mode)

بعد از انتخاب گزینه Troubleshooting، شما به یه صفحه دیگه منتقل می‌شین که چند تا گزینه مختلف برای عیب‌یابی و بازیابی سیستم در اختیارتون قرار می‌ده. برای تعمیر GRUB رفع مشکل GRUB، ما به حالت Rescue Mode (حالت نجات) نیاز داریم. این حالت به شما اجازه می‌ده که به فایل‌های سیستم دسترسی داشته باشین و تنظیمات رو برای رفع مشکل بوت تغییر بدین. پس، با استفاده از کلیدهای جهت‌نما، گزینه Rescue a Red Hat Enterprise Linux system رو پیدا کنین و انتخابش کنین. معمولاً یه توضیح کوچیک هم زیر این گزینه نوشته شده که می‌گه اگه سیستم بوت نمی‌شه، این حالت بهتون کمک می‌کنه تا به فایل‌ها دسترسی داشته باشین و فایل‌های تنظیمات رو ویرایش کنین تا دوباره بوت بشه.

انتخاب حالت نجات (Rescue Mode) برای تعمیر GRUB

۶. ادامه برای یافتن ایمیج سیستم عامل

توی این مرحله، بعد از اینکه حالت Rescue رو انتخاب کردین، یه صفحه جدید میاد که توضیح می‌ده محیط نجات چیکار می‌کنه. در واقع، این محیط سعی می‌کنه پارتیشن‌های سیستم عامل لینوکس شما رو پیدا کنه و اون‌ها رو زیر مسیر /mnt/sysimage mount کنه. این کار به شما اجازه می‌ده تا هر تغییری که برای بازیابی سیستمتون لازمه رو انجام بدین. برای اینکه این مرحله انجام بشه، شما باید عدد 1 رو بزنین و اینتر کنین.

ادامه فرآیند برای یافتن و Mount کردن ایمیج سیستم عامل

یه سری گزینه‌های دیگه هم هست، مثلاً می‌تونین با زدن عدد 2 فایل‌سیستم‌ها رو فقط به صورت خواندنی mount کنین (اگه نمی‌خواین تغییری ایجاد کنین). اگه هم به هر دلیلی این مرحله درست کار نکرد، می‌تونین با زدن عدد 3 مستقیماً به خط فرمان برین. ولی برای تعمیر GRUB، معمولاً زدن عدد 1 کافیه.

۷. ورود به ایمیج سیستم عامل با دستور chroot

بعد از اینکه با زدن عدد 1 ادامه دادین، سیستم پارتیشن‌های شما رو پیدا می‌کنه و اون‌ها رو زیر مسیر /mnt/sysimage mount می‌کنه. حالا برای اینکه بتونیم دستورات مربوط به بازیابی GRUB رو روی سیستم عامل اصلیمون اجرا کنیم (نه روی محیط نصب)، باید از دستور chroot استفاده کنیم. این دستور در واقع کاری می‌کنه که دایرکتوری /mnt/sysimage به عنوان روت اصلی سیستم در نظر گرفته بشه.

استفاده از دستور chroot برای دسترسی به سیستم عامل اصلی

۸. نصب بوت لودر GRUB 2

از RHEL 7 و CentOS 7 به بعد، GRUB 2 به عنوان بوت لودر پیش‌فرض استفاده می‌شه. فایل تنظیمات GRUB 2 هم اینجاست: /boot/grub2/grub.cfg. حالا باید بوت لودر GRUB رو روی دیسک اصلی نصب کنیم (پیش‌فرضش /dev/sda هست).

نصب بوت لودر GRUB 2 روی دیسک /dev/sda

۹. بررسی وجود فایل تنظیمات GRUB

بعد از اینکه GRUB رو نصب کردیم، مرحله بعدی اینه که مطمئن بشیم فایل تنظیمات اصلی GRUB 2، یعنی grub.cfg، توی مسیر /boot/grub2 وجود داره. این فایل خیلی مهمه چون دستورالعمل‌های بوت رو برای سیستم مشخص می‌کنه. اگه این فایل وجود نداشته باشه، GRUB نمی‌تونه سیستم رو بوت کنه.

عدم وجود فایل تنظیمات grub.cfg در دایرکتوری مربوط

۱۰. تولید فایل تنظیمات GRUB

خب، حالا بیایین فایل grub.cfg رو تولید کنیم.

تولید فایل grub.cfg با استفاده از دستور grub2-mkconfig

نکته مهم در مقاله بازیابی GRUB :

بعضی وقتا ممکنه دستور grub2-mkconfig به طور پیش‌فرض در محیط Rescue وجود نداشته باشه. توی این حالت، شما باید اول بسته‌ای که این دستور رو شامل می‌شه نصب کنین. اسم این بسته grub2-tools.x86_64 هست. از اونجایی که شما سیستم رو با DVD یا ISO بوت کردین، معمولاً مخازن نصب هم در دسترس هستن و می‌تونین این بسته رو نصب کنین. برای نصبش می‌تونین از دستور yum install grub2-tools.x86_64 استفاده کنین. بعد از نصب، می‌تونین دوباره دستور grub2-mkconfig -o /boot/grub2/grub.cfg رو اجرا کنین.

فایل grub.cfg با موفقیت بازسازی شد.

۱۱. خروج و ریبوت سیستم

بعد از اینکه مطمئن شدین فایل grub.cfg با موفقیت ساخته شده، دیگه کارتون توی محیط chroot تموم شده. برای خارج شدن از این محیط، کافیه دستور exit رو توی خط فرمان تایپ کنین و اینتر بزنین. بعد از اون، برای اینکه تغییرات اعمال بشن و سیستم با GRUB جدید بوت بشه، باید سیستم رو ریبوت کنین. برای ریبوت کردن هم می‌تونین از دستور reboot استفاده کنین.

نکته خیلی مهم: این روش رفع مشکل GRUB فقط روی سرورها و ماشین‌های مجازی با فریمور BIOS مبتنی بر X86 کار می‌کنه و برای سرورها و ماشین‌های مجازی با فریمور UEFI کار نخواهد کرد. اگه سیستم شما از UEFI استفاده می‌کنه، باید از روش دیگه‌ای برای بازیابی GRUB استفاده کنین که توی بخش بعدی بهش می‌پردازیم. پس حواستون باشه که نوع فریمور سیستمتون رو درست تشخیص داده باشین.

نتیجه‌گیری مقاله بازیابی GRUB:

توی این مقاله بازیابی GRUB، با همدیگه یاد گرفتیم که چطوری می‌تونیم GRUB رو روی سیستم‌های RHEL 7 و CentOS 7 که از فریمور BIOS استفاده می‌کنن، بازیابی کنیم. دیدیم که اگه GRUB به هر دلیلی خراب بشه یا از بین بره، می‌تونیم با استفاده از DVD یا ISO نصب سیستم عامل، وارد حالت Rescue بشیم، به محیط سیستم عامل اصلیمون chroot کنیم، بوت لودر GRUB 2 رو دوباره نصب کنیم و در نهایت فایل تنظیمات grub.cfg رو با استفاده از دستور grub2-mkconfig از نو بسازیم. امیدواریم که این آموزش رفع مشکل GRUB براتون مفید بوده باشه و تونسته باشین مشکل بوت سیستمتون رو رفع کنین.
از اینکه تا انتهای این آموزش همراه ما بودین ازتون ممنونیم. اگه سوالی دارین یا تجربه‌ای در این زمینه دارین، خوشحال می‌شیم توی بخش نظرات با ما و بقیه به اشتراک بذارین. منتظر نظراتتون هستیم!

مطالب مرتبط: