در سیستم عامل های لینوکسی هنگامی که خطای No space left on device مواجه میشوید که فضای موجود شما پر شده است و دیگر امکان نصب پکیج های جدید و راه اندازی سرویس جدید امکان پذیر نمیباشد و شما میبایست فضای پر شده را خالی کنید. یکی از رایج ترین مشکلاتی است که کاربران با آن مواجه میشوند.
در این مقاله دلایل اصلی خطای Disk Full در لینوکس و نحوه آزادسازی فضا را توضیح میدهیم.
دلایل خطای Disk Full در لینوکس
در اینجا دلایلی که میتواند باعث ایجاد خطای Disk Full در لینوکس را برای شما شرح میدهیم :
پر شدن واقعی فضای دیسک: ساده ترین و رایج ترین دلیل این است که پارتیشن شما کاملاً پر شده است .
فایلهای حذف شده اما باز : سیستم عامل تا زمانی که برنامه، فایل را نبندد یا سرویس مربوطه ری استارت نشود، فضای اشغال شده را آزاد نمیکند.
پر شدن inode ها : حتی اگر فضای دیسک فیزیکی خالی باشد، اگر تعداد inode های مجاز به پایان برسد، سیستم نمیتواند فایل جدیدی ایجاد کند و خطای Disk Full در لینوکس رخ میدهد.
فضای رزرو شده : اگر فضای دیسک به زیر این ۵ درصد برسد، کاربران عادی خطای Disk Full را مشاهده میکنند در حالی که ۵ درصد فضا هنوز “قابل دسترس” است.
نحوه رفع خطای Disk Full در لینوکس و نحوه آزادسازی فضا
ابتدا برای اینکه ببینید چه مقدار از هارد درگیر شده است از دستور df -h استفاده نمایید .

با دستور زیر میتوانید دایرکتوری هایی که فضای بیشتری را از هارد شما را اشغال میکنند را مشاهده نمایید
du -sh /* 2>/dev/null | sort -h
از دستور du برای بررسی اینکه کدام دایرکتوری ها بیشترین فضا را اشغال کرده اند، استفاده کنید.

همچنین با دستورهای
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
میتوانید بدون اینکه فایل ها را پاک کنید لاگ های موجود را پاک نمایید.
با دستور sudo find /var/log -type f -name “*.log” -delete لاگ های قدیمی خود را پاک نمایید.
توجه داشته باشید بهتر است لاگ های قدیمی سرور را پاک نکنید و در صورت نیاز به فضای بیشتر این کار را انجام دهید. وهمچنین میتوانید cache پکیج های نصب شده را نیز با دستور زیر پاک نمایید.
sudo apt-get clean
sudo apt-get autoclean
و با دستور du -sh /var/cache/apt میزان حجم درگیر شده cache را مشاهده نمایید.

با دستور زیر نیز میتوانید فایل های موقت خود را حذف نمایید.
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
پر شدن فضا در سیستم عامل های لینوکسی یک مشکل بسیار رایج میباشد که باید مراحل زیر را بررسی نمایید و توضیحات ارائه گردید .
بررسی دیسک با df -h
پیدا کردن و بررسی فایل های با حجم بالا du -sh
پاک سازی لاگ ها و فایل های اضافه.در نظر داشته باشید پس از مراحل بالا که دستورات آن را در این مقاله نیز نوشته شده است میتوانید مقدار زیادی از فضا را خالی نمایید.
نتیجهگیری مدیریت خطای Disk Full در لینوکس
خطای Disk Full در سیستم عامل لینوکس زمانی رخ میدهد که فضای ذخیره سازی یک پارتیشن یا تعداد inode های آن به اتمام رسیده باشد. برای رفع این مشکل، گام اول تشخیص پارتیشن مورد نظر با دستور df -h و سپس پیدا کردن دایرکتوری های پرحجم توسط du -sch است. سریع ترین راه برای آزادسازی فضا، پاکسازی کش های مدیر بسته (مانند apt clean) و حذف هسته های قدیمی (apt autoremove) است. توجه ویژه به دایرکتوری /var/log و خالی کردن فایلهای لاگ حجیم با truncate ضروری است. در مواردی که فضا پس از حذف فایلها آزاد نمیشود، باید فرآیند هایی که فایلهای حذفشده را باز نگه داشته اند (قابل شناسایی با lsof)، ری استارت شوند تا فضای دیسک به درستی بازگردد. نظارت منظم و اجرای دوره ای دستورات پاکسازی، کلید اصلی پیشگیری از این خطا است. همچنین در این مقاله ما راه حل هایی برای آزاد سازی فضای دیسک و تشخیص این موضوع که چه مقداری از دیسک شما در دسترس است به شما ارائه کردیم.


