سيناريوهات حل مشاكل لينكس: تحديات وحلول في العالم الحقيقي

لينكس هو نظام تشغيل قوي وموثوق به، ولكن حتى المستخدمين المتمرسين يواجهون مشاكل غير متوقعة. سواء كانت ملفًا تم حذفه، أو كلمة مرور جذر مُنسية، أو نظام بطيء، فإن معرفة كيفية استكشاف المشكلات بكفاءة هو الأمر الرئيسي لتصبح خبيرًا حقيقيًا في لينكس.

يقدم هذا الدليل سيناريوهات حل المشكلات الحقيقية في لينكس بالإضافة إلى الحلول خطوة بخطوة، والتي تكون شائعة بين مسؤولي النظام والمطورين ومستخدمي لينكس اليوميين.

السيناريو 1: لقد حذفت بالخطأ ملفًا هامًا

لقد حذفت بالخطأ ملفًا هامًا باستخدام أمر rm، والآن تحتاج إلى استعادته. على عكس ويندوز و ماك أو إس، لا تحتوي لينكس على “سلة مهملات” مدمجة للملفات التي تم حذفها من الطرفية.

تعتمد خيارات الاسترداد على نظام الملفات المستخدم.

لأنظمة الملفات EXT3/EXT4

استخدم extundelete، وهو أداة مفتوحة المصدر مصممة لاستعادة الملفات المحذوفة من أنظمة ملفات ext3 وext4 في لينكس.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

قبل محاولة الاسترداد، قم بفصل القسم لمنع المزيد من الكتابات التي يمكن أن تكتب فوق البيانات المحذوفة:

sudo umount /dev/sdX

بعد ذلك، قم بتشغيل الأمر التالي لاستعادة الملف المحذوف وتأكد من استبدال /dev/sdX بالقسم الفعلي الذي تم حذف الملف منه.

sudo extundelete /dev/sdX --restore-all

بالنسبة لأنظمة ملفات XFS، Btrfs، أو NTFS

إذا كان نظامك يستخدم XFS، Btrfs، أو NTFS، فإن أداة testdisk هي الخيار الأفضل.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

قم بتشغيل testdisk واتبع التعليمات التفاعلية لاستعادة الملفات المفقودة.

sudo testdisk

نصائح للوقاية:

    • استخدم trash-cli: بدلاً من rm، استخدم trash-cli لإرسال الملفات إلى سلة مهملات قابلة للاسترداد.
sudo apt install trash-cli  
trash-put myfile.txt  
  • قم بتمكين النسخ الاحتياطي المنتظم: قم بإعداد rsync أو Timeshift للنسخ الاحتياطي التلقائي للملفات المهمة.

سيناريو 2: استعادة كلمة مرور الجذر المنسية

لقد نسيت كلمة مرور الجذر الخاصة بك ولا يمكنك تنفيذ المهام الإدارية، مما يعني أنك لا تستطيع تثبيت البرامج أو تغيير إعدادات النظام أو الوصول إلى الملفات الحيوية.

يمكنك إعادة تعيين كلمة مرور الجذر عن طريق التمهيد في وضع الاسترداد أو تعديل محمل الإقلاع GRUB.

استخدام وضع الاسترداد (أوبونتو/ديبيان)

أعد تشغيل النظام الخاص بك واضغط على Shift أثناء التشغيل للوصول إلى قائمة GRUB، ثم اختر “خيارات متقدمة” → “وضع الاسترداد” واختر “إسقاط إلى جهاز الجذر القلبي”.

هنا، قم بإعادة تحميل نظام الملفات الجذرية كقابل للكتابة وإعادة تعيين كلمة مرور الجذر.

mount -o remount,rw /
passwd root

أعد تشغيل النظام.

reboot

استخدام rd.break (RHEL/CentOS/Fedora)

أعد أولاً تشغيل النظام الخاص بك، اضغط على e في قائمة GRUB وابحث عن السطر الذي يبدأ بـ linux وأضف rd.break في النهاية.

