النقاط الرئيسية
إذا أظهرت أصداف GRUB الخاصة بك موجه “grub>”، فيمكنك استخدام
ls
,
set
,
linux
، و
initrd
أوامر لإصلاح نظام Linux الخاص بك. إذا رأيت بدلاً من ذلك موجه “grub rescue>”، فاستخدم
set
,
insmod
,
linux
، و
initrd
أوامر لتشغيل جهاز الكمبيوتر الخاص بك.
إذا لم يتمكن جهاز الكمبيوتر الذي يعمل بنظام Linux من التمهيد إلى نظام التشغيل الخاص به، فمن المحتمل أن تجد نفسك تحدق في موجه الأوامر في غلاف GRUB. اتبع الخطوات التالية لإصلاح عمليات التمهيد المعطلة.
عندما لا يتم تشغيل أداة تحميل التشغيل الخاصة بك
هناك عدد قليل جدًا من مشكلات الكمبيوتر التي تجعل قلبك ينهار بسرعة وعمق مثل فشل تشغيل الجهاز. فبدون نظام تشغيل يعمل، لن يكون جهاز الكمبيوتر الخاص بك جهاز كمبيوتر حقيقيًا.
قد تكون المشكلة غامضة للغاية، ولا توجد طريقة سهلة للوصول إلى السبب الجذري. فبدون الوصول إلى Linux، لا يمكنك استخدام أي من أدوات التشخيص والعمليات المعتادة التي تستخدمها للتحقيق في المشكلة. وبدون تحديد ماهية المشكلة، كيف يمكنك إصلاحها؟
على لينكس، نكش هو البرنامج الذي يتحكم في عملية التمهيد. إذا كان لديك أنظمة تشغيل متعددة مثبتة، فإنه يسمح لك باختيار النظام الذي تريد التمهيد إليه.
يتم التحكم في GRUB من خلال تكوينه. ويعتمد أيضًا على ملفات دعم أخرى، من أجل أداء وظائفه. إذا كانت أي من هذه الملفات مفقودة أو تالفة، فلن يعمل GRUB. يجب أن تنعكس التغييرات التي تطرأ على محركات الأقراص الصلبة وأقسام الكمبيوتر لديك في تكوين GRUB. إذا لم يكن الأمر كذلك، فلن تكون تعليمات GRUB منطقية، ولن تعمل عملية التمهيد الخاصة بك.
كملاحظة جانبية، ما نطلق عليه جميعًا GRUB هو في الواقع GRUB 2. وهو إصدار متقدم من GRUB تم إصداره في عام 2012. ومن بين التغييرات الأخرى، فقد غيّر طريقة إنشاء ملف “grub.cfg”، ويسمح لك بالتمهيد من وسائط قابلة للإزالة.
إذا لم يتمكن GRUB من تحميل نظام التشغيل، فسوف تظل منتظرًا ظهور رسالة في غلاف GRUB. هذه بيئة بسيطة تسمح لك بتنفيذ عدد قليل من الإجراءات. ومع ذلك، إذا تم تنفيذها بشكل صحيح، يمكن لهذه الخطوات أن تعيد الحياة إلى جهاز الكمبيوتر الخاص بك.
هناك غلافان مختلفان لـ GRUB. اعتمادًا على السبب الجذري للمشكلة، قد تجد نفسك أمام موجه غلاف GRUB:
grub>
أو في موجه غلاف الإنقاذ GRUB:
grub rescue>
إن غلاف الإنقاذ GRUB أكثر تقييدًا من غلاف GRUB، ولكنه لا يزال يحتوي على ما يكفي من القوة لتشغيل الكمبيوتر. بمجرد تشغيل الكمبيوتر، ستكون في وضع أفضل بكثير لعلاج السبب الجذري.
استخدام GRUB Shell
غلاف GRUB عبارة عن واجهة سطر أوامر تتيح لك استخدام مجموعة فرعية صغيرة من أوامر Linux. إذا وجدت نفسك هنا بدلاً من شاشة تسجيل الدخول المعتادة، فهذا يعني أن عملية التمهيد لديك قد تعطلت.
الأوامر التي يمكنك الوصول إليها ليست هي نفسها الموجودة في إصدارات Linux المعتادة. على سبيل المثال، غلاف GRUB ls
الأمر ليس Bash ls
الأمر. لا يوجد الكثير من القواسم المشتركة بينهما. يمكننا أن نرى ذلك باستخدام --help
خيار.
ls --help
إنه يسرد خمسة خيارات فقط. وهذا بعيد كل البعد عن العشرات من الخيارات التي يدعمها ls
في Bash. ومع ذلك، حتى مع لوحة الأوامر الخافتة لدينا إلى حد ما، لا يزال بإمكاننا تصحيح الوضع.
عند المطالبة، اكتب ls
واضغط على “أدخل”.
ls
على هذا الكمبيوتر، يتم إدراج ثلاثة عناصر.
- (hd0) هو القرص الصلب الأول.
- (hd0،gpt1) هو القسم الأول على القرص الصلب الأول.
- (hd0،gpt2) هو القسم الثاني على القرص الصلب الأول.
تشير علامة “gpt” إلى جدول تقسيم GUID“نحن بحاجة إلى تضمين الأقواس”()
“عندما نشير إلى قسم، ولكن يمكننا حذف التسمية.
لإلقاء نظرة على الأقسام بدورها، سنستخدم ls
.
ls (hd0,1)
ls (hd0,2)
لقد وجدنا أن القسم الثاني يحتوي على نظام ملفات Linux. سوف نتحرى الأمر بمزيد من التفصيل من خلال النظر إلى الدليل الجذر لهذا القسم.
ls (hd0,2)/
من الواضح أن هذا هو قسم Linux، مع دليل التمهيد عليه. هذا هو المكان الذي يتم فيه تخزين ملفات GRUB وصور تمهيد Linux وملفات التمهيد الأخرى.
على هذا الكمبيوتر، سنحتاج إلى الرجوع إلى القسم (hd0,2)
عندما نصدر أوامرنا، يمكنك استخدام أي قسم تجد فيه تثبيت Linux على جهاز الكمبيوتر الخاص بك.
يمكننا استخدام cat
أمر للبحث في ملفات نصية عن طريق إضافة مسار الدليل واسم الملف إلى اسم القسم، مثل هذا:
cat (hd0,2)/etc/issue
في عمليات التثبيت متعددة التمهيد، تعد هذه طريقة مفيدة للتأكد من أنك على القسم الصحيح. كما أنها رائعة للبحث داخل ملفات التكوين.
هنا، نحن نستخدم ls
الأمر مع -l
(طويل) و -h
(الأحجام القابلة للقراءة بواسطة الإنسان) خيارات لإدراج الملفات الموجودة في دليل “/boot”.
ls -lh (hd0,2)/boot
لجعل هذا الكمبيوتر يقوم بالتمهيد، نحتاج إلى إخبار GRUB أن قسم Linux الذي اكتشفناه حديثًا يحتوي على ملفات التمهيد.
set root=(hd0,2)
نحن بحاجة إلى تحديد نواة Linux التي سيتم التمهيد منها. نقوم بذلك باستخدام linux
لاحظ أنه يتعين علينا أيضًا توفير الدليل الجذر باستخدام مخطط تسمية القرص الصلب والقسم المعتاد في Linux.
linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
في مثال الكمبيوتر الخاص بنا، نستخدم (hd0)
وهو أول قرص صلب، ويسمى sda
في تسمية لينكس المعتادة. وجدنا أن القسم الثاني هو قسم لينكس، لذا نحتاج إلى تحديد sda2
.
قد يكون جهازك مختلفًا. على سبيل المثال، إذا تم الإبلاغ عن قسم Linux الخاص بك على أنه (hd2,1)
وهذا يعني القسم الأول على القرص الصلب الثالث، أو sdc1
.
نحتاج أيضًا إلى تحديد صورة نظام الملفات المستندة إلى ذاكرة الوصول العشوائي التي سيتم استخدامها عند تشغيل الكمبيوتر. يجب أن تستخدم نفس المكون العددي لنواة Linux التي نستخدمها.
initrd /boot/initrd.img-6.2.0-20-generic
الآن، لتشغيل نظامنا، اكتب “boot” واضغط على “Enter”.
يجب أن يؤدي هذا إلى تشغيل جهاز الكمبيوتر الخاص بك على Linux. لقد نجحنا في تشغيله مرة أخرى، ولكننا ما زلنا بحاجة إلى إصلاح GRUB حتى لا نحتاج إلى القيام بذلك في كل مرة نبدأ فيها تشغيل جهاز الكمبيوتر الخاص بنا.
سوف نركض update-grub
سيؤدي هذا إلى فحص نظامنا وتحديد أنظمة التشغيل وإنشاء تكوين GRUB جديد. نحتاج إلى تشغيل هذا كمستخدم الجذر.
sudo update-grub
في حالات نادرة، قد تحتاج إلى إعادة تثبيت أداة تحميل التشغيل GRUB أيضًا، باستخدام grub-install
.
sudo grub-install /dev/sda
لاحظ أنك لست بحاجة إلى تحديد القسم الذي تريد التثبيت عليه، بل فقط محرك الأقراص. في عمليات التثبيت العادية، يكون نفس محرك الأقراص الذي يوجد عليه نظام Linux.
يأتي إثبات نجاح العملية مع إعادة التشغيل التالية. يجب أن يتم إعادة تشغيل الكمبيوتر بشكل طبيعي.
استخدام GRUB Rescue Shell
اعتمادًا على طبيعة مشكلة التمهيد، قد لا يتم إدخالك في غلاف GRUB. قد يتم تركك في وضع إنقاذ GRUB. إذا كانت هذه هي الحالة، فسيبدو موجه الأوامر الخاص بك على النحو التالي:
grub rescue>
الأوامر التي نحتاج إلى إصدارها في هذه الواجهة مختلفة. نحتاج إلى استخدام ls
للعثور على قسم Linux، كما لو كنت تستخدم غلاف GRUB. بعد تحديد قسم Linux، يمكنك المضي قدمًا وإدخال هذه الأوامر.
تذكر استخدام معرفات محرك الأقراص وأرقام إصدار النواة الصحيحة لجهاز الكمبيوتر الخاص بك. insmod
يقوم الأمر بتحميل وحدات النواة.
set prefix=(hd0,2)/boot/grub
set root=(hd0,2)
insmod normal
insmod linux
linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
initrd /boot/initrd.img-6.2.0-20-generic
يمكنك بعد ذلك كتابة “boot” والضغط على “Enter” لإعادة تشغيل الكمبيوتر. بمجرد إعادة التشغيل وتسجيل الدخول، قم بتحديث GRUB باستخدام update-grub
يأمر.
العلاجات الممكنة الأخرى
إذا تبين أن المشكلة تكمن في فقدان ملفات التمهيد، مثل ملفات “vmlinuz” و”initrd.img”، فيمكنك تشغيل الكمبيوتر من قرص DVD مباشر أو محرك أقراص USB محمول قابل للتمهيد لنظام التشغيل Linux، ثم نسخ الملفات المفقودة إلى مكانها.
لاحظ أن ملفات “vmlinuz” و”initrd.img” يجب أن تحتوي على أرقام الإصدار نفسها، لأنها تعمل كزوج متطابق.