Unable to resolve Host - Windows Bash

I'm using Windows Bash and I'm getting the error fox@FOX:/etc$ sudo true sudo: unable to resolve host FOX

I've seen people say I'm suppose to edit etc/hosts, but I don't know what to put in the file. Can someone tell me what I'm suppose to put to fix this?1


Solution 1:

You can fix this by adding an entry to your /etc/hosts for your machine's hostname.

If you want a one-liner, something like this will do it:

printf "\n127.0.0.1   $HOSTNAME\n" | sudo tee -a /etc/hosts

This will append a line to your hosts file that will resolve the current hostname to 127.0.0.1.

When you run the command above you'll be prompted for the root password you set when the Windows Linux subsystem was installed. Also, since this command starts a shell for the root user just before it runs you'll actually see the sudo: unable to resolve host WHATEVER message one last time just before the change is made.

Alternatively, you run an editor (such as nano) as root and add the entry manually:

sudo nano /etc/hosts

Solution 2:

Here's a link to a workaround posted on the github issues tracker by user benhillis, stating:

This is occurring because the /etc/hosts file does not contain your machine's name. To work around this you can remove /etc/hosts and it will be re-created after closing all open bash.exe windows and launching bash.exe

I can confirm this worked for me on Windows 10 Pro 64 build 1607.