Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Ubuntu for Windows: Mounting C: Drive to WSL's Root
# allow `mount` cmd without password
echo "$USER ALL=NOPASSWD: /bin/mount" | (sudo su -c 'EDITOR="tee -a" visudo')
# add the mount directive to `fstab`
sudo mkdir -p /c
sudo sh -c "echo '/mnt/c /c none bind' >> /etc/fstab"
# update to `.bashrc` to auto mount at login
echo "sudo mount -a" >> ~/.bashrc
# now reload it
source ~/.bashrc
@sgtoj

This comment has been minimized.

Copy link
Owner Author

sgtoj commented Nov 18, 2017

It is possible to mount C: drive to the /c along with the default of /mnt/c. Why? In addition to being more familiar for those who used Windows Git Bash, it allows for relative volume mounting when using docker-compose. However, it is not just as easy as adding it to the fstab and reloading the mounts. Although it does works, the mounts will have to be manually reload for next session.

@steffen-wirth

This comment has been minimized.

Copy link

steffen-wirth commented Dec 16, 2017

@sgtoj thanks for sharing

@esteldunedain

This comment has been minimized.

Copy link

esteldunedain commented Jan 15, 2018

Thanks @sgtoj, works perfectly.

@d1egoaz

This comment has been minimized.

Copy link

d1egoaz commented Feb 24, 2018

FYI this is now possible to do it with wsl.conf https://docs.microsoft.com/en-us/windows/wsl/wsl-config
root = /

diego@diego-thinkpad:~$ cat /etc/wsl.conf
# Enable extra metadata options by default
[automount]
enabled = true
root = /
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true

diego@diego-thinkpad:~$ mount -l | grep drvfs
C: on /c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata)
diego@diego-thinkpad:~$
@ndotb

This comment has been minimized.

Copy link

ndotb commented May 4, 2018

This is awesome. Thank you.

@llinfeng

This comment has been minimized.

Copy link

llinfeng commented Oct 3, 2018

Changing the settings in wsl.conf would need a system-reboot to take effect. (On Windows 10, this means you need to restart the laptop as a whole.)

@alexjmoore

This comment has been minimized.

Copy link

alexjmoore commented Jan 24, 2019

Actually you don't need a full restart, you can just restart the WSL management service with (for example) this PowerShell:

Restart-Service -Name "LxssManager"
@ertwro

This comment has been minimized.

Copy link

ertwro commented Mar 7, 2019

Hi. In my case it creates the folders but the mount points remain the same. My wsl.conf is exactly the same but when i do mount -l | grep drvfs I get.

C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=998,case=off)
D: on /mnt/d type drvfs (rw,noatime,uid=1000,gid=998,case=off)
E: on /mnt/e type drvfs (rw,noatime,uid=1000,gid=998,case=off)
F: on /mnt/f type drvfs (rw,noatime,uid=1000,gid=998,case=off)
G: on /mnt/g type drvfs (rw,noatime,uid=1000,gid=998,case=off)
H: on /mnt/h type drvfs (rw,noatime,uid=1000,gid=998,case=off)

I've restarted the service and the PC but remain the same.

@deserthacker

This comment has been minimized.

Copy link

deserthacker commented Mar 22, 2019

Same here, duplicated the wsl.conf, restarted no-joy. running 18.03

@sgtoj

This comment has been minimized.

Copy link
Owner Author

sgtoj commented Apr 1, 2019

@deserthacker

Check the line endings of wsl.conf? I am now using the new method without issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.