أفضل 3 طرق لإصلاح خطأ "عدم ترك مساحة على الجهاز" في Linux


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

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

دعونا نكتشف ذلك.

هل يحتوي محرك الأقراص الثابتة لديك على مساحة كافية بالفعل؟

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

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

  1. لنبدأ بالأمر du. يمكن أن تكون مخرجاته طويلة جدًا ومرهقة، لذلك سنستخدم علامتي -s و -h. -s يلخص النتائج، بينما -h يضمن أنها قابلة للقراءة من قبل الإنسان. لذا أدخل الأمر sudo du -sh /حيث يشير /إلى الدليل الأساسي.
    1. لا تقلق بشأن جميع الرسائل التي تم رفض الأذونات بها - فهذه هي الطريقة التي يتم بها البحث عبر جميع الدلائل الفرعية للنظام. اعتمادًا على حجم محرك الأقراص، قد تضطر إلى تركه قيد التشغيل لفترة من الوقت، حيث أنه يتصفح كل شيء بشكل متكرر.
      1. عندما تنتهي du من المسح، ستخرج قائمة بسيطة من الأدلة إلى جانب أحجامها. على سبيل المثال، هذا هو ناتج أمر du المطبق على دليل عادي.
      2. سنستخدم الآن df لمعرفة مقدار المساحة الحرة المتوفرة. يعد الأمر df أسهل في الاستخدام لأنه يعرض فقط أنظمة الملفات المثبتة وإحصائيات الاستخدام الخاصة بها. مرة أخرى، سوف نستخدم العلامة -h لجعل المخرجات قابلة للقراءة البشرية.

        سودو df -h .

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

        لماذا يظهر Linux رسالة "عدم وجود مساحة متبقية على الجهاز"؟

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

        • الملف المحذوف مؤخرًا: السبب الأكثر شيوعًا لرؤية هذا الخطأ هو الملف المحذوف مؤخرًا. في كثير من الأحيان يتم حذف الملف أثناء استمرار العملية في استخدامه، مع الاحتفاظ بالمساحة المحجوزة حتى لو كان الملف قد اختفى بالفعل.
        • عدم وجود عدد كافٍ من الـ Inodes: هناك سبب شائع آخر وهو عدم وجود com.inodes كافٍ. Inodes هي صفحات الفهرس لنظام ملفات Unix، والتي تحتوي على البيانات الوصفية لكل ملف على وحدة التخزين. ومع ذلك، فإن عدد inodes ليس غير محدود، وقد يؤدي نفاد عدد inodes قبل توفر مساحة التخزين إلى ظهور الخطأ "لم يتبق أي مساحة على الجهاز".
        • فشل محرك الأقراص الثابتة: بالطبع هناك احتمال أن يكون محرك الأقراص الثابتة معطلاً ببساطة، وأن معظم المساحة الفارغة الظاهرة تشغلها القطاعات التالفة. وبما أن النظام يفشل في كتابة أي ملفات إلى هذه المواقع، فإنه يلقي خطأ.
        • الإصلاح 1: إعادة تشغيل العمليات باستخدام الملفات المحذوفة

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

          1. للعثور على العملية التي بها مشكلات، تحتاج إلى استخدام الأمرين lsof وgrep. سيعطيك الأمر lsof قائمة بجميع الملفات المفتوحة المستخدمة من خلال العمليات الجارية، ويمكن لـ grep تضييق نطاق التحديد إلى الملفات المحذوفة. لذا أدخل sudo lsof / | تم حذف grepحيث / هو الدليل الأساسي و | أنبوب لربط مخرجات lsof بـ grep.
            1. الآن يمكنك إعادة تشغيل العملية المتأثرة باستخدام الأمر sudo systemctl Restart Service_name، حيث يكون اسم الخدمة هو اسم الخدمة التي ظهرت في البحث.
            2. .
              1. إذا كانت هناك عمليات متعددة مثل هذه أو كنت لا تريد أن تهتم بالعثور على خدمات معينة، فيمكنك فقط إعادة تعيينها جميعًا باستخدام الأمر sudo systemctl daemon-reload. يؤدي هذا إلى إعادة إنشاء كافة التبعيات، مع أخذ أي تغييرات في نظام الملفات بعين الاعتبار.
              2. بعد ذلك، يجب أن تكون مساحة التخزين التي تم احتجازها بسبب العملية متاحة مرة أخرى، مما يسمح لك بكتابة الملفات دون الوقوع في أي أخطاء.

                الإصلاح 2: التحقق من Inodes

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

                يمكنك بسهولة التحقق من توفر inodes باستخدام العلامة -i مع الأمر df. مثل هذا:

                sudo df -i

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

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

                الإصلاح 3: وضع علامة على الكتل السيئة

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

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

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

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

                sudo fsck -vcck /dev/sda

                يؤدي هذا إلى استبدال /dev/sda بمسار محرك الأقراص الذي تريد إصلاحه. سيؤدي هذا تلقائيًا إلى اكتشاف جميع الكتل السيئة الموجودة على محرك الأقراص ووضع علامة عليها على أنها غير قابلة للاستخدام. ومع ذلك، لن يوفر لك أي سعة تخزين إضافية، لذا كن مستعدًا لتنظيف بعض الملفات غير المفيدة لتحرير مساحة على محرك الأقراص.

                ما هي أفضل طريقة لإصلاح خطأ "عدم وجود مساحة متبقية على الجهاز"؟

                السبب المعتاد لرؤية خطأ "لا توجد مساحة متبقية على الجهاز" على Ubuntu أو أي توزيعة Linux أخرى هو وجود ملف محذوف لا يزال قيد الاستخدام من خلال عملية قيد التشغيل. يؤدي هذا إلى الاحتفاظ بمساحة التخزين التي كان يشغلها الملف، مما يمنع العمليات الأخرى من كتابة البيانات إلى تلك المساحة.

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

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

                .

                المنشورات ذات الصلة:


                30.08.2022