Accessing Linux files from Windows in WSL2 is straightforward because the system automatically mounts your Linux file system under a specific network path. You can navigate to these files using File Explorer by entering the address
\\wsl$ or
\\wsl.localhost. This method allows you to interact with case-sensitive Linux directories directly from your Windows environment, streamlining your development workflow without needing complex configuration steps.
Understanding the Network Share Path
The primary way to access your Linux distribution’s file system from Windows is through a virtual network share that Microsoft provides out of the box. Unlike previous versions of the Windows Subsystem for Linux, WSL2 runs in a lightweight utility VM, which means direct drive mapping is not available. Instead, the system exposes the file system via SMB (Server Message Block) protocol.
To verify if your Linux distribution is running and accessible, open Windows File Explorer and press
Win + E. In the address bar at the top, type the following path and press Enter:
\\wsl$
If configured correctly, this will open a folder containing the names of all installed Linux distributions. For example, you might see folders named "Ubuntu", "Debian", or "kali". Clicking on any of these folders takes you directly into the root directory of that specific Linux instance. This path works regardless of whether you are using Windows 10 or Windows 11.
For users who prefer using the command line or need broader compatibility with older tools, you can also use the fully qualified domain name format:
\\wsl.localhost\\
Replace
<distrib-name> with the actual name of your distribution as it appears in the
\\wsl$ directory. This method is particularly useful if you are scripting access or integrating with third-party applications that require explicit hostnames.
Navigating Case-Sensitive Files
One of the most critical aspects of accessing Linux files from Windows is understanding the difference in file naming conventions. Windows uses a case-insensitive file system (NTFS), while most Linux distributions use case-sensitive file systems (ext4). When you browse files via
\\wsl$, you are viewing the Linux file system directly. This means that a file named
README.md and another named
readme.md can exist in the same directory, but Windows might treat them as the same file if you try to create one of them using Windows-native tools.
When you edit files in this shared directory, be aware that some Windows applications may not handle case sensitivity correctly. If you rename a file using Windows Explorer, ensure the new name matches the exact capitalization required by your Linux environment. Failure to do so can result in broken links within your codebase or unexpected behavior when running scripts.
It is generally recommended to perform heavy editing tasks inside the Linux environment using editors like VS Code, Vim, or Nano. However, for simple view operations, copying large data files, or checking logs, the Windows File Explorer interface provided by
\\wsl$ is highly efficient.
Performance Considerations
While accessing files via
\\wsl$ is convenient, it is important to note that file I/O operations across this boundary can be slower than native Linux operations. The overhead comes from translating between the Windows NTFS file system and the ext4 file system used by WSL2. Therefore, avoid performing frequent read/write operations on large numbers of small files (such as node_modules or .git directories) from the Windows side. Keep your source code within the Linux file system (
/home/user) rather than in the Windows mounted drives (
/mnt/c) for best performance.
For more information on setting up your environment correctly, you might find our guide on
Installing Software Requires WSL2 on Windows 11 helpful, as proper installation ensures the network shares are initialized correctly.
Alternative Access Methods
If you require bidirectional access or need to mount specific directories differently, there are alternative approaches. One common method involves using SSH to connect from Windows to WSL2. By enabling an SSH server within your Linux distribution, you can use standard SCP or SFTP clients like WinSCP or the built-in PowerShell SSH client. This method provides better security and encryption compared to the local SMB share.
Another approach is to use Visual Studio Code with the Remote - WSL extension. This allows you to edit files seamlessly from the Windows UI while the editor runs entirely within the Linux environment. This hybrid approach gives you the best of both worlds: the ease of Windows-based IDE features and the accuracy of Linux-based file handling.
If you encounter issues with network connectivity that prevent these methods from working, such as problems in virtualized environments, refer to resources on
Unable to Install, Update WSL2 within Virtual Desktop - No Network - Azure Virtual Desktop to troubleshoot underlying network stack issues.
Troubleshooting Common Issues
Sometimes, the
\\wsl$ path may appear empty or fail to load. The first step is to ensure your Linux distribution is actually running. Open a terminal in Windows (PowerShell or Command Prompt) and run:
wsl --list --verbose
If the state is not "Running", start the distribution manually:
wsl -d Ubuntu
Once started, retry accessing the path in File Explorer. If you still face issues, check your Windows Firewall settings. Occasionally, updates to Windows Security may block the SMB listener for WSL. Ensure that "File and Printer Sharing" is enabled for private networks. Additionally, restarting the "WSL Service" in Windows Services Manager can resolve stale connection states.
For users dealing with partitioning issues that might affect storage allocation for these files, understanding how to manage disk space is crucial. You can learn more about managing your partitions in our article on
Unable to shrink 930GB Windows partition to make room for Linux installation, although this is more relevant for initial setup than daily file access.
Frequently Asked Questions
Can I edit files directly in \\wsl$ using Notepad?
Yes, you can open files located in
\\wsl$ with Notepad or any other Windows text editor. However, be cautious with line endings, as Windows expects CRLF while Linux uses LF. Using editors like VS Code or Notepad++ with proper encoding settings is recommended to avoid corruption.
Why is my Linux file system slow to load in File Explorer?
Initial loading can be slow because Windows indexes the files for search. Once indexed, browsing should be faster. Avoid indexing sensitive or frequently changing code directories to maintain performance. Large directories with thousands of small files will always take longer to enumerate.
Does this method work for WSL1 as well?
Yes, the
\\wsl$ path works for both WSL1 and WSL2. However, WSL1 does not have the same isolation benefits as WSL2, and file access speeds may vary depending on where your files are stored. WSL2 is generally preferred for modern development workflows.
How do I access my Windows C: drive from Linux?
You can access Windows drives from Linux by navigating to
/mnt/c/ in your WSL terminal. This is the reverse direction of the question, but it is essential for moving data between systems. Note that permissions might require adjustment if you try to write to Windows directories.
What happens if I delete a file from Windows that is linked in Linux?
Deleting a file via Windows File Explorer removes it permanently from the Linux file system. Since both views point to the same underlying data, actions taken in one OS are immediately reflected in the other. Always back up important data before bulk deletions.