あかり描像のブログ

思ったことや学習記録を適当に書いていきます。お気軽にコメントください

WSL Trouble Shooting

bakkyalo.hatenablog.jp

↑ この記事から分離させました。

他にも、WSL 周辺でなんかおかしなことが起きた時はこの記事に追記していくかもしれません。

Nautilus 関連

Other Locations から Connect to Server できない

Windows10 で Nautilus から sftp 接続しようとするとうまくいかなくなることがあるようです。「Connect to Server」に sftp:// 等と記入しようとすると枠が赤く表示されて以降何も受け入れてくれないという状態になります。

どうやら PID 1 (初期システム) が systemd ではなく Microsoft init になっていることが原因らしいです。これは Ubuntu 20.04 LTS で起こり、Ubuntu 22.04 LTS では最初から解消されていると思います。

$ ps -ae
  PID TTY          TIME CMD
    1 hvc0     00:00:00 init(Ubuntu-20.
    8 hvc0     00:00:00 init
:
:  (以下略)
:

このように PID 1CMD が init 云々になってるのがアカンみたいです。*1
そこで、 /etc/wsl.conf に以下を追記します*2。ファイルがない場合は新たに作成します。sudo が必要です。

/etc/wsl.conf

[boot]
systemd = true

そして WSL を再起動します。

> wsl --shutdown

これで WSL2 を起動すると恐らく Nautilus 上の sftp (に留まらずネットワーク全般) が使えるようになると思います。

$ ps -ae
    PID TTY          TIME CMD
      1 ?        00:00:01 systemd
      2 ?        00:00:00 init-systemd(Ub
:
:  (以下略)
:

ターミナル上に出現する謎の Error 達

(org.gnome.Nautilus:1397): GLib-GIO-CRITICAL **: 12:52:37.954: g_dbus_proxy_new: assertion 'G_IS_DBUS_CONNECTION (connection)' failed

↑ こういうエラーが出続ける場合は次のように打つ。

sudo apt purge fcitx-module-dbus
Nautilus-Share-Message: 12:55:12.036: Called "net usershare info" but it failed: Failed to execute child process “net” (No such file or directory)

↑ というエラーが出る場合は

sudo apt install samba-common-bin
sudo mkdir /var/lib/samba/usershares
(org.gnome.Nautilus:4132): Gdk-WARNING **: 13:17:46.971: Server is missing xdg_foreign support

↑ こういうエラーは?

...わからん

GUI (X サーバー) に繋がらない

Nautilus は開くが X サーバーには繋がらないということが起きます。

Windows10 上の WSL2 で VcXsrv を使っていた場合、.bashrc

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

等と書いていたと思いますが、これが何かの拍子で狂ってしまい、nameserver もとい環境変数 $DISPLAY がおかしな場所を指してしまうようです。

そんなことなので、対処療法的ですが root 権限で /etc/resolv.conf を適当に書き換えるか、

export DISPLAY=:0.0

等とすると一応 X サーバーに繋がるようにはなります。

*1:これは Windows10 が云々というより、Ubuntu 20.04 LTS がそうなっていたって話みたいです。実際、Ubuntu 22.04 LTS の方では後述の /etc/wsl.conf が初めからちゃんと設定されていました。

*2:WSL の方です。Windows の %USERPROFILE%\.wslconfig とは別物です。