0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【WSL2】/etc/resolv.confが変更できない

Posted at

TL;DR

  • 名前解決ができない → /etc/resolv.confを変更し再起動。or /etc/wsl.confgenerateResolvConf = trueを設定し再起動。
  • /etc/resolv.confなどが変更できない → sudo vim で編集する。
  • ファイルがimutableになっている場合 → sudo chattr -i /etc/resolv.confで解除できる

はじめに

家から出て図書館で、git cloneしようとすると、失敗。
もしかして、と思ってsudo apt updateしてみると、IGNがたくさん出て進行度は0%のまま。
名前解決ができていないのでは?と思い、/etc/resolv.confを見てみると、nameserver 8.8.8.8でうまくいっていそう。

ここを見ると、

power shell で

$ ipconfig /all

として、ホストのwindows がネットワークに接続している接続のDNSサーバのIPアドレスを調べます。それを、resolv.conf に追加しました。

とあるので、/etc/resolv.confにホストのDNSサーバのIPアドレスを追加してみることにした。

ここで詰まる

/etc/resolv.confを編集しようとすると、Permission deniedが出る。

sudo vimでの編集を試みたり、sudo echo "nameserver ***.***.***.***" >> /etc/resolv.confを試みたりするも、Permission deniedが出てしまう。

ここを参考に、sudo chmod 744 /etc/resolv.confを試みるも、そもそもchmod実行時点でPermission deniedしてしまう。

Permission の勉強をする

ここを読んだ。

ls -l /etc/resolv.conf でパーミッションを確認すると、-rw-r--r--となっていて、変更できそうである。

/etc/resolv.confimutableがついていた

ここに倣い、lsattr /etc/resolvconf.confを実行すると、iがついていた。

/etc/resolv.confが変更できないモードになっているらしい。

解決

sudo chattr -i /etc/resolv.confiを外す。

結局

/etc/wsl.confgenerateResolvConf = trueを追加して、再起動すると、/etc/resolv.confが自動的に生成されて、nameserverも正しいものが指定された。

まとめ

以前、名前解決エラーで悩んでよくわからずにgenerateResolvConf = falseを設定してしまっていたことが敗因。
パーミッションの勉強、chattrの勉強ができてよかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?