I have installed Ubuntu subsystem on Windows 10 (after enabling feature in settings), but where is the Ubuntu file system root directory located in the drive?
6 Answers
For Ubuntu installed from the Windows store:
Each distribution you install through the store is installed to that application's appdata directory. For example:
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
- benhillis
For WSL2 you can access to home directory from windows (Windows 10 build 18342) like this :
\\wsl$
In earlier iterations of Windows Subsystem for Linux, the Ubuntu file system was at %localappdata%\Lxss
(e.g., C:\Users\Username\AppData\Local\Lxss
- replace the Username with your Username on Windows). See the WSL blog post on File System Support:
The primary file system used by WSL is VolFs. It is used to store the Linux system files, as well as the content of your Linux home directory. As such, VolFs supports most features the Linux VFS provides, including Linux permissions, symbolic links, FIFOs, sockets, and device files.
VolFs is used to mount the VFS root directory, using
%LocalAppData%\lxss\rootfs
as the backing storage. In addition, a few additional VolFs mount points exist, most notably/root
and/home
which are mounted using%LocalAppData%\lxss\root
and%LocalAppData%\lxss\home
respectively. The reason for these separate mounts is that when you uninstall WSL, the home directories are not removed by default, so any personal files stored there will be preserved.
CAUTION
Creating/modifying any files within the Linux subsystem using Windows apps & tools can cause Data corruption and data loss in Ubuntu subsystem! (Thanks to Rich Turner for suggesting these words of caution!) This is absolutely not supported. From the same blog post:
Interoperability with Windows
While VolFs files are stored in regular files on Windows in the directories mentioned above, interoperability with Windows is not supported. If a new file is added to one of these directories from Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what to do with the file and simply ignores it. Many editors will also strip the EAs when saving an existing file, again making the file unusable in WSL.
Your Windows file system is located at /mnt/c
in the Bash shell environment.
Source: Dustin Kirkland's blog, howtogeek

- 103

- 44,715
-
1Thanks very much, another question, I install git using
apt-get install git
, so where does the git executable file located? Newbie to Ubuntu. – July Apr 21 '16 at 13:12 -
-
@July: Please open a new question if you have a new, unrelated question or, better yet, search for an existing question that fits the bill. Comments are not generally meant for follow-up questions. :-) – David Foerster May 03 '16 at 21:58
-
14Lxss was hidden on my file system... caused a bit of head scratching for an infuriating minute or two. Now I've created a shortcut, but I still can't seem to unhide it. – Ogaday Jun 16 '16 at 14:04
-
3@Ogaday you can't unhide it using the properties window because it's marked as a system directory. You can unhide it using
attrib -s -h lxss
which will unmark it as a system directory also. – brettwhiteman Aug 03 '16 at 10:59 -
How come I can't see anything in the home dir? I can see files in there from bash. – mpen Aug 08 '16 at 03:41
-
-
4It looks like the location has either changed or different between systems as mine is in a different location. I've posted below with my location. – NicholasJohn16 Aug 10 '16 at 18:36
-
Is it possible to access the rest of the file system before its root? I have websites installed in my C:\Documents folder. Is it possible to access those from Windows Bash? – Trip Oct 02 '16 at 08:39
-
1
-
9@souravc Could you please add an important note to the top of your answer, STRONGLY recommending against creating/modifying any files within LXSS using Windows apps & tools: Data corruption and loss is very likely if you do! – Rich Turner Nov 07 '16 at 23:16
-
3I don't understand. If I can't safely modify the files in Windows tools what is the point of running it in Windows? cygwin still seems superior to that... – still_dreaming_1 Feb 28 '17 at 22:58
-
1On a windows box you must go to view->options->Change folder and search options and uncheck "Hide protected operating system files" to be able to see the lxss folder in Windows Explorer. Confused me for a while. – Norbert Norbertson Jul 11 '17 at 08:55
-
@RichTurner Does this work in both directions? In oher words, is data corrupion also likely if you are working with files that were created in Windows, from within a Ubuntu instance? – Bram Vanroy Nov 14 '17 at 15:59
-
9Please read the post mentioned above: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/. It's safe to access the Windows filesystem from WSL which is why we mount your drives under
/mnt/<drive>/
, but is NOT safe (yet) to access Linux filesystem from Windows which is why we don't provide easy access to the distro filesystems. – Rich Turner Nov 14 '17 at 18:32 -
1@still_dreaming_1 If you want to access files in both Windows and Linux, store them on your Windows Filesystem, and access them as usual in Windows, or via
/mnt/<drive>/<path>
in Linux. – Rich Turner Nov 14 '17 at 18:40 -
1@RichTurner yeah I ended up doing that plus creating a symlink for even more convenient Linux access – still_dreaming_1 Nov 15 '17 at 17:58
-
2Good idea. I've created a symlinks in my home folder from
dev
to/mnt/c/dev
for easy access to my dev projects. – Rich Turner Nov 15 '17 at 23:39 -
-
-
-
I also just ran into this issue, using an Apache on Windows on a web document root located in the WSL/Ubuntu 18 directory. The web application (read: apache) creates various cache files, which later cannot be written to by a utility within the Linux machine. As an idea, I would suggesst that the filesystem by default adds read and write permissions to files created from outside. – Anse Mar 12 '20 at 10:01
-
thanks, a sidenote: also using Arch and it is under %localappdata%\Local\Packages\52569scottxu.ArchLinux_xhwh673y3hxf8\ – user1708042 Sep 22 '20 at 18:57
This seems to have changed since Bash was originally introduced, and does not apply to distributions from the Windows Store, or maybe it is not consistent for all systems as my home directory is located in another location:
%localappdata%\lxss\home\{username}
or:
C:\Users\{user}\AppData\Local\lxss\{username}
Where {user}
is your Windows Username and {username}
is your UNIX Username set during install.
So the root directory would be:
%localappdata%\lxss
Note that the root directory may not be visible in Windows Explorer from the %localappdata%
directory. You should be able to access it anyways by typing it in the 'address bar' of Explorer.

- 386

- 641
-
1My machine can't find: "C:\Users{user}\AppData\Local\Lxss{username}" or "%localappdata%\Lxss\home{username}" but "C:\Users{user}\AppData\Local\lxss{username}" works. I.E. use "lxss" NOT "Lxss" – Joe Codeswell user601770 Aug 17 '16 at 15:52
-
My system has the rootfs subdirectory, but rootfs/home is empty while ./home has my user account and files. It seems safest to just go to %localappdata%\lxss and then explore around from there to see which layout you have, plus directly browsing to that address avoids issues with the lxss directory being hidden. – jla Dec 01 '16 at 16:07
-
1@JoeCodeswelluser601770 That's odd. Windows filesystems are normally case insensitive. I can enter %localappdata%\Lxss or %localappdata%\lxss and both go to %HOMEPATH%\AppData\Local\lxss – jla Dec 01 '16 at 16:10
-
8Note that this folder (lxss) did not appear in my windows explorer listing of folders in AppData\Local, even with hidden folders view enabled. I had to manually paste add the folder lxss to the explorer bar to get to the files here e.g. edit the folder "url" to there – Colin D Dec 20 '16 at 20:52
-
Alternatively, you can go to the Desktop, right-click "New->Shortcut" and paste a path like C:\Users\yourname\AppData\Local\lxss\home\yourname – Colin D Dec 20 '16 at 20:57
-
I'm having a similar issues: 1. No lxss in Local folder (even when hidden shown. 2. Full C:\ path does not work after trying second time even after spell check and proper windows and bash username. 3. %localappdata%\lxss\home{username} works like a charm everytime, thank you NicholasJohn16 and Colin D – Jun 09 '17 at 16:57
-
Just to add to the many different examples already mentioned, all of the files on my computer are directly under
%localappdata%\lxss
. There's no sub-directory with my 'UNIX' username; home is a sub-directory tho and under home is a sub-directory for my UNIX username. – Kenny Evitt Nov 13 '17 at 14:38
If you install Linux from MS Market:
they placed distros under:
$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Default distro defined by:
bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}
Linux root is deeper:
c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs
PS. I used Cygwin to explore registry keys.
If using PowerShell for the same goal, the commands would be:
# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)
# which will have a value like:
echo $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}
# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState
-
1It's really good that you made this more-useable (for a bigger variety of different situations) by noting that "[you] used Cygwin to explore registry keys." – bballdave025 Sep 29 '20 at 18:26
-
2This is the answer that helped me the most. Somehow I had set a custom location for the Basepath during inital setup. I was able to read that location by manually looking it up in the windows registry editor. – Zciurus Dec 30 '20 at 15:13
-
1
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}/BasePath
. Very nice. That registry value helped me find the location of my distro. Thanks! – Henke - Нава́льный П с м Dec 13 '22 at 17:52
You can quickly open Bash from a File Explorer window of the opened folder by typing bash
in the location bar.
It's enough.
Also you can add a context menu item. I personally don`t recommend it if not needed, because adding shortcuts to the context menu uses more RAM.
https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/

- 3,317
- 2
- 22
- 28

- 5,075
-
-
@blablatros yes but in folder in bash in witch you had explorer open when writing in explorer bar bash and pressing enter. Try in My Documents folder opened Windows Explorer folder and in location bar write bash and it will open ubuntu bash in that folder already :) – Kangarooo Jun 17 '17 at 02:24
-
1@Kangarooo: I want to access the files through the windows 10 gui as well as vice versa. In my answer above, i found out how to locate the bash directory through the Windows 10 files explorer, and so I proceeded to copy some files from my external hard drive into that directory. However, when I opened the bash terminal and pressed
ls -a
, it didn't show the files I added. Bash was not recognizing the files I dropped in through windows file explorer, which for me has completely defeated the purpose of installing bash on windows. – Jun 25 '17 at 14:00
The only thing that worked for me was %localappdata%\lxss\home\{username}
, where the {username}
is your BASH username you gave it during the installation. For some reason, after showing hidden folder's lxss refuses to appear in C:\Users\WINDOWS-USER\AppData\Local\
, and also giving the full C:\
path with windows and BASH username does not work either.
And please create a desktop shortcut for what works.
For those who are looking for the image location:
C:\Users\\[username]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

- 212

- 387
We (the WSL team) STRONGLY recommend you do NOT spelunk into the Linux distro data folders ). If you do, data loss and/or corruption is VERY likely
We are working to improve this interop scenario and will announce any progress on our blog: https://blogs.msdn.microsoft.com/commandline/
– Rich Turner Nov 14 '17 at 18:34wsl.exe
, e.g.wsl chmod 600 ~/.ssh/id*
- do not copy files into these folders via the Windows filesystem. – Rich Turner Mar 02 '18 at 02:14