☠️

WSLの起動時にresolv.confを再生成されないようにする

2020/10/20に公開

WSLを起動するたびにresolv.confが再生成されてapt installができ~んというメモです。

問題

起動するたびにこんな状態

ekuinox@Tsutsuji:~$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.31.64.1
ekuinox@Tsutsuji:~$ sudo apt install -y jq
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package jq

私の環境

  • Windows 10 20H2 (19042.508)
  • WSL2 Debian

解決

やることは、/etc/resolv.conf にあるように、 /etc/wsl.conf を弄れば良くて、

/etc/wsl.conf
[network]
generateResolvConf = false

となるように追記します。
このままWSLを開きなおしてもダメなので、Windowsを再起動します。
/etc/wsl.conf が読み直されれば良いので再起動じゃない手もある??)

再起動後、 /etc/resolv.conf を適当に編集します。

/etc/resolv.conf
nameserver 8.8.8.8

以上で完了です。

ハマる

記事書くために自分のノートPCで試した際にはハマらなかったのですが、 /etc/wsl.conf を書き換えて再起動した際に /etc/resolv.conf に書き込めないことがありました。

ekuinox@Hizake:~$ ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Sep 11  2018 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

元々 /run/resolvconf/resolv.conf にリンクが貼られているみたいで、それの残り滓があって書き込めないということがありました。rm してから書き込めば解決します。

Discussion