ENOSPC (errno 28)
errno 28
الرسالة الرسمية (كما تظهر على الشاشة): No space left on device
يُبحث عنه أيضًا باسم: No space left on device, errno 28, ENOSPC: System limit for number of file watchers reached
ماذا يعني
تعني ENOSPC، أي 'No space left on device' (errno 28)، أن عملية كتابة فشلت لأن نظام الملفات لا يملك مساحة. وقد يعني ذلك عدم وجود كتل حرة، أو عدم وجود inodes حرة، أو، وهو الأكثر إرباكاً، استنفاد حد مراقبة inotify (شائع مع مراقبات ملفات Node.js).
ينطبق على: Linux, macOS (BSD errno), WSL, حاويات Docker
كيفية إصلاح ENOSPC (errno 28)
- افحص المساحة الحرة بالأمر 'df -h' والـ inodes الحرة بالأمر 'df -i'؛ فبلوغ أيٍّ منهما 100% يسبب ENOSPC
- اعثر على المجلدات الكبيرة بالأمر 'sudo du -xh / --max-depth=2 | sort -h | tail -20'
- نظّف الأهداف الآمنة: السجلات القديمة ('journalctl --vacuum-size=200M') وذاكرة الحزم المؤقتة ('apt clean') وبيانات Docker ('docker system prune')
- إذا أظهر 'df' مساحة لكن الحذف لا يحررها، فهناك عملية ما زالت تبقي ملفاً محذوفاً مفتوحاً: اعثر عليها بالأمر 'lsof +L1' وأعد تشغيلها
- إذا استنفدت ملفات صغيرة كثيرة الـ inodes، فاحذفها أو أرشفها (مجلدات الجلسات أو الذاكرة المؤقتة نموذجية)
- لأخطاء المراقبات ('System limit for number of file watchers reached')، ارفع 'fs.inotify.max_user_watches' بالأمر 'sudo sysctl fs.inotify.max_user_watches=524288' وثبّته في /etc/sysctl.d/
- تذكّر أن ext4 يحجز نحو 5% من الكتل لـ root افتراضياً؛ فيحصل المستخدمون العاديون على ENOSPC قبل أن يصل 'df' إلى 100%
سبب حدوثه
تحتاج الكتابة إلى كتل بيانات وإلى inodes معاً. وأسباب الخطأ: أقراص ممتلئة، واستنفاد inodes بسبب ملفات صغيرة كثيرة، وملفات محذوفة لكنها مفتوحة، وحدود شبيهة بالحصص، وحد مراقبة inotify (الذي يُرجع ENOSPC أيضاً).
الأسئلة الشائعة
لماذا تظهر 'No space left on device' بينما يعرض df مساحة حرة؟
افحص inodes بالأمر 'df -i'، وابحث عن ملفات محذوفة تبقى مفتوحة بالأمر 'lsof +L1'، وتحقق مما إذا كان الخطأ في الحقيقة حد مراقبة inotify.
كيف أصلح ENOSPC في Node.js أو مراقبة ملفات VS Code؟
ارفع fs.inotify.max_user_watches عبر sysctl؛ فهو حد للمراقبات وليس مساحة القرص.
أخطاء ذات صلة
المصدر: Linux kernel errno.h · حلول كتبها المحررون وراجعوها (راجع السياسة التحريرية)
آخر تحديث: