Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Extraterm assumes WSL disk mounts are in /mnt and fails otherwise. #155
If using /etc/wsl.conf to change the root mount in WSL to something other than /mnt/c, such as /c, Extraterm still tries to use /mnt/c when initializing WSL. This causes the terminal to hang with a cursor that won't do anything, similarly to what happens if python3 is not installed in the WSL instance. Trying to open new tabs after the initial tab fails with a socket error, because wsl.exe immediately terminated when the first shell tried to open.
Example of /etc/wsl.conf that changes the mount point of Windows volumes, where /mnt/c would now instead be just /c.
Here is what's being called when the WSL shell is initialized. It's doing this regardless of where C:\ is actually mounted.
Here is what it looks like when it fails and a new WSL tab is opened.
I have not tested, but I would also worry that this path is hardcoded if Extraterm were installed to a non-default path in Windows.
Also, unfortunately for me, I was testing with a WSL instance that had /c, and another that had /mnt/c but didn't have python3 installed yet, so both had the same issue for different reasons. I eventually found out what was happening by using Process Explorer with a 0.5 second update interval, and I repeatedly opened Extraterm and tried to hit right click and open the properties of the wsl.exe or conhost.exe subprocess before it was gone. It would be nice if the error could at the least be caught and explained in a more meaningful way. Fortunately, I had installed Extraterm at work before leaving, so I knew the issue was somewhere on my end at home.
This is the only instance of /mnt I see in the source.
And that's coming from:
I'm no expert at finding/converting WSL paths to real Windows paths. I would assume there could be a check against /etc/wsl.conf or something storing the value of its 'root' which could be used in place of
Ran into this exact issue trying to follow Nick's Docker in WSL setup instructions (https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly). I thought I could just recreate a symlink from /mnt/c to /c, but no go. For now, I just have to launch cmd.exe and then run bash directly.