2025年1月31日金曜日

WSL : WSLでGUI起動しなくなった/名前解決できなくなった件

目的:

WSLで GUIが起動しなくたったり、名前解決できなくなったりした為、対応を行う。

背景:

WSLをしばらく使用しておらず、久々に起動したら、WSL の更新が必要な胸の旨の メッセージが発生した。 ( Windouw11 Update の影響 ? )
メッセージに従って WSL を更新したところ、
  • GNOMI ターミナルが起動しない。
    xterm も起動しない。
    Xサーバーで表示できない模様。
  • 名前解決ができなくなった。
    raspberry pi でローカルの DNSサーバーを起動しているが、これを使用できていない模様。 (PowerShell からは 名前解決できるが、WSL からはできない状態。)
    この為、これらの対応を行う必要が発生した。

対応方法:

  1. GUI が起動しない件
    DISPLAY の 値が 10.255.255.254 になっている。
    この為、Xサーバーで表示できない様である。
    対応方法 :
    DISPLAY の設定として .bashrc に記述していた
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
    を削除(コメントアウト) した。
    尚、Windows11 では WSL2 では Xサーバー を使用しなくで良くなったようで、Xサーバーを起動せずとも、DISPLAY の設定を削除するだけで GNOMIターミナルが起動できるようになった。

  2. 名前解決できない件
    /etc/resolb.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 10.255.255.254
    となっている。
    ググったところ、c:\users\<<ユーザ名>>\.wslconfig
    [wsl2]
    dnsTunneling=true
    の定義を入れると改善するとの情報があったが、実施しても効果なし。

    この為、
    1. /etc/wsl.conf ファイルを作成して、
      [network]
      generateResolvConf = false
      を記述
    2. /etc/resolv.conf ファイルに、ローカルの nameserver を追記
      # 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 192.168.1.xxx        <- local の nameserver を 追記
      nameserver 10.255.255.254
      を行い、WSL を再起動 ( Powershell がら "wsl --shutdown" を実行) することで、名前解決できるようになった。

0 件のコメント:

コメントを投稿