ثم، قم بتحميل نظام الملفات الجذرية وإعادة تعيين كلمة مرور الجذر.

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

وأخيرًا، اخرج وأعد التشغيل.

exit  
reboot  

نصائح الوقاية:

  • إنشاء مستخدم sudo بدون كلمة مرور لتجنب قفل الوصول إلى الجذر.
  • استخدام مفاتيح SSH بدلاً من كلمات المرور للمصادقة.

سيناريو 3: لقد قمت بتثبيت حزمة، ولكنها لا تعمل

لقد قمت بتثبيت حزمة، لكنها تعرض رسالة “الأمر غير موجود” عند محاولة تشغيله، والتي عادة ما تحدث عندما لا يكون البرنامج الثنائي موجودًا في مسار النظام PATH، أو أن الحزمة لم يتم تثبيتها بشكل صحيح، أو يوجد تبعية مفقودة.

الحل هو، أولاً تحتاج إلى التحقق مما إذا كانت الحزمة مثبتة أم لا.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

إذا كانت مفقودة، أعد تثبيتها:

sudo apt install package-name  
sudo yum install package-name  

بعد ذلك، تحقق مما إذا كانت الأوامر موجودة في نظامك PATH.

which package-name  
echo $PATH

إذا كان الملف الثنائي في موقع غير قياسي، أضفه إلى PATH:

export PATH=$PATH:/usr/local/bin  

نصائح للوقاية:

  • أعد تشغيل الطرفية أو قم بتشغيل hash -r بعد تثبيت حزم جديدة.
  • استخدم مديري الحزم مثل Snap أو Flatpak، الذين يديرون التبعيات بشكل أفضل.

السيناريو 4: نظامك يعاني من نفاد مساحة القرص

يعرض نظامك خطأ “لا توجد مساحة متبقية على الجهاز”، مما يمنع تحديثات البرمجيات، والتسجيل، والعمليات العادية.

إليك كيفية استعادة مساحة القرص والحفاظ على نظامك يعمل بسلاسة.

الخطوة 1: تحقق من استخدام القرص

الحل هو، أولاً تحتاج إلى التحقق من مقدار المساحة المستخدمة على كل قسم في نظامك باستخدام أمر df.

df -h

الخطوة 2: ابحث واحذف الملفات الكبيرة

بعد ذلك، حدد أكبر الملفات التي تستهلك المساحة عن طريق تشغيل أمر du، الذي سيفحص نظامك ويعرض أعلى 10 ملفات أو دلائل. احذف الملفات غير الضرورية باستخدام rm أو انقلها إلى محرك خارجي.

du -ah / | sort -rh | head -10

الخطوة 3: إزالة السجلات غير الضرورية

السجلات ضرورية لاستكشاف الأخطاء وإصلاحها ومراقبة نشاط النظام، لكنها يمكن أن تنمو بسرعة وتستهلك كمية كبيرة من مساحة القرص.

مع مرور الوقت، قد لا تكون السجلات القديمة مطلوبة بعد الآن، مما يجعلها مرشحة مثالية للتنظيف.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

الخطوة 4: إزالة النوى القديمة (أوبونتو/ديبيان)

عند تحديث نظامك، خاصة على أوبونتو أو توزيعات ديبيان، غالبًا ما يتم تثبيت إصدارات جديدة من نواة لينكس.

ومع ذلك، فإن النوى القديمة لا تتم إزالتها تلقائيًا ومع مرور الوقت، يمكن أن تتراكم هذه النوى القديمة وتستهلك كمية كبيرة من مساحة القرص.

إزالتها هو وسيلة آمنة وفعالة لتحرير المساحة دون التأثير على وظيفة نظامك.

sudo apt autoremove --purge  

نصائح للوقاية:

  • إعداد دورة تدوير السجلات: استخدم logrotate لإدارة حجم ملفات السجل تلقائيًا وفترات الاحتفاظ.
  • مراقبة استخدام القرص: قم بتثبيت أدوات مثل ncdu لتتبع استخدام القرص وتحديد الملفات الكبيرة.
  • تنظيفات دورية: قم بجدولة عمليات تنظيف دورية لإزالة الملفات المؤقتة والذاكرة المؤقتة والحزم غير المستخدمة.

سيناريو 5: يتوقف الخادم فجأة عن الاستجابة

أنت تدير خادم Linux، وفجأة، يتوقف عن الاستجابة وتحاول الاتصال عبر SSH، ولكن الاتصال ينقضي أو يرفض الإنشاء. قد تلاحظ حتى أن الخادم مشغل لكنه لا يستجيب لأي أوامر.

قد يكون هذا الوضع ناتجًا عن مشاكل مختلفة، بما في ذلك:

لاستعادة التحكم، اتبع هذه الخطوات لحل المشكلة.

الخطوة ١: الوصول إلى الخادم محليًا أو عبر TTY

إذا لم يكن SSH يعمل، جرب الوصول إلى الخادم مباشرة أو من خلال جلسة TTY:

  • على الجهاز الفعلي، استخدم الواجهة المحلية.
  • على الجهاز الظاهري، استخدم واجهة المضيف الرئيسية.
  • بالنسبة لأنظمة Linux، انتقل إلى جلسة TTY أخرى باستخدام Ctrl + Alt + F2 (أو F3، F4، إلخ).

الخطوة ٢: التحقق من تحميل النظام

بمجرد تسجيل الدخول، قم بالتحقق من تحميل النظام واستخدام الموارد، والتي ستظهر متوسطات تحميل النظام على مدى ١، ٥، و ١٥ دقيقة. قيمة التحميل الأعلى من عدد أنوية وحدة المعالجة المركزية تشير إلى الطلب العالي.

uptime  

بعد ذلك، استخدم top أو htop لمراقبة العمليات في الوقت الحقيقي:

top  
Or
htop

ابحث عن عمليات تستهلك وحدات المعالجة المركزية أو الذاكرة بشكل مفرط.

الخطوة ٣: تحديد وإيقاف العمليات الجارية

لتحديد أكثر العمليات مصادر الموارد، قم بتشغيل:

ps aux --sort=-%cpu | head  

يقوم هذا بقائمة أعلى العمليات المستهلكة لوحدة المعالجة المركزية، حيث يمكنك العثور على عملية مشكلة وإنهائها باستخدام:

kill -9 PID  

استبدل PID بمعرف العملية للتطبيق المشكل.

الخطوة ٤: التحقق من سجلات النظام

إذا كان النظام ما زال متجاوبًا، تحقق من السجلات للأخطاء:

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

تعرض هذه الأوامر رسائل النظام الأخيرة وسجلات النواة، والتي يمكن أن تساعد في تحديد مشاكل الأجهزة أو البرامج.

الخطوة 5: إعادة التشغيل بأمان باستخدام SysRq

إذا كان النظام متجمداً تماماً، استخدم مجموعة مفاتيح SysRq لإعادة التشغيل بأمان:

echo b > /proc/sysrq-trigger  

هذا يؤدي إلى إعادة تشغيل آمنة، مما يضمن سلامة البيانات من خلال مزامنة الأقراص وفصل أنظمة الملفات.

الخاتمة

استكشاف الأخطاء وإصلاحها هو مهارة أساسية لكل مستخدم لنظام لينوكس. سواء كان ذلك لاستعادة الملفات المحذوفة، أو إعادة تعيين كلمات المرور، أو إصلاح أخطاء النظام، فإن معرفة الأوامر الصحيحة يمكن أن توفر الوقت والإحباط.

هل لديك نصائح خاصة بك في استكشاف الأخطاء وإصلاحها؟ شاركها في التعليقات! دعونا نبني مجتمع لينوكس مفيد معاً.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/