رسالة No space left on device، أو قاعدة بيانات توقفت فجأة، أو موقع لا يحفظ الملفات المرفوعة — كلها علامات قرص ممتلئ. في هذا الدليل الشامل نجد أولًا أين ذهبت المساحة، ثم ننظّفها بأمان، وإن لم يكفِ ذلك نوسّع القرص بعد الترقية — وكل الأوامر مجرّبة على سيرفر حقيقي في مرام هوست، ومنها توسيع فعلي لقرصه من 250 إلى 251GB.
⚡ الإجابة المختصرة
اعرف: df -h ثم sudo du -xh --max-depth=1 / | sort -rh | head. نظّف: sudo apt-get clean وsudo journalctl --vacuum-size=200M وsudo docker system prune. وسّع: بعد ترقية الخطة أعد التشغيل (يتوسع تلقائيًا) أو sudo growpart /dev/sda 1 && sudo resize2fs /dev/sda1.
الخطوة 1: أين ذهبت المساحة؟
ابدأ بـdf -h لترى الصورة العامة، ثم du لتنزل مجلدًا مجلدًا نحو السبب. هذه مخرجات سيرفرنا:

كرّر du على المجلد الأكبر (مثل sudo du -xh --max-depth=1 /var | sort -rh | head) حتى تصل إلى المجلد الذي تضخّم. ولمعرفة أكبر الملفات مباشرة:

الخطوة 2: نظّف بأمان
هذه الأماكن الأشهر لتراكم الملفات، والأوامر آمنة لا تمسّ بياناتك. في سيرفرنا حرّر apt-get clean وحده 290MB:

لا تحذف: /swapfile، أو أي شيء داخل /usr و/boot، أو ملفات قاعدة البيانات في /var/lib/mysql مباشرة. وقبل حذف شيء لا تعرفه خذ لقطة Snapshot.
حالة خاصة — inodes: إن كان df -h يعرض مساحة متاحة والرسالة ما زالت تظهر، فافحص df -i: ربما امتلأ عدد الملفات (ملايين الملفات الصغيرة، غالبًا جلسات PHP أو كاش).
الخطوة 3: لم يكفِ التنظيف؟ رقِّ ووسّع القرص
زيادة المساحة تبدأ بترقية الخطة. بعدها يجب أن تكبر ثلاث طبقات: القرص (sda) ثم القسم (sda1) ثم نظام الملفات (ما يعرضه df). افتح صفحة Disks في لوحة سيرفرك وتأكد من الحجم؛ ولاحظ تنبيه اللوحة بأن أي تعديل على القرص يحتاج إعادة تشغيل:

زر القلم يعدّل الحجم ضمن حدود خطتك فقط — جرّبنا 251 على خطة 250GB فرفضته اللوحة:

بعد توسيع قرص سيرفرنا التجريبي فعلًا، هذا ما ظهر داخله: القرص صار 251G، لكن القسم ونظام الملفات بقيا على الحجم القديم:

الطريقة الأولى — إعادة تشغيل واحدة: قوالب لينكس في مرام تستعمل cloud-init، ووحدة growpart فيه تعمل مع كل إقلاع فتمدّ القسم ونظام الملفات تلقائيًا. هذا سجلّ حقيقي من السيرفر نفسه عند أول تشغيل، حين وسّع نفسه من حجم القالب (نحو 30GB) إلى حجم الخطة:

الطريقة الثانية — بدون إعادة تشغيل: أمران والسيرفر يعمل. هذه المخرجات الحقيقية:

lsblk # اسم القرص ورقم القسم (هنا sda و1)
sudo growpart /dev/sda 1 # لاحظ المسافة بين sda و1
df -T / # نوع نظام الملفات
sudo resize2fs /dev/sda1 # ext4 (Ubuntu وDebian)
sudo xfs_growfs / # xfs
df -h / # تحقّق
لكي لا يمتلئ مجددًا
- حدّد حجم سجلات النظام دائمًا: أضف
SystemMaxUse=200Mفي/etc/systemd/journald.confثمsudo systemctl restart systemd-journald. - نظّف Docker دوريًا، وحدّد حجم سجلات الحاويات (
max-sizeفي/etc/docker/daemon.json). - لا تحتفظ بنسخ احتياطية داخل السيرفر نفسه — استعمل النسخ الاحتياطي في لوحة مرام.
- اعرف الامتلاء قبل أن يحدث: ألقِ نظرة أسبوعية على
df -h، أو على عدّاد «المساحة المستهلكة» في صفحة الخدمة.
