الأخطاء التي ليس لها سبب واضح هي أكثر المشاكل المزعجة للتعامل معها. وعلى الرغم من أن نظام Linux عادة ما يكون محددًا في رسائل الخطأ الخاصة به ، إلا أن هذه واحدة من المرات القليلة التي يسقط فيها الكرة.
الحصول على "خطأ عدم ترك مكان على الجهاز" يفسر القليل جدًا ، خاصةً إذا كان محرك الأقراص الخاص بك بعيدًا عن الامتلاء. لماذا تظهر رسالة الخطأ هذه؟ لماذا لا يمكنك إنشاء ملفات جديدة على الرغم من وجود مساحة كافية على القرص؟ والأهم من ذلك ، كيف تصلحه؟
هيا نكتشف.
قبل أن تتسرع في العثور على حل ، تأكد من وجود مشكلة ، لتبدأ. بعد كل شيء ، إذا نفدت مساحة القرص بالفعل على نظامك ، فلا داعي للذعر. يمكنك فقط إزالة البيانات غير الضرورية لتوفير مساحة أكبر.
يوجد أمرين في نظام Linux للحصول على معلومات حول مساحة القرص - du و df. يقوم الأمر du بتقدير استخدام مساحة القرص ، بينما يقوم الأمر df بتحليل المساحة الخالية الموجودة على القرص. يمنحك استخدامها مع sudo تقريرًا دقيقًا عن مقدار المساحة المتوفرة بالفعل على القرص.
الآن سوف نستخدم df لمعرفة مقدار المساحة الخالية المتوفرة. يعد الأمر df أبسط بكثير في الاستخدام لأنه يعرض فقط أنظمة الملفات المحملة وإحصائيات الاستخدام الخاصة بها. مرة أخرى ، سنستخدم العلامة -h لجعل المخرجات قابلة للقراءة.
sudo df -h
الفكرة هي حصر نتائج أوامر du و df. يشير أي اختلاف إلى مساحة القرص غير المتوفرة مجانًا على الرغم من عدم استخدامها من قبل أي ملفات أو مجلدات.
إذا كنت ترى رسالة الخطأ "لا توجد مساحة متبقية على الجهاز" على الرغم من وجود مساحة خالية كافية على القرص الخاص بك ، فهذا ليس الجهاز هو المخطئ. قد يستغرق اكتشاف السبب الدقيق للخطأ القليل من استكشاف الأخطاء وإصلاحها.
السبب الأكثر احتمالاً لظهور الخطأ "لا توجد مساحة على الجهاز" هو استمرار استخدام ملف محذوف. لحسن الحظ ، إصلاح هذا الخطأ سهل. تحتاج فقط إلى إعادة العملية لتحرير مساحة التخزين المحجوزة.
بعد ذلك ، يجب أن تتاح مساحة التخزين التي تعوقها العملية مرة أخرى ، مما يسمح لك بكتابة الملفات دون الوقوع في أي أخطاء.
بينما يحتوي كل محرك أقراص على عدد كبير من inodes ، إلا أنه محدود. وإذا كان نظامك مليئًا بعدد لا يصدق من الملفات ، فمن الممكن الوصول إلى هذا الحد قبل استنفاد سعة التخزين لمحرك الأقراص. هذا هو السبب في أنه من الأفضل أن يكون لديك ملفات كبيرة بدلاً من عدد كبير جدًا من الملفات الصغيرة.
يمكنك بسهولة التحقق من توفر inodes باستخدام العلامة -i مع الأمر df. مثله:
sudo df -i
سيوضح هذا العدد الإجمالي لملفات inodes الموجودة في نظام الملفات ، إلى جانب الكمية المستخدمة حاليًا. إذا لم يكن هناك إيداعات حرة متبقية على نظامك ، فهذا هو مصدر الخطأ "لا توجد مساحة على الجهاز".
نظرًا لأنه يتم إنشاء inodes فقط عند التهيئة الأولى لمحرك الأقراص ، فلا توجد طريقة لإنشاء المزيد من inodes. كل ما يمكنك فعله هو حذف أي ملفات غير ضرورية لتحرير inodes للملفات المستقبلية.
تلف البيانات هو المصير الحتمي لأي محرك أقراص ثابت. في حين أن محرك الأقراص الجديد لن يواجه هذه المشكلة ، فإن الأقراص الثابتة القديمة ستبدأ بالتدريج في التحول إلى "تالف".
ما يعنيه هذا هو أن أجزاء من القرص الصلب أصبحت غير قابلة للاستخدام ، على الرغم من أن نظام الملفات لا يزال يعتبرها عاملة. تعمل هذه الكتل السيئة على تضخيم المساحة الخالية الظاهرة على محرك الأقراص بشكل خاطئ ، بينما في الحقيقة لا يمكن كتابة أي ملفات إليها. يؤدي هذا إلى ظهور خطأ "لا توجد مساحة متبقية على الجهاز" ، حيث يحاول نظام التشغيل تخزين أي بيانات في هذه المواقع ويفشل فيها.
لا توجد طريقة حقيقية لإصلاح هذه المشكلة ، حيث أن القطاعات السيئة هي نتيجة التآكل المادي لمحرك الأقراص الثابتة. الشيء الوحيد الذي يمكنك فعله هو وضع علامة على القطاعات التالفة حتى لا يعود نظام الملفات يشير إليها.
يتطلب القيام بذلك التمهيد من قرص مضغوط مباشر ، حيث لا يمكنك إجراء فحص نظام الملفات داخل محرك أقراص قيد التشغيل. بمجرد القيام بذلك ، ما عليك سوى استخدام الأمر التالي:
sudo fsck -vcck / dev / sda
هذا يستبدل / dev / sda بمسار محرك الأقراص الذي تريد إصلاحه. سيكتشف هذا تلقائيًا جميع الكتل السيئة على محرك الأقراص ويميزها على أنها غير صالحة للاستعمال. لن يمنحك أي سعة تخزين إضافية ، لذا كن مستعدًا لتنظيف بعض الملفات غير المفيدة لتحرير مساحة على محرك الأقراص.
السبب المعتاد لرؤية خطأ "لا توجد مساحة على الجهاز" على Ubuntu أو أي توزيعة Linux أخرى هو أن الملف المحذوف لا يزال قيد الاستخدام. هذا يحتفظ بالتخزين الذي كان يشغله الملف ، مما يمنع العمليات الأخرى من كتابة البيانات إلى تلك المساحة.
يعد إصلاح هذه المشكلة أيضًا أسهل ، حيث أن كل ما عليك فعله هو إعادة تشغيل العملية المعنية. ومع ذلك ، فإن الأسباب الأخرى للخطأ ليس من السهل حلها.
سواء كان محرك الأقراص الخاص بك يعاني من كتل بيانات سيئة أو نفد من inodes ، فلا توجد طريقة مباشرة لإصلاح هذه المشكلات. يجب عليك حذف الملفات الموجودة لإفساح المجال لكتابة البيانات الجديدة.
الحصول على "خطأ عدم ترك مكان على الجهاز" يفسر القليل جدًا ، خاصةً إذا كان محرك الأقراص الخاص بك بعيدًا عن الامتلاء. لماذا تظهر رسالة الخطأ هذه؟ لماذا لا يمكنك إنشاء ملفات جديدة على الرغم من وجود مساحة كافية على القرص؟ والأهم من ذلك ، كيف تصلحه؟
هيا نكتشف.
هل يحتوي محرك الأقراص الثابتة لديك بالفعل على مساحة كافية؟
قبل أن تتسرع في العثور على حل ، تأكد من وجود مشكلة ، لتبدأ. بعد كل شيء ، إذا نفدت مساحة القرص بالفعل على نظامك ، فلا داعي للذعر. يمكنك فقط إزالة البيانات غير الضرورية لتوفير مساحة أكبر.
يوجد أمرين في نظام Linux للحصول على معلومات حول مساحة القرص - du و df. يقوم الأمر du بتقدير استخدام مساحة القرص ، بينما يقوم الأمر df بتحليل المساحة الخالية الموجودة على القرص. يمنحك استخدامها مع sudo تقريرًا دقيقًا عن مقدار المساحة المتوفرة بالفعل على القرص.
- لنبدأ بأمر du. يمكن أن يكون إخراجها طويلًا ومرهقًا ، لذلك سنستخدم علامتي -s و -h. يلخص -s النتائج ، بينما يضمن -h أنه مقروء من قبل الإنسان. لذا أدخل الأمر sudo du -sh / where / يشير إلى الدليل الأساسي.
- لا تقلق بشأن جميع الرسائل المرفوضة الإذن - فهذه هي الطريقة التي تتصفح بها جميع الأدلة الفرعية للنظام. اعتمادًا على حجم محرك الأقراص ، قد تضطر إلى تركه يعمل لفترة من الوقت ، حيث يمر بشكل متكرر عبر كل شيء.
- عندما تنتهي du من المسح ، ستخرج قائمة بسيطة من الأدلة إلى جانب أحجامها. على سبيل المثال ، هذا هو إخراج أمر du المطبق على دليل عادي.
الآن سوف نستخدم df لمعرفة مقدار المساحة الخالية المتوفرة. يعد الأمر df أبسط بكثير في الاستخدام لأنه يعرض فقط أنظمة الملفات المحملة وإحصائيات الاستخدام الخاصة بها. مرة أخرى ، سنستخدم العلامة -h لجعل المخرجات قابلة للقراءة.
sudo df -h
الفكرة هي حصر نتائج أوامر du و df. يشير أي اختلاف إلى مساحة القرص غير المتوفرة مجانًا على الرغم من عدم استخدامها من قبل أي ملفات أو مجلدات.
لماذا يعرض Linux رسالة "لا توجد مساحة متبقية على الجهاز"؟
إذا كنت ترى رسالة الخطأ "لا توجد مساحة متبقية على الجهاز" على الرغم من وجود مساحة خالية كافية على القرص الخاص بك ، فهذا ليس الجهاز هو المخطئ. قد يستغرق اكتشاف السبب الدقيق للخطأ القليل من استكشاف الأخطاء وإصلاحها.
- الملف المحذوف مؤخرًا : السبب الأكثر شيوعًا لرؤية هذا الخطأ هو الملف المحذوف مؤخرًا. غالبًا ما يتم حذف ملف أثناء استمرار العملية في استخدامه ، مع الاحتفاظ بالمساحة المحجوزة على الرغم من اختفاء الملف بالفعل.
- Inodes غير كافية : سبب آخر متكرر هو عدم وجود عدد كافٍ من inodes. Inodes هي صفحات الفهرس لنظام ملفات Unix ، وتحتوي على البيانات الوصفية لكل ملف على التخزين. ومع ذلك ، فإن inodes ليست غير محدودة ، ونفاد inodes قبل مساحة التخزين يمكن أن يمنحك الخطأ "لا توجد مساحة متبقية على الجهاز".
- فشل القرص الصلب : ثم بالطبع هناك احتمال أن يكون محرك الأقراص الثابتة قد فشل ببساطة ، وأن الكثير من المساحة الخالية الواضحة تشغلها القطاعات التالفة. نظرًا لأن النظام يفشل في كتابة أي ملفات إلى هذه المواقع ، فإنه يتسبب في حدوث خطأ.
الإصلاح 1: إعادة العمليات باستخدام الملفات المحذوفة
السبب الأكثر احتمالاً لظهور الخطأ "لا توجد مساحة على الجهاز" هو استمرار استخدام ملف محذوف. لحسن الحظ ، إصلاح هذا الخطأ سهل. تحتاج فقط إلى إعادة العملية لتحرير مساحة التخزين المحجوزة.
- للعثور على العملية الإشكالية ، تحتاج إلى استخدام الأمرين lsof و grep. سيعطيك الأمر lsof قائمة بجميع الملفات المفتوحة التي يتم استخدامها من خلال العمليات الجارية ، ويمكن لـ grep تضييق التحديد على تلك التي تم حذفها. لذا أدخل sudo lsof / | grep محذوف حيث / هو الدليل الأساسي و | أنبوب لربط إخراج lsof بـ grep.
- يمكنك الآن إعادة تشغيل العملية المتأثرة باستخدام الأمر sudo systemctl reset service_name ، حيث يكون اسم الخدمة هو اسم الخدمة التي ظهرت في البحث.
- إذا كانت هناك عمليات متعددة مثل هذه أو إذا كنت لا ترغب في البحث عن خدمات معينة ، يمكنك فقط إعادة تعيينها جميعًا باستخدام الأمر sudo systemctl daemon-reload . يؤدي هذا إلى إعادة إنشاء جميع التبعيات ، مع مراعاة أي تغييرات في نظام الملفات.
بعد ذلك ، يجب أن تتاح مساحة التخزين التي تعوقها العملية مرة أخرى ، مما يسمح لك بكتابة الملفات دون الوقوع في أي أخطاء.
الإصلاح 2: فحص Inodes
بينما يحتوي كل محرك أقراص على عدد كبير من inodes ، إلا أنه محدود. وإذا كان نظامك مليئًا بعدد لا يصدق من الملفات ، فمن الممكن الوصول إلى هذا الحد قبل استنفاد سعة التخزين لمحرك الأقراص. هذا هو السبب في أنه من الأفضل أن يكون لديك ملفات كبيرة بدلاً من عدد كبير جدًا من الملفات الصغيرة.
يمكنك بسهولة التحقق من توفر inodes باستخدام العلامة -i مع الأمر df. مثله:
sudo df -i
سيوضح هذا العدد الإجمالي لملفات inodes الموجودة في نظام الملفات ، إلى جانب الكمية المستخدمة حاليًا. إذا لم يكن هناك إيداعات حرة متبقية على نظامك ، فهذا هو مصدر الخطأ "لا توجد مساحة على الجهاز".
نظرًا لأنه يتم إنشاء inodes فقط عند التهيئة الأولى لمحرك الأقراص ، فلا توجد طريقة لإنشاء المزيد من inodes. كل ما يمكنك فعله هو حذف أي ملفات غير ضرورية لتحرير inodes للملفات المستقبلية.
الإصلاح 3: وضع علامة على الكتل السيئة
تلف البيانات هو المصير الحتمي لأي محرك أقراص ثابت. في حين أن محرك الأقراص الجديد لن يواجه هذه المشكلة ، فإن الأقراص الثابتة القديمة ستبدأ بالتدريج في التحول إلى "تالف".
ما يعنيه هذا هو أن أجزاء من القرص الصلب أصبحت غير قابلة للاستخدام ، على الرغم من أن نظام الملفات لا يزال يعتبرها عاملة. تعمل هذه الكتل السيئة على تضخيم المساحة الخالية الظاهرة على محرك الأقراص بشكل خاطئ ، بينما في الحقيقة لا يمكن كتابة أي ملفات إليها. يؤدي هذا إلى ظهور خطأ "لا توجد مساحة متبقية على الجهاز" ، حيث يحاول نظام التشغيل تخزين أي بيانات في هذه المواقع ويفشل فيها.
لا توجد طريقة حقيقية لإصلاح هذه المشكلة ، حيث أن القطاعات السيئة هي نتيجة التآكل المادي لمحرك الأقراص الثابتة. الشيء الوحيد الذي يمكنك فعله هو وضع علامة على القطاعات التالفة حتى لا يعود نظام الملفات يشير إليها.
يتطلب القيام بذلك التمهيد من قرص مضغوط مباشر ، حيث لا يمكنك إجراء فحص نظام الملفات داخل محرك أقراص قيد التشغيل. بمجرد القيام بذلك ، ما عليك سوى استخدام الأمر التالي:
sudo fsck -vcck / dev / sda
هذا يستبدل / dev / sda بمسار محرك الأقراص الذي تريد إصلاحه. سيكتشف هذا تلقائيًا جميع الكتل السيئة على محرك الأقراص ويميزها على أنها غير صالحة للاستعمال. لن يمنحك أي سعة تخزين إضافية ، لذا كن مستعدًا لتنظيف بعض الملفات غير المفيدة لتحرير مساحة على محرك الأقراص.
ما هي أفضل طريقة لإصلاح خطأ "عدم ترك مساحة على الجهاز"؟
السبب المعتاد لرؤية خطأ "لا توجد مساحة على الجهاز" على Ubuntu أو أي توزيعة Linux أخرى هو أن الملف المحذوف لا يزال قيد الاستخدام. هذا يحتفظ بالتخزين الذي كان يشغله الملف ، مما يمنع العمليات الأخرى من كتابة البيانات إلى تلك المساحة.
يعد إصلاح هذه المشكلة أيضًا أسهل ، حيث أن كل ما عليك فعله هو إعادة تشغيل العملية المعنية. ومع ذلك ، فإن الأسباب الأخرى للخطأ ليس من السهل حلها.
سواء كان محرك الأقراص الخاص بك يعاني من كتل بيانات سيئة أو نفد من inodes ، فلا توجد طريقة مباشرة لإصلاح هذه المشكلات. يجب عليك حذف الملفات الموجودة لإفساح المجال لكتابة البيانات الجديدة.
التعديل الأخير: