{"id":6425,"date":"2026-03-10T16:08:22","date_gmt":"2026-03-10T10:38:22","guid":{"rendered":"https:\/\/owrbit.com\/hub\/?p=6425"},"modified":"2026-03-10T16:31:52","modified_gmt":"2026-03-10T11:01:52","slug":"fix-no-space-left-on-device-but-df-h-shows-space","status":"publish","type":"post","link":"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/","title":{"rendered":"Fix: &#8220;No Space Left on Device&#8221; But df -h Shows Free Space"},"content":{"rendered":"\n<p>You\u2019re deploying something simple\u2014pulling a Docker image, uploading a backup, or running a database job\u2014when your terminal suddenly stops with:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>No space left on device<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Your app fails, your task crashes, and everything grinds to a halt.<\/p>\n\n\n\n<p>So you check the obvious thing:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>df -h<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>But the output shows <strong>plenty of free disk space<\/strong>.<\/p>\n\n\n\n<p>Now the confusion begins. You\u2019re stuck in the frustrating situation many admins search for: no space left on device but df -h shows space. The server clearly has free gigabytes, yet Linux refuses to write anything.<\/p>\n\n\n\n<p>Next you check directory usage:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>du -sh *<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Still nothing unusual. This leads to another common mystery: linux disk full but du shows space.<\/p>\n\n\n\n<p>When this happens, you\u2019re usually facing a <strong>\u201cghost disk full\u201d problem<\/strong>. The disk looks fine, but something deeper in the filesystem is blocking writes.<\/p>\n\n\n\n<p>In most cases the cause is <strong>inode exhaustion<\/strong> or <strong>deleted files still held open by running processes<\/strong>. In this guide, we\u2019ll quickly diagnose the issue and show the <strong>exact commands<\/strong> to fix it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-1024x574.png\" alt=\"\" class=\"wp-image-6427\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Why_Your_Server_Says_%E2%80%9CDisk_Full%E2%80%9D_When_It_Clearly_Isnt\" >Why Your Server Says \u201cDisk Full\u201d When It Clearly Isn\u2019t?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Reason_1_Inode_Exhaustion_%E2%80%94_The_Hidden_Cause_Behind_%E2%80%9CDisk_Full%E2%80%9D_Errors\" >Reason #1: Inode Exhaustion \u2014 The Hidden Cause Behind \u201cDisk Full\u201d Errors<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Step_1_Check_Inode_Usage\" >Step 1: Check Inode Usage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Step_2_Find_the_Directory_Creating_Millions_of_Files\" >Step 2: Find the Directory Creating Millions of Files<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Step_3_Clean_Up_Safely\" >Step 3: Clean Up Safely<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Reason_2_Deleted_Files_Still_Consuming_Disk_Space\" >Reason #2: Deleted Files Still Consuming Disk Space<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Step_1_Find_Hidden_Deleted_Files_with_lsof\" >Step 1: Find Hidden Deleted Files with lsof<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Step_2_Restart_the_Process_to_Reclaim_Disk_Space\" >Step 2: Restart the Process to Reclaim Disk Space<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Why_Cheap_VPS_Hosting_Often_Causes_These_%E2%80%9CGhost_Disk_Full%E2%80%9D_Errors\" >Why Cheap VPS Hosting Often Causes These \u201cGhost Disk Full\u201d Errors?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#The_Permanent_Fix_Unrestricted_Hardware_by_Owrbit\" >The Permanent Fix: Unrestricted Hardware by Owrbit<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Owrbit_KVM_VPS_Built_for_Real_Production_Workloads\" >Owrbit KVM VPS: Built for Real Production Workloads<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Upgrade_to_Infrastructure_That_Doesnt_Fight_Your_Work\" >Upgrade to Infrastructure That Doesn\u2019t Fight Your Work :<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Frequently_Asked_Questions_FAQ\" >Frequently Asked Questions (FAQ) :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/owrbit.com\/hub\/fix-no-space-left-on-device-but-df-h-shows-space\/#Conclusion_Fix_the_%E2%80%9CGhost_Disk_Full%E2%80%9D_Error_Stop_Fighting_Server_Limits\" >Conclusion: Fix the \u201cGhost Disk Full\u201d Error &amp; Stop Fighting Server Limits<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Why_Your_Server_Says_%E2%80%9CDisk_Full%E2%80%9D_When_It_Clearly_Isnt\"><\/span>Why Your Server Says \u201cDisk Full\u201d When It Clearly Isn\u2019t?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>You already did the logical thing. You checked your storage.<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>df -h<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>The output shows <strong>gigabytes of free space<\/strong>, yet your server keeps crashing with write errors. Uploads fail, Docker pulls stop midway, and logs refuse to grow. This is the exact situation thousands of developers search for every day: no space left on device but df -h shows space.<\/p>\n\n\n\n<p>Naturally you check directory usage next and discover another confusing result: linux disk full but du shows space.<\/p>\n\n\n\n<p>At this point it feels like Linux is lying to you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-1024x574.png\" alt=\"\" class=\"wp-image-6429\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Confused-Developer-Disk-Full-Error.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>But it\u2019s not.<\/p>\n\n\n\n<p>This is a classic <strong>\u201cghost disk full\u201d problem<\/strong>. Your disk isn\u2019t actually full in terms of storage blocks. Instead, the filesystem has hit a hidden limit. In almost every case, the cause comes down to <strong>two specific issues: inode exhaustion or deleted files still being held open by running processes<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Reason_1_Inode_Exhaustion_%E2%80%94_The_Hidden_Cause_Behind_%E2%80%9CDisk_Full%E2%80%9D_Errors\"><\/span>Reason #1: Inode Exhaustion \u2014 The Hidden Cause Behind \u201cDisk Full\u201d Errors<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>One of the most common reasons servers break with no space left on device but df -h shows space is something most people never check: <strong>inodes<\/strong>.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.redhat.com\/sysadmin\/inodes-linux-filesystem\" target=\"_blank\" rel=\"noopener\">Linux filesystems<\/a> don\u2019t only track storage size. They also track the <strong>number of files<\/strong> that can exist on the disk. Each file uses one <strong>inode<\/strong>, which acts like a record describing that file.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Your disk isn\u2019t actually full in terms of storage blocks. Instead, the Linux filesystem has hit a hidden, hardcoded limit. It is not running out of gigabytes; it is running out of file entries.<\/p>\n<\/blockquote>\n\n\n\n<p>When the system runs out of inodes, <strong>Linux cannot create new files<\/strong>, even if you still have hundreds of gigabytes free. This is why many developers experience linux disk full but du shows space. The disk capacity is available, but the filesystem has run out of file entries.<\/p>\n\n\n\n<p>Modern development tools are notorious for causing this. Applications like <strong>Docker, <\/strong><a href=\"https:\/\/owrbit.com\/nodejs-hosting\">Node.js<\/a><strong> npm, caching systems, and log-heavy services<\/strong> can create <strong>millions of tiny files<\/strong>. These small files barely consume storage, but they rapidly consume inodes.<\/p>\n\n\n\n<p>Once the inode limit is reached, the system starts throwing errors like no space left on device but df -h shows space, even though disk usage looks completely normal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-1024x574.png\" alt=\"\" class=\"wp-image-6430\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Inode-Exhaustion-Hard-Drive-Inspection.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_1_Check_Inode_Usage\"><\/span>Step 1: <a href=\"https:\/\/www.gnu.org\/software\/coreutils\/manual\/html_node\/df-invocation.html\" target=\"_blank\" rel=\"noopener\">Check Inode Usage<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>First, verify whether your server has run out of inodes.<\/p>\n\n\n\n<p>Run this command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>df -i<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Example output might look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>Filesystem      Inodes   IUsed   IFree IUse% \n\/dev\/sda1      6553600 6553600       0  100% \n<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>If the <strong>IUse% column shows 100%<\/strong>, your server has hit inode exhaustion. This is one of the most common causes behind no space left on device but df -h shows space and also explains why many admins encounter linux disk full but du shows space.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_2_Find_the_Directory_Creating_Millions_of_Files\"><\/span>Step 2: Find the Directory Creating Millions of Files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Once you confirm inode exhaustion, the next step is identifying <strong>which directory is creating excessive files<\/strong>.<\/p>\n\n\n\n<p>Run the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>find \/ -xdev -type f | cut -d \"\/\" -f 2 | sort | uniq -c | sort -n<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>This command scans the filesystem and counts how many files exist in each top-level directory. The directories with the <strong>largest file counts<\/strong> usually contain the culprit.<\/p>\n\n\n\n<p>Typical problem locations include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.docker.com\/storage\/storagedriver\/overlayfs-driver\/\" target=\"_blank\" rel=\"noopener\">Docker container layers<\/a><\/strong><\/li>\n\n\n\n<li><strong>npm or Node.js cache folders<\/strong><\/li>\n\n\n\n<li><strong>temporary build files<\/strong><\/li>\n\n\n\n<li><strong>log directories<\/strong><\/li>\n\n\n\n<li><strong>mail queues<\/strong><\/li>\n\n\n\n<li><strong>application cache directories<\/strong><\/li>\n<\/ul>\n\n\n\n<p>These locations can silently generate millions of small files, leading to linux disk full but du shows space and repeated no space left on device but df -h shows space errors.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_3_Clean_Up_Safely\"><\/span>Step 3: Clean Up Safely<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Once you identify the directory responsible for the excessive files, remove unnecessary data carefully.<\/p>\n\n\n\n<p>Common cleanup examples include:<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.npmjs.com\/cli\/v11\/commands\/npm-cache\/\" target=\"_blank\" rel=\"noopener\">Cleaning package cache<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>npm cache clean --force<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Cleaning Docker artifacts:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>docker system prune -a<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Removing old logs:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>rm -rf \/var\/log\/*.gz<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>Clearing temporary files:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>rm -rf \/tmp\/*<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>After cleanup, check inode usage again:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>df -i<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>If inode usage drops significantly, the filesystem will start accepting new files again and the no space left on device but df -h shows space error should disappear.<\/p>\n\n\n\n<p>Understanding inode exhaustion is critical for diagnosing strange filesystem issues. Many engineers spend hours debugging linux disk full but du shows space problems before realizing the real issue is <strong>running out of file entries rather than disk capacity<\/strong>.<\/p>\n\n\n\n<p>In the next section, we\u2019ll cover the <strong>second major cause<\/strong> of this problem: <strong>deleted files that are still being held open by running processes<\/strong>, another classic trigger behind no space left on device but df -h shows space.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Reason_2_Deleted_Files_Still_Consuming_Disk_Space\"><\/span>Reason #2: Deleted Files Still Consuming Disk Space<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Another extremely common reason behind no space left on device but df -h shows space is when a <strong>deleted file is still being used by a running process<\/strong>.<\/p>\n\n\n\n<p>This usually happens with <strong>large log files<\/strong>.<\/p>\n\n\n\n<p>For example, imagine your <strong><a href=\"https:\/\/docs.nginx.com\/nginx\/admin-guide\/monitoring\/logging\/\" target=\"_blank\" rel=\"noopener\">Nginx access log<\/a> grows to several gigabytes<\/strong>. To free space, you delete the file manually. But the <strong>Nginx process is still running<\/strong>, and Linux keeps the file handle open in memory.<\/p>\n\n\n\n<p>So even though the file is gone from the filesystem, the disk space <strong>is not actually released<\/strong>.<\/p>\n\n\n\n<p>This is why many admins see linux disk full but du shows space. The file is invisible to normal disk usage tools, but the space is still reserved by the running application. This situation frequently triggers no space left on device but df -h shows space, especially on production servers running heavy logging workloads.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-1024x574.png\" alt=\"\" class=\"wp-image-6431\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Deleted-Files-Consuming-Disk-Space.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_1_Find_Hidden_Deleted_Files_with_lsof\"><\/span>Step 1: Find Hidden Deleted Files with lsof<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To detect these \u201cghost files\u201d, you can use the <a href=\"https:\/\/man7.org\/linux\/man-pages\/man8\/lsof.8.html\" target=\"_blank\" rel=\"noopener\"><strong>lsof<\/strong> command<\/a>. It lists open files that processes are still using.<\/p>\n\n\n\n<p>Run:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>lsof +L1<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>This command searches for <strong>deleted files that are still being held open by active processes<\/strong>.<\/p>\n\n\n\n<p>You might see output like:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>nginx   1283 www-data  3w   REG   8,1  204857600  12345 \/var\/log\/nginx\/access.log (deleted)<\/code><\/strong>\n<strong><code>node    2421 appuser   4w   REG   8,1  509857600  23456 \/var\/log\/app.log (deleted)\n<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>This means the file has been removed, but the <strong>process is still writing to it in the background<\/strong>.<\/p>\n\n\n\n<p>This invisible disk usage is one of the main causes of linux disk full but du shows space, and it commonly leads to no space left on device but df -h shows space errors that confuse even experienced sysadmins.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_2_Restart_the_Process_to_Reclaim_Disk_Space\"><\/span>Step 2: Restart the Process to Reclaim Disk Space<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Once you identify the process holding the deleted file, the fix is simple: <strong>restart the service<\/strong> so the file handle closes and the space is released.<\/p>\n\n\n\n<p>For example, if Nginx is holding the file:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>systemctl restart nginx<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>If the issue is coming from another service, restart that specific process instead.<\/p>\n\n\n\n<p>After restarting the service, Linux will finally release the reserved blocks and the no space left on device but df -h shows space problem should disappear immediately.<\/p>\n\n\n\n<p>You can verify the fix by checking disk usage again:<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code><strong><code>df -h<\/code><\/strong><\/code><\/pre>\n\n\n\n<p>In many real-world cases, administrators discover that several gigabytes of space suddenly become available. This confirms that the issue was caused by <strong>hidden deleted files holding disk space<\/strong>, another major trigger behind linux disk full but du shows space errors.<\/p>\n\n\n\n<p>Understanding this behavior is crucial for troubleshooting production servers. Without checking for open deleted files, admins can spend hours searching for disk usage that <strong>doesn\u2019t appear anywhere in the filesystem<\/strong>, while the system keeps reporting no space left on device but df -h shows space.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Why_Cheap_VPS_Hosting_Often_Causes_These_%E2%80%9CGhost_Disk_Full%E2%80%9D_Errors\"><\/span>Why Cheap VPS Hosting Often Causes These \u201cGhost Disk Full\u201d Errors?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you keep running into no space left on device but df -h shows space or linux disk full but du shows space, the problem may not just be your applications. Often, the real issue is the <strong>underlying hosting infrastructure<\/strong>.<\/p>\n\n\n\n<p>Many budget VPS providers oversell their hardware. To fit hundreds of users on a single physical machine, they configure filesystems with <strong>very low inode limits<\/strong> or restrictive storage setups. This means your server might technically have gigabytes of disk space available, but the filesystem runs out of usable file entries quickly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-1024x574.png\" alt=\"\" class=\"wp-image-6432\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Frustrated-Sysadmin-with-Ghost-Files.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When that happens, your system throws errors like no space left on device but df -h shows space, even though the disk appears mostly empty. Developers frequently waste hours debugging caches, Docker layers, or logs, only to discover the real cause is <strong>infrastructure limits imposed by cheap hosting environments<\/strong>.<\/p>\n\n\n\n<p>The same thing happens with shared storage environments that trigger linux disk full but du shows space issues. These setups often rely on heavily shared disks, overlay filesystems, or restrictive quotas that make disk usage behave unpredictably.<\/p>\n\n\n\n<p>Instead of focusing on building applications, developers end up <strong>constantly micromanaging storage, clearing caches, and fighting filesystem limits<\/strong>. In many cases, the recurring no space left on device but df -h shows space problem isn\u2019t a software bug\u2014it\u2019s a sign that the server environment has simply been pushed beyond what budget hosting can reliably handle.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"The_Permanent_Fix_Unrestricted_Hardware_by_Owrbit\"><\/span>The Permanent Fix: Unrestricted Hardware by <a href=\"https:\/\/owrbit.com\/\" data-type=\"link\" data-id=\"https:\/\/owrbit.com\/\">Owrbit<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you\u2019ve fixed the immediate issue but keep seeing no space left on device but df -h shows space or linux disk full but du shows space, it may be time to look beyond temporary fixes.<\/p>\n\n\n\n<p>Cleaning caches, removing logs, or restarting services solves the problem once. But if the server environment itself has <strong>filesystem limits, inode restrictions, or oversold storage<\/strong>, the issue will return again.<\/p>\n\n\n\n<p>Many developers experience recurring linux disk full but du shows space errors simply because their hosting environment was never designed for heavy workloads like <strong>Docker, Node.js, high-traffic APIs, or large databases<\/strong>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Modern deployment stacks\u2014like Docker containers and heavy <a href=\"https:\/\/owrbit.com\/nodejs-hosting\">Node.js<\/a> applications\u2014were never designed to run on heavily restricted, shared budget environments. They require raw, unrestricted hardware to function efficiently.<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-1024x574.png\" alt=\"\" class=\"wp-image-6433\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Unrestricted-Server-Hardware-Fix.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-white-background-color has-background\"><span class=\"ez-toc-section\" id=\"Owrbit_KVM_VPS_Built_for_Real_Production_Workloads\"><\/span><a href=\"https:\/\/owrbit.com\/vps-hosting\">Owrbit KVM VPS<\/a>: Built for Real Production Workloads<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Owrbit provides <strong>KVM-based VPS and Dedicated Servers designed for professional workloads<\/strong>. Unlike oversold environments, Owrbit servers run on <strong>fully isolated virtualization with dedicated resources and standard filesystem limits<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-1024x574.png\" alt=\"\" class=\"wp-image-6434\" srcset=\"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-1024x574.png 1024w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-300x168.png 300w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-768x431.png 768w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-542x304.png 542w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-1084x608.png 1084w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-792x444.png 792w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers-1230x690.png 1230w, https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/Owrbit-KVM-VPS-Production-Servers.png 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This means you get:<\/p>\n\n\n\n<p>\u2022 <strong>Unrestricted inode limits suitable for modern applications<\/strong><br>\u2022 <strong>Dedicated disk resources without aggressive overselling<\/strong><br>\u2022 <strong>No noisy neighbor CPU or disk throttling<\/strong><br>\u2022 <strong>Full root access in an unmanaged environment<\/strong><br>\u2022 Infrastructure designed for <strong>Docker, heavy web apps, and large-scale projects<\/strong><\/p>\n\n\n\n<p>With proper infrastructure, issues like no space left on device but df -h shows space and linux disk full but du shows space become far less common because your filesystem and storage are not artificially constrained.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Upgrade_to_Infrastructure_That_Doesnt_Fight_Your_Work\"><\/span>Upgrade to Infrastructure That Doesn\u2019t Fight Your Work :<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>If you\u2019re tired of repeatedly debugging linux disk full but du shows space or chasing mysterious no space left on device but df -h shows space errors, it may be time to move to infrastructure built for serious workloads.<\/p>\n\n\n\n<p>Explore Owrbit\u2019s high-performance VPS and Dedicated Servers here:<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><a href=\"https:\/\/owrbit.com\/\">https:\/\/owrbit.com\/<\/a><\/p>\n\n\n\n<p>With <strong>unrestricted environments, reliable storage, and dedicated resources<\/strong>, you can focus on building your applications instead of constantly troubleshooting server limits.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions_FAQ\"><\/span>Frequently Asked Questions (FAQ) :<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Before diving into the questions, here are some of the <strong>most common issues developers and system administrators search for<\/strong> when dealing with no space left on device but df -h shows space or linux disk full but du shows space. These answers address the real problems behind mysterious Linux disk errors and provide quick explanations you can apply on your server.<\/p>\n\n\n<style>#sp-ea-6426 .spcollapsing { height: 0; overflow: hidden; transition-property: height;transition-duration: 300ms;}#sp-ea-6426.sp-easy-accordion>.sp-ea-single {margin-bottom: 10px; border: 1px solid #e2e2e2; }#sp-ea-6426.sp-easy-accordion>.sp-ea-single>.ea-header a {color: #444;}#sp-ea-6426.sp-easy-accordion>.sp-ea-single>.sp-collapse>.ea-body {background: #fff; color: #444;}#sp-ea-6426.sp-easy-accordion>.sp-ea-single {background: #eee;}#sp-ea-6426.sp-easy-accordion>.sp-ea-single>.ea-header a .ea-expand-icon { float: left; color: #444;font-size: 16px;}<\/style><div id=\"sp_easy_accordion-1773137487\"><div id=\"sp-ea-6426\" class=\"sp-ea-one sp-easy-accordion\" data-ea-active=\"ea-click\" data-ea-mode=\"vertical\" data-preloader=\"\" data-scroll-active-item=\"\" data-offset-to-scroll=\"0\"><div class=\"ea-card ea-expand sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64260\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64260\" aria-controls=\"collapse64260\" href=\"#\" aria-expanded=\"true\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-minus\"><\/i> Why do I get \u201cNo space left on device\u201d even though df -h shows free space?<\/a><\/h5><div class=\"sp-collapse spcollapse collapsed show\" id=\"collapse64260\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64260\"> <div class=\"ea-body\"><p data-start=\"117\" data-end=\"513\">This usually means your disk is not full in terms of storage blocks. Instead, the filesystem has hit another limit. The most common causes are <strong data-start=\"260\" data-end=\"280\">inode exhaustion<\/strong> or <strong data-start=\"284\" data-end=\"338\">deleted files still held open by running processes<\/strong>. In both situations, Linux cannot create new files, which triggers the error no space left on device but df -h shows space even when gigabytes of disk space remain available.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64261\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64261\" aria-controls=\"collapse64261\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> What does \u201clinux disk full but du shows space\u201d mean?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64261\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64261\"> <div class=\"ea-body\"><p data-start=\"578\" data-end=\"946\">When linux disk full but du shows space appears, it means the filesystem usage reported by the kernel is different from what directory scanning tools can see. This typically happens when a <strong data-start=\"767\" data-end=\"824\">deleted file is still being used by a running process<\/strong>, or when the system has <strong data-start=\"849\" data-end=\"870\">run out of inodes<\/strong>. In both cases, disk space exists but the system cannot allocate new files.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64262\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64262\" aria-controls=\"collapse64262\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How do I check if my Linux server has run out of inodes?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64262\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64262\"> <div class=\"ea-body\"><p data-start=\"1015\" data-end=\"1059\">You can check inode usage with this command:<\/p><div class=\"relative w-full mt-4 mb-1\"><div class=\"\"><div class=\"relative\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\"><div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\"><div class=\"pe-11 pt-3\"><div class=\"relative z-0 flex max-w-full\"><div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\"><div class=\"cm-scroller\"><blockquote><div class=\"cm-content q9tKkq_readonly\">df -i<\/div><\/blockquote><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p data-start=\"1076\" data-end=\"1248\">If the <strong data-start=\"1083\" data-end=\"1122\">IUse% column is close to or at 100%<\/strong>, your server has run out of inodes. This is a very common reason for the error no space left on device but df -h shows space.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64263\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64263\" aria-controls=\"collapse64263\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> What are inodes in Linux?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64263\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64263\"> <div class=\"ea-body\"><p data-start=\"1286\" data-end=\"1625\">Inodes are filesystem data structures that store information about files such as <strong data-start=\"1367\" data-end=\"1421\">ownership, permissions, size, and location on disk<\/strong>. Every file uses one inode. If your filesystem runs out of inodes, Linux cannot create new files even if storage space is still available. This often results in linux disk full but du shows space errors.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64264\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64264\" aria-controls=\"collapse64264\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Why do Docker and Node.js servers run out of inodes quickly?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64264\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64264\"> <div class=\"ea-body\"><p data-start=\"1698\" data-end=\"2030\">Modern application stacks generate <strong data-start=\"1733\" data-end=\"1760\">millions of small files<\/strong>. Tools like Docker, npm, yarn, caching layers, and log-heavy applications constantly create temporary files and layers. These files consume inodes rapidly, which can cause no space left on device but df -h shows space even though the actual disk capacity is still free.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64265\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64265\" aria-controls=\"collapse64265\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How do I find which directory has too many files?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64265\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64265\"> <div class=\"ea-body\"><blockquote><p data-start=\"2092\" data-end=\"2152\">You can identify directories with massive file counts using:<\/p><\/blockquote><div class=\"relative w-full mt-4 mb-1\"><div class=\"\"><div class=\"relative\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\"><div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\"><div class=\"pe-11 pt-3\"><div class=\"relative z-0 flex max-w-full\"><div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\"><div class=\"cm-scroller\"><blockquote><div class=\"cm-content q9tKkq_readonly\"><strong>find \/ -xdev -type f | cut -d \"\/\" -f 2 | sort | uniq -c | sort -n<\/strong><\/div><\/blockquote><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p data-start=\"2229\" data-end=\"2345\">This helps locate folders generating excessive files, which is a common cause of linux disk full but du shows space.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64266\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64266\" aria-controls=\"collapse64266\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Why does deleting a log file not free disk space immediately?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64266\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64266\"> <div class=\"ea-body\"><p data-start=\"2419\" data-end=\"2691\">If a process is still writing to the file, Linux keeps the file open internally even after deletion. The disk blocks remain reserved until the process stops. This is why many administrators encounter no space left on device but df -h shows space after deleting large logs.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64267\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64267\" aria-controls=\"collapse64267\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How do I find deleted files that are still consuming disk space?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64267\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64267\"> <div class=\"ea-body\"><p data-start=\"2768\" data-end=\"2810\">You can detect hidden deleted files using:<\/p><div class=\"relative w-full mt-4 mb-1\"><div class=\"\"><div class=\"relative\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\"><div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\"><div class=\"pe-11 pt-3\"><div class=\"relative z-0 flex max-w-full\"><div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\"><div class=\"cm-scroller\"><blockquote><div class=\"cm-content q9tKkq_readonly\">lsof +L1<\/div><\/blockquote><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p data-start=\"2830\" data-end=\"2992\">This command lists files that were deleted but are still held open by running processes. These hidden files often cause linux disk full but du shows space errors.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64268\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64268\" aria-controls=\"collapse64268\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Can Docker containers cause \u201cNo space left on device\u201d errors?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64268\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64268\"> <div class=\"ea-body\"><p data-start=\"3404\" data-end=\"3632\">Yes. Docker frequently creates <strong data-start=\"3435\" data-end=\"3477\">layers, volumes, logs, and cache files<\/strong>. Over time these can consume both disk space and inodes. Cleaning unused containers and images can help prevent linux disk full but du shows space errors.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-64269\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse64269\" aria-controls=\"collapse64269\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How do I clean unused Docker files?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse64269\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-64269\"> <div class=\"ea-body\"><p data-start=\"3680\" data-end=\"3724\">You can remove unused Docker resources with:<\/p><div class=\"relative w-full mt-4 mb-1\"><div class=\"\"><div class=\"relative\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"h-full min-h-0 min-w-0\"><div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\"><div class=\"h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse\/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback\"><div class=\"pe-11 pt-3\"><div class=\"relative z-0 flex max-w-full\"><div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037c5 \u037cj\" dir=\"ltr\"><div class=\"cm-scroller\"><blockquote><div class=\"cm-content q9tKkq_readonly\"><strong>docker system prune -a<\/strong><\/div><\/blockquote><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p data-start=\"3758\" data-end=\"3899\">This command clears unused images, containers, and networks that may be contributing to no space left on device but df -h shows space issues.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-642610\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse642610\" aria-controls=\"collapse642610\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> Can cheap VPS hosting cause disk space errors?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse642610\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-642610\"> <div class=\"ea-body\"><p data-start=\"3958\" data-end=\"4177\">Yes. Many low-cost VPS providers configure filesystems with <strong data-start=\"4018\" data-end=\"4078\">restricted inode limits or oversold storage environments<\/strong>. This can cause linux disk full but du shows space errors even when the disk appears mostly empty.<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-642611\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse642611\" aria-controls=\"collapse642611\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> How can I prevent \u201cNo space left on device\u201d errors in the future?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse642611\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-642611\"> <div class=\"ea-body\"><p data-start=\"4255\" data-end=\"4329\">To avoid recurring no space left on device but df -h shows space problems:<\/p><p data-start=\"4331\" data-end=\"4548\">\u2022 Monitor inode usage regularly<br data-start=\"4362\" data-end=\"4365\" \/>\u2022 Rotate and compress logs<br data-start=\"4391\" data-end=\"4394\" \/>\u2022 Clean application caches<br data-start=\"4420\" data-end=\"4423\" \/>\u2022 Remove unused Docker images<br data-start=\"4452\" data-end=\"4455\" \/>\u2022 Monitor disk and filesystem limits<br data-start=\"4491\" data-end=\"4494\" \/>\u2022 Use infrastructure designed for production workloads<\/p><\/div><\/div><\/div><div class=\"ea-card sp-ea-single\"><h5 class=\"ea-header\"><a class=\"collapsed\" id=\"ea-header-642612\" role=\"button\" data-sptoggle=\"spcollapse\" data-sptarget=\"#collapse642612\" aria-controls=\"collapse642612\" href=\"#\" aria-expanded=\"false\" tabindex=\"0\"><i aria-hidden=\"true\" role=\"presentation\" class=\"ea-expand-icon eap-icon-ea-expand-plus\"><\/i> When should I upgrade my server infrastructure?<\/a><\/h5><div class=\"sp-collapse spcollapse \" id=\"collapse642612\" data-parent=\"#sp-ea-6426\" role=\"region\" aria-labelledby=\"ea-header-642612\"> <div class=\"ea-body\"><div class=\"flex flex-col text-sm pb-25\"><article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-69afe855-5558-8323-8178-2cdd06714404-8\" data-testid=\"conversation-turn-18\" data-scroll-anchor=\"true\" data-turn=\"assistant\"><div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\"><div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\"><div class=\"flex max-w-full flex-col gap-4 grow\"><div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"0be39a0d-49e8-4ed8-9dfe-0ca0ac0164b0\" data-message-model-slug=\"gpt-5-3\"><div class=\"flex w-full flex-col gap-1 empty:hidden\"><div class=\"markdown prose dark:prose-invert w-full wrap-break-word light markdown-new-styling\"><p data-start=\"4608\" data-end=\"4923\" data-is-last-node=\"\" data-is-only-node=\"\">If you frequently encounter linux disk full but du shows space errors despite cleanup and monitoring, your server environment may be hitting infrastructure limits. Upgrading to <strong data-start=\"4785\" data-end=\"4841\">dedicated or properly provisioned VPS infrastructure<\/strong> ensures higher inode limits, stable storage, and predictable filesystem behavior.<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/article><\/div><\/div><\/div><\/div><script type=\"application\/ld+json\">{ \"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"@id\": \"sp-ea-schema-6426-69eabed5f03fa\", \"mainEntity\": [{ \"@type\": \"Question\", \"name\": \"Why do I get \u201cNo space left on device\u201d even though df -h shows free space?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>This usually means your disk is not full in terms of storage blocks. Instead, the filesystem has hit another limit. The most common causes are<strong>inode exhaustion<\/strong>or<strong>deleted files still held open by running processes<\/strong>. In both situations, Linux cannot create new files, which triggers the error no space left on device but df -h shows space even when gigabytes of disk space remain available.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"What does \u201clinux disk full but du shows space\u201d mean?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>When linux disk full but du shows space appears, it means the filesystem usage reported by the kernel is different from what directory scanning tools can see. This typically happens when a<strong>deleted file is still being used by a running process<\/strong>, or when the system has<strong>run out of inodes<\/strong>. In both cases, disk space exists but the system cannot allocate new files.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"How do I check if my Linux server has run out of inodes?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>You can check inode usage with this command:<\/p><div><div><div><div><div><div><div><div><div><div><div><div>df -i<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p>If the<strong>IUse% column is close to or at 100%<\/strong>, your server has run out of inodes. This is a very common reason for the error no space left on device but df -h shows space.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"What are inodes in Linux?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>Inodes are filesystem data structures that store information about files such as<strong>ownership, permissions, size, and location on disk<\/strong>. Every file uses one inode. If your filesystem runs out of inodes, Linux cannot create new files even if storage space is still available. This often results in linux disk full but du shows space errors.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"Why do Docker and Node.js servers run out of inodes quickly?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>Modern application stacks generate<strong>millions of small files<\/strong>. Tools like Docker, npm, yarn, caching layers, and log-heavy applications constantly create temporary files and layers. These files consume inodes rapidly, which can cause no space left on device but df -h shows space even though the actual disk capacity is still free.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"How do I find which directory has too many files?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>You can identify directories with massive file counts using:<\/p><div><div><div><div><div><div><div><div><div><div><div><div><strong>find \/ -xdev -type f | cut -d '\/' -f 2 | sort | uniq -c | sort -n<\/strong><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p>This helps locate folders generating excessive files, which is a common cause of linux disk full but du shows space.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"Why does deleting a log file not free disk space immediately?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>If a process is still writing to the file, Linux keeps the file open internally even after deletion. The disk blocks remain reserved until the process stops. This is why many administrators encounter no space left on device but df -h shows space after deleting large logs.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"How do I find deleted files that are still consuming disk space?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>You can detect hidden deleted files using:<\/p><div><div><div><div><div><div><div><div><div><div><div><div>lsof +L1<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p>This command lists files that were deleted but are still held open by running processes. These hidden files often cause linux disk full but du shows space errors.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"Can Docker containers cause \u201cNo space left on device\u201d errors?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>Yes. Docker frequently creates<strong>layers, volumes, logs, and cache files<\/strong>. Over time these can consume both disk space and inodes. Cleaning unused containers and images can help prevent linux disk full but du shows space errors.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"How do I clean unused Docker files?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>You can remove unused Docker resources with:<\/p><div><div><div><div><div><div><div><div><div><div><div><div><strong>docker system prune -a<\/strong><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><p>This command clears unused images, containers, and networks that may be contributing to no space left on device but df -h shows space issues.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"Can cheap VPS hosting cause disk space errors?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>Yes. Many low-cost VPS providers configure filesystems with<strong>restricted inode limits or oversold storage environments<\/strong>. This can cause linux disk full but du shows space errors even when the disk appears mostly empty.<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"How can I prevent \u201cNo space left on device\u201d errors in the future?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<p>To avoid recurring no space left on device but df -h shows space problems:<\/p><p>\u2022 Monitor inode usage regularly<br \/>\u2022 Rotate and compress logs<br \/>\u2022 Clean application caches<br \/>\u2022 Remove unused Docker images<br \/>\u2022 Monitor disk and filesystem limits<br \/>\u2022 Use infrastructure designed for production workloads<\/p>\" } },{ \"@type\": \"Question\", \"name\": \"When should I upgrade my server infrastructure?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"<div><div><div><div><div><div><div><p>If you frequently encounter linux disk full but du shows space errors despite cleanup and monitoring, your server environment may be hitting infrastructure limits. Upgrading to<strong>dedicated or properly provisioned VPS infrastructure<\/strong>ensures higher inode limits, stable storage, and predictable filesystem behavior.<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\" } }] }<\/script><\/div><\/div>\n\n\n\n<p>If you\u2019re repeatedly encountering no space left on device but df -h shows space or linux disk full but du shows space, it usually means your server is hitting hidden filesystem limits. While the fixes above solve the immediate issue, long-term stability often requires <strong>proper infrastructure with unrestricted filesystem limits and reliable storage<\/strong>. With the right server environment, these ghost disk problems become far less common and much easier to manage.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-white-background-color has-background\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><span class=\"ez-toc-section\" id=\"Conclusion_Fix_the_%E2%80%9CGhost_Disk_Full%E2%80%9D_Error_Stop_Fighting_Server_Limits\"><\/span>Conclusion: Fix the \u201cGhost Disk Full\u201d Error &amp; Stop Fighting Server Limits<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If your server crashes with no space left on device but df -h shows space, the disk usually isn\u2019t actually full. In most cases, the issue comes from <strong>inode exhaustion<\/strong> or <strong>deleted files still being held open by running processes<\/strong>. When this happens, tools like <code>df -h<\/code> show free space, but Linux cannot create new files until you check inode usage with <code>df -i<\/code> or find hidden ghost files using <code>lsof<\/code>.<\/p>\n\n\n\n<p>Understanding these two checks can save hours of debugging when you encounter linux disk full but du shows space or repeated no space left on device but df -h shows space errors on production systems.<\/p>\n\n\n\n<p>But here\u2019s the bigger reality: developers shouldn\u2019t have to constantly clear tiny cache files, hunt down hidden logs, or fight restrictive filesystem limits just to keep their applications running. Many of these recurring linux disk full but du shows space problems happen because of <strong>oversold infrastructure, low inode limits, or heavily restricted VPS environments<\/strong>.<\/p>\n\n\n\n<p>If you want infrastructure built for modern workloads like Docker, APIs, and high-traffic applications, it may be time to upgrade to <strong>Owrbit\u2019s KVM VPS or Dedicated Servers<\/strong>. With fully unmanaged environments, dedicated resources, and unrestricted filesystem limits, you can focus on building your products instead of troubleshooting no space left on device but df -h shows space errors.<\/p>\n\n\n\n<p>Explore Owrbit servers here: <strong>[<a href=\"https:\/\/owrbit.com\/vps-hosting\">Explore Owrbit Servers Here<\/a>]<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"You\u2019re deploying something simple\u2014pulling a Docker image, uploading a backup, or running a database job\u2014when your terminal suddenly&hellip;","protected":false},"author":1,"featured_media":6427,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ayudawp_aiss_exclude":false,"csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_reading_time":"","csco_page_toc_navigation":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"csco_post_video_bg_volume":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[88],"tags":[],"class_list":{"0":"post-6425","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-linux","8":"cs-entry","9":"cs-video-wrap"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/owrbit.com\/hub\/wp-content\/uploads\/2026\/03\/linux-disk-full-but-du-shows-space.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4213,"url":"https:\/\/owrbit.com\/hub\/check-the-size-of-a-directory-in-linux\/","url_meta":{"origin":6425,"position":0},"title":"Linux: Check the Size of a Directory with ls Command in 2025","author":"Owrbiter","date":"April 30, 2025","format":false,"excerpt":"In today\u2019s fast-moving tech world, Linux is still a favorite for developers, system admins, and tech lovers. One basic but important task in Linux is checking the size of a directory in Linux. As we move into 2025, it\u2019s more important than ever to manage your disk space wisely. With\u2026","rel":"","context":"In &quot;Linux&quot;","block_context":{"text":"Linux","link":"https:\/\/owrbit.com\/hub\/category\/linux\/"},"img":{"alt_text":"Size of a Directory in Linux","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-sleek-and-modern-thumbnail-for-a-linux_FaveQHcRT0icL6Sv3z-O4w_pZzaX_lyTeyBY9Z1lZNVhQ.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-sleek-and-modern-thumbnail-for-a-linux_FaveQHcRT0icL6Sv3z-O4w_pZzaX_lyTeyBY9Z1lZNVhQ.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-sleek-and-modern-thumbnail-for-a-linux_FaveQHcRT0icL6Sv3z-O4w_pZzaX_lyTeyBY9Z1lZNVhQ.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-sleek-and-modern-thumbnail-for-a-linux_FaveQHcRT0icL6Sv3z-O4w_pZzaX_lyTeyBY9Z1lZNVhQ.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-sleek-and-modern-thumbnail-for-a-linux_FaveQHcRT0icL6Sv3z-O4w_pZzaX_lyTeyBY9Z1lZNVhQ.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":4924,"url":"https:\/\/owrbit.com\/hub\/check-open-ports-in-linux-and-windows\/","url_meta":{"origin":6425,"position":1},"title":"Check Open Ports in Linux &amp; Window Command for Network Process","author":"Owrbiter","date":"July 12, 2025","format":false,"excerpt":"Knowing how to keep your devices safe is more important than ever. As we move into 2025, it's essential to check open ports in Linux and check open ports in Windows to protect your systems. Open ports can act like unlocked doors, letting unwanted users access your computer or server.\u2026","rel":"","context":"In &quot;Linux&quot;","block_context":{"text":"Linux","link":"https:\/\/owrbit.com\/hub\/category\/linux\/"},"img":{"alt_text":"Check Open Ports","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Check-Open-Ports.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Check-Open-Ports.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Check-Open-Ports.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Check-Open-Ports.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Check-Open-Ports.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":4874,"url":"https:\/\/owrbit.com\/hub\/fix-connection-reset-by-peer-ssh-error-on-linux\/","url_meta":{"origin":6425,"position":2},"title":"Fix: Connection Reset by Peer SSH Error on Linux","author":"Owrbiter","date":"July 10, 2025","format":false,"excerpt":"Many people use SSH (Secure Shell) to safely connect to servers and computers from anywhere. It\u2019s a great tool used by system admins, developers, and those managing cloud services. But sometimes, things don\u2019t work as expected, and one common problem users face is the connection reset by peer error. The\u2026","rel":"","context":"In &quot;Linux&quot;","block_context":{"text":"Linux","link":"https:\/\/owrbit.com\/hub\/category\/linux\/"},"img":{"alt_text":"Connection Reset by Peer","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Connection-Reset-by-Peer-Error.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Connection-Reset-by-Peer-Error.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Connection-Reset-by-Peer-Error.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Connection-Reset-by-Peer-Error.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":5165,"url":"https:\/\/owrbit.com\/hub\/linux-vps-hosting-key-benefits-of-using-a-linux-vps\/","url_meta":{"origin":6425,"position":3},"title":"Linux VPS Hosting: Key Benefits of Using a Linux VPS Server","author":"Owrbiter","date":"July 24, 2025","format":false,"excerpt":"The demand for fast, secure, and affordable web hosting is higher than ever. Whether you're a developer, a startup, or a growing business, having a hosting service that offers control and solid performance is essential. That\u2019s where Linux VPS Hosting comes in. Linux VPS Hosting gives you your own private\u2026","rel":"","context":"In &quot;Virtual Private Server&quot;","block_context":{"text":"Virtual Private Server","link":"https:\/\/owrbit.com\/hub\/category\/virtual-private-server\/"},"img":{"alt_text":"Linux VPS Hosting","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Benefits-of-Linux-VPS-Server.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Benefits-of-Linux-VPS-Server.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Benefits-of-Linux-VPS-Server.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Benefits-of-Linux-VPS-Server.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/Benefits-of-Linux-VPS-Server.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":5022,"url":"https:\/\/owrbit.com\/hub\/test-network-speed-on-linux-server\/","url_meta":{"origin":6425,"position":4},"title":"How to Test Network Speed on Linux Server: Check Internet Speed","author":"Owrbiter","date":"July 18, 2025","format":false,"excerpt":"It\u2019s super important to keep your Linux server running smoothly. One big thing that affects how well your server works is internet speed. Whether you are running a website, hosting apps, or using cloud services, it\u2019s always helpful to Test Network Speed on Linux. Checking your internet speed in Linux\u2026","rel":"","context":"In &quot;Linux&quot;","block_context":{"text":"Linux","link":"https:\/\/owrbit.com\/hub\/category\/linux\/"},"img":{"alt_text":"test network speed on Linux","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/internet-speed-in-Linux.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/internet-speed-in-Linux.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/internet-speed-in-Linux.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/internet-speed-in-Linux.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/07\/internet-speed-in-Linux.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":4084,"url":"https:\/\/owrbit.com\/hub\/debian-vs-arch-linux-perfect-linux-distribution\/","url_meta":{"origin":6425,"position":5},"title":"Debian vs Arch Linux: Choosing the Perfect Linux Distribution","author":"Owrbiter","date":"April 23, 2025","format":false,"excerpt":"In 2025, the Linux world is still buzzing with the big debate: Debian vs Arch Linux. These two operating systems are super popular, but they\u2019re very different. If you're trying to pick the Perfect Linux Distribution, this choice really matters. Debian vs Arch Linux isn\u2019t just a tech topic \u2013\u2026","rel":"","context":"In &quot;Linux&quot;","block_context":{"text":"Linux","link":"https:\/\/owrbit.com\/hub\/category\/linux\/"},"img":{"alt_text":"Perfect Linux Distribution","src":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-visually-appealing-and-informative-thu_VeUNv75tQJm-m66CPyDUtA_XME3ySYuTNKBxSaEl-zZTA.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-visually-appealing-and-informative-thu_VeUNv75tQJm-m66CPyDUtA_XME3ySYuTNKBxSaEl-zZTA.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-visually-appealing-and-informative-thu_VeUNv75tQJm-m66CPyDUtA_XME3ySYuTNKBxSaEl-zZTA.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-visually-appealing-and-informative-thu_VeUNv75tQJm-m66CPyDUtA_XME3ySYuTNKBxSaEl-zZTA.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/owrbit.com\/hub\/wp-content\/uploads\/2025\/04\/a-visually-appealing-and-informative-thu_VeUNv75tQJm-m66CPyDUtA_XME3ySYuTNKBxSaEl-zZTA.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/posts\/6425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/comments?post=6425"}],"version-history":[{"count":1,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/posts\/6425\/revisions"}],"predecessor-version":[{"id":6440,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/posts\/6425\/revisions\/6440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/media\/6427"}],"wp:attachment":[{"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/media?parent=6425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/categories?post=6425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owrbit.com\/hub\/wp-json\/wp\/v2\/tags?post=6425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}