<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rasulmmdv</title>
    <description>The latest articles on Forem by Rasulmmdv (@rasulmmdv).</description>
    <link>https://forem.com/rasulmmdv</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3483736%2Fb02b5956-03c1-4429-b92c-872704b2610f.png</url>
      <title>Forem: Rasulmmdv</title>
      <link>https://forem.com/rasulmmdv</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rasulmmdv"/>
    <language>en</language>
    <item>
      <title>Why Your Internet Speed Test Lies</title>
      <dc:creator>Rasulmmdv</dc:creator>
      <pubDate>Sun, 16 Nov 2025 20:17:08 +0000</pubDate>
      <link>https://forem.com/rasulmmdv/why-your-internet-speed-test-lies-174f</link>
      <guid>https://forem.com/rasulmmdv/why-your-internet-speed-test-lies-174f</guid>
      <description>&lt;h3&gt;
  
  
  Speedtest.net vs Fast.com in real life
&lt;/h3&gt;

&lt;p&gt;Your speed test says 400 Mbps.&lt;br&gt;&lt;br&gt;
YouTube still buffers.&lt;br&gt;&lt;br&gt;
Nothing feels more cursed than that.&lt;/p&gt;

&lt;p&gt;That happened on my home fiber line.&lt;br&gt;&lt;br&gt;
&lt;code&gt;Speedtest.net&lt;/code&gt; proudly showed more than 418 Mbps down, but YouTube sessions still dropped quality or paused to buffer.&lt;br&gt;&lt;br&gt;
The numbers looked great, the experience did not.&lt;/p&gt;

&lt;p&gt;The trick is simple: speed tests often measure the &lt;strong&gt;best case&lt;/strong&gt;, while streaming exposes the &lt;strong&gt;real case&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Two tests, two different truths
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Speedtest.net&lt;/code&gt; is built to show what your connection can do when everything is aligned in its favor.&lt;br&gt;&lt;br&gt;
It talks to dedicated, well peered servers and opens several parallel TCP connections to push your link as hard as possible.&lt;br&gt;&lt;br&gt;
The result is a nice high number that represents &lt;strong&gt;peak capacity&lt;/strong&gt;, not necessarily what you get for every service.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Fast.com&lt;/code&gt;, from Netflix, is much closer to what your streaming apps feel.&lt;br&gt;&lt;br&gt;
It talks to real CDN infrastructure, pulls real data over a sustained period and focuses on how fast you can actually move video like traffic.&lt;br&gt;&lt;br&gt;
That is why &lt;code&gt;Fast.com&lt;/code&gt; often shows a lower number that still explains your YouTube or Netflix experience much better than a single big result from &lt;code&gt;Speedtest.net&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;Speedtest.net&lt;/code&gt; is your &lt;em&gt;max horsepower on a dyno&lt;/em&gt;, &lt;code&gt;Fast.com&lt;/code&gt; is &lt;em&gt;how fast the car actually accelerates on the road&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Protocols: TCP vs QUIC in one glance
&lt;/h2&gt;

&lt;p&gt;Most classic speed tests use TCP.&lt;br&gt;&lt;br&gt;
TCP is reliable, ordered and conservative, and it slowly ramps up how much data it sends until it figures out what the network can handle.&lt;br&gt;&lt;br&gt;
To compensate for that slow start, speed tests usually use several parallel TCP streams to reach your real peak quickly.&lt;/p&gt;

&lt;p&gt;Modern streaming platforms lean heavily on QUIC over UDP, also known as HTTP3.&lt;br&gt;&lt;br&gt;
QUIC runs on UDP, adds encryption and reliability, and handles packet loss more gracefully without blocking every stream when one packet goes missing.&lt;br&gt;&lt;br&gt;
ISPs do not always treat TCP and UDP traffic the same way, so your &lt;em&gt;speed test path&lt;/em&gt; and your &lt;em&gt;video path&lt;/em&gt; can be very different, even on the same line.&lt;/p&gt;

&lt;p&gt;You can think of TCP as a careful truck convoy and QUIC as a lot of smaller, nimble cars using partly different roads.&lt;/p&gt;


&lt;h2&gt;
  
  
  My real world results
&lt;/h2&gt;

&lt;p&gt;Here is what my line looked like on paper.&lt;/p&gt;

&lt;p&gt;Local &lt;code&gt;Speedtest.net&lt;/code&gt; server in Baku, PASHA Technology:&lt;br&gt;&lt;br&gt;
&lt;code&gt;Download: 418.14 Mbps&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Upload: 435.85 Mbps&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Ping: 6 ms&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Loaded latency (down): 60 ms&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Loaded latency (up): 89 ms&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cmjr35gveucclq1k8x4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cmjr35gveucclq1k8x4.png" alt="Speedtest.net local" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Speedtest.net&lt;/code&gt; server in Helsinki, GSL Networks:&lt;br&gt;&lt;br&gt;
&lt;code&gt;Download: 390.72 Mbps&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Upload: 326.58 Mbps&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Ping: 110 ms&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr4fcwx0f38nicjo6575.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr4fcwx0f38nicjo6575.png" alt="Speedtest.net international" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Numbers say &lt;em&gt;your connection is a monster&lt;/em&gt;.  &lt;/p&gt;

&lt;p&gt;But when I ran &lt;code&gt;Fast.com&lt;/code&gt;, the picture changed.&lt;br&gt;&lt;br&gt;
&lt;code&gt;Fast.com&lt;/code&gt; consistently reported noticeably lower speeds that felt much closer to what I saw when YouTube dropped quality or paused.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sgww3h72gsa5no7ma2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sgww3h72gsa5no7ma2r.png" alt="Fast.com screenshot" width="800" height="740"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Speedtest.net&lt;/code&gt; showed the &lt;strong&gt;theoretical maximum&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;code&gt;Fast.com&lt;/code&gt; revealed the &lt;strong&gt;practical streaming ceiling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I also ran a quick traceroute to &lt;code&gt;youtube.com&lt;/code&gt; to see how the packets travel.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;traceroute youtube.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The path goes through my home router, across my ISP’s core, then out via a Moscow internet exchange onto Google’s backbone, and finally lands on a YouTube edge in about 60–70 ms. That hop pattern is clean and the latency is low and stable, so routing itself looks fine; the real problem is not “ping” but how much throughput I get for streaming traffic compared to what classic speed tests report.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the gap happens
&lt;/h2&gt;

&lt;p&gt;There are three usual suspects.&lt;/p&gt;

&lt;p&gt;First, peering and routing.&lt;br&gt;&lt;br&gt;
My ISP clearly has a very clean, well provisioned path to the &lt;code&gt;Speedtest.net&lt;/code&gt; servers it picks for me.&lt;br&gt;&lt;br&gt;
The path to the Netflix and YouTube CDNs is different, sometimes longer and sometimes more congested.&lt;/p&gt;

&lt;p&gt;Second, traffic treatment.&lt;br&gt;&lt;br&gt;
Generic TCP test traffic looks harmless and small in volume compared to the hours of video people stream every evening.&lt;br&gt;&lt;br&gt;
During busy times, it is easy for an ISP to give streaming traffic lower priority than other things without completely breaking it.&lt;/p&gt;

&lt;p&gt;Third, protocol differences.&lt;br&gt;&lt;br&gt;
If the network handles UDP and QUIC slightly worse than TCP, you feel that specifically in streaming, games and real time apps.&lt;br&gt;&lt;br&gt;
On a graph, the TCP path still looks beautiful, while the QUIC path quietly suffers.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to check your own line quickly
&lt;/h2&gt;

&lt;p&gt;You can reproduce this pattern in a few minutes.&lt;/p&gt;

&lt;p&gt;Do one &lt;code&gt;Speedtest.net&lt;/code&gt; run to a nearby server.&lt;br&gt;&lt;br&gt;
Note download, upload and ping and glance at the loaded latency while the test is running.&lt;br&gt;&lt;br&gt;
That gives you your &lt;strong&gt;lab result&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Then open &lt;code&gt;Fast.com&lt;/code&gt; and run it a couple of times, especially during the hour when you actually watch YouTube or Netflix.&lt;br&gt;&lt;br&gt;
If &lt;code&gt;Fast.com&lt;/code&gt; is in the same ballpark, your streaming path is probably healthy.&lt;br&gt;&lt;br&gt;
If it is half or less of the Speedtest number, especially in the evening, you are likely seeing congestion, weak peering or some form of video deprioritization.&lt;/p&gt;




&lt;h2&gt;
  
  
  Small tweaks that actually help
&lt;/h2&gt;

&lt;p&gt;If you control your router, give priority to traffic that hates latency.&lt;br&gt;&lt;br&gt;
Real time calls first, then streaming, then normal browsing, then heavy downloads and torrents.&lt;br&gt;&lt;br&gt;
Smart queue management will not magically increase your Mbps, but it can stop a single download from wrecking a family movie night.&lt;/p&gt;

&lt;p&gt;Another quick experiment is to compare &lt;code&gt;Fast.com&lt;/code&gt; with and without a VPN.&lt;br&gt;&lt;br&gt;
If speeds suddenly jump when you tunnel out through a decent nearby VPN, it is a strong hint that your provider is treating some destinations or protocols less kindly than others.&lt;/p&gt;

&lt;p&gt;In that case you can either live with it, complain with data in hand or lean on the VPN for the services that suffer most.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real meaning of “418 Mbps”
&lt;/h2&gt;

&lt;p&gt;That 418 Mbps Speedtest result on my connection is not a lie.&lt;br&gt;&lt;br&gt;
It is just telling a very specific story: how fast my line can go to a friendly server over TCP under ideal conditions.&lt;/p&gt;

&lt;p&gt;YouTube buffering and lower &lt;code&gt;Fast.com&lt;/code&gt; numbers tell the rest of the story:&lt;br&gt;&lt;br&gt;
how my ISP peers with big CDNs,&lt;br&gt;&lt;br&gt;
how QUIC over UDP is routed,&lt;br&gt;&lt;br&gt;
how streaming traffic is handled when the network is busy.&lt;/p&gt;

&lt;p&gt;So the takeaway is simple.&lt;br&gt;&lt;br&gt;
Use more than one test.&lt;br&gt;&lt;br&gt;
Treat big &lt;code&gt;Speedtest.net&lt;/code&gt; numbers as &lt;strong&gt;best case&lt;/strong&gt;, not a guarantee.&lt;br&gt;&lt;br&gt;
For streaming, the less glamorous &lt;code&gt;Fast.com&lt;/code&gt; style results are often closer to what your eyes and ears actually feel.&lt;/p&gt;

</description>
      <category>networking</category>
      <category>performance</category>
      <category>webperf</category>
    </item>
    <item>
      <title>The Friendly Guide: "Why WSL is Eating My C: Drive (and How to Get it Back)"</title>
      <dc:creator>Rasulmmdv</dc:creator>
      <pubDate>Sat, 06 Sep 2025 18:24:00 +0000</pubDate>
      <link>https://forem.com/rasulmmdv/the-friendly-guide-why-wsl-is-eating-my-c-drive-and-how-to-get-it-back-15p8</link>
      <guid>https://forem.com/rasulmmdv/the-friendly-guide-why-wsl-is-eating-my-c-drive-and-how-to-get-it-back-15p8</guid>
      <description>&lt;p&gt;If you've ever used the Windows Subsystem for Linux (WSL) with tools like Docker or Node.js, you may have been horrified to see your C: drive space rapidly vanish. Even more confusing, a tool like &lt;code&gt;tree&lt;/code&gt; might show a file named &lt;code&gt;\\wsl.localhost\Ubuntu\proc\kcore&lt;/code&gt; taking up a ridiculous amount of space—like 120TB!&lt;/p&gt;

&lt;p&gt;This is a common and incredibly misleading problem. I recently went through this myself, and here's the straightforward guide to understanding what's happening and how to fix it.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 The Big Secret: The 120TB Is an Illusion
&lt;/h3&gt;

&lt;p&gt;First, let's clear up the biggest piece of misinformation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The &lt;code&gt;kcore&lt;/code&gt; file is not real.&lt;/strong&gt; It's a virtual file that represents a memory map of the Linux kernel. Its reported size (120TB or more) is a theoretical limit for a 64-bit system, not actual disk usage. It's the equivalent of a ghost in the machine—it's there, but it's not taking up any space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The real culprit is the WSL virtual hard disk (&lt;code&gt;.vhdx&lt;/code&gt;).&lt;/strong&gt; All of your WSL data—your Linux files, Docker images, npm packages, everything—is stored in a single, large virtual hard disk file on your C: drive. This file grows as you add more data, and crucially, &lt;strong&gt;it never shrinks on its own&lt;/strong&gt; when you delete files.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why you can run a &lt;code&gt;docker system prune&lt;/code&gt;, free up space inside WSL, and yet see no change on your Windows C: drive.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ The Fix: The Two-Step "Clean &amp;amp; Shrink" Method
&lt;/h3&gt;

&lt;p&gt;To reclaim your lost disk space, you must do two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Clean up&lt;/strong&gt; the unnecessary files &lt;em&gt;inside&lt;/em&gt; your WSL environment.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Compact&lt;/strong&gt; the virtual hard disk file to return the freed-up space to Windows.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's dive in.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Clean Up Inside WSL (Deleting the Bloat)
&lt;/h4&gt;

&lt;p&gt;This is about identifying and removing the largest files from your Linux environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remove Docker Bloat:&lt;/strong&gt;&lt;br&gt;
Even if &lt;code&gt;docker system prune&lt;/code&gt; reclaimed 0B, large images you're not using might be the problem.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List all Docker images by size&lt;/span&gt;
docker images &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="nt"&gt;--format&lt;/span&gt; &lt;span class="s2"&gt;"{{.ID}}&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;{{.Repository}}&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;{{.Tag}}&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;{{.Size}}"&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-k4&lt;/span&gt; &lt;span class="nt"&gt;-h&lt;/span&gt;

&lt;span class="c"&gt;# Identify and remove any large, unused images by their ID&lt;/span&gt;
docker rmi &amp;lt;image_id_1&amp;gt; &amp;lt;image_id_2&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Find and Delete &lt;code&gt;node_modules&lt;/code&gt; Folders:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;node_modules&lt;/code&gt; folders are notorious for their size. Navigate to old projects and simply delete them.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example:&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/my-old-project/
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; node_modules
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use &lt;code&gt;ncdu&lt;/code&gt; to find the largest directories:&lt;/strong&gt;&lt;br&gt;
This is my favorite trick. &lt;code&gt;ncdu&lt;/code&gt; is a fantastic command-line tool that lets you navigate and find the biggest directories quickly.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install if you don't have it&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;ncdu

&lt;span class="c"&gt;# Run it to scan your entire file system.&lt;/span&gt;
&lt;span class="c"&gt;# Be patient, this might take a minute!&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;ncdu /
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Once the scan is complete, you can use your arrow keys to navigate and find the largest folders to investigate and clean up.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Step 2: Compact the VHDX File (The Magic Trick)
&lt;/h4&gt;

&lt;p&gt;Now that you've deleted files inside WSL, you must tell Windows to physically shrink the container file on your C: drive.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Locate Your WSL Disk File:&lt;/strong&gt;&lt;br&gt;
This file is buried deep in your AppData folder. The path will look something like this:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\&amp;lt;&lt;/span&gt;YourUsername&amp;gt;&lt;span class="se"&gt;\A&lt;/span&gt;ppData&lt;span class="se"&gt;\L&lt;/span&gt;ocal&lt;span class="se"&gt;\P&lt;/span&gt;ackages&lt;span class="se"&gt;\C&lt;/span&gt;anonicalGroupLimited.UbuntuonWindows_...&lt;span class="se"&gt;\L&lt;/span&gt;ocalState&lt;span class="se"&gt;\e&lt;/span&gt;xt4.vhdx
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;The folder name with &lt;code&gt;CanonicalGroupLimited.UbuntuonWindows_&lt;/code&gt; will have a unique string of characters for your system.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shut Down WSL:&lt;/strong&gt;&lt;br&gt;
This is the most critical step. You must terminate all running WSL processes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * Open **PowerShell** or **Command Prompt** as an **Administrator**.
  * Run the shutdown command:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ```bash
    wsl --shutdown
    ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Run the Compacting Utility:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * In the same **Administrator** window, start the disk utility:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ```bash
    diskpart
    ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * Now, select your WSL disk file (paste the full path you found in Step 1):
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ```bash
    select vdisk file="&amp;lt;FULL_PATH_TO_YOUR_EXT4.VHDX&amp;gt;"
    ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * Finally, run the compact command:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ```bash
    compact vdisk
    ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This process will take a few minutes, depending on the size of your file. Once it's complete, check your C: drive. You should see your free space magically restored!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>npm</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
