VS code server for wsl closed unexpectedly. Check wsl terminal for more detailsってエラー出るけど...

f:id:ts0818:20210301222517j:plain

www.itmedia.co.jp

 みずほ銀行は3月1日、一部のATMで2月28日から起きていた障害についてほぼ復旧したと発表した。定期預金のデータ更新作業が原因だという。全国の支店内にあるATMは全て1日朝から稼働しているものの、午前9時時点で稼働が確認できていない店舗外のATMが計42カ所あり、全面復旧へ作業を進めている。

みずほ銀行のシステム障害、ほぼ復旧 定期預金のデータ更新作業が原因 1日午後にも説明へ - ITmedia NEWS

 みずほ銀行では2002年4月の発足時と11年3月の東日本大震災の直後にもシステム障害を起こしていた。その後、4000億円以上を投じて基幹システムを刷新。19年夏に本格稼働を始めていた。

みずほ銀行のシステム障害、ほぼ復旧 定期預金のデータ更新作業が原因 1日午後にも説明へ - ITmedia NEWS

⇧ 何て言うか、「4000億円以上」の費用がかかってることから、超弩級の大規模システムなんだから、まぁ、障害も起こるよね、保守してる人は大変ですな。

「WSL 2(Windows Subsystem for Linux 2)」に「Visual Studio Code」の「拡張機能」の「Remote-WSL」で「リモート接続」しようとして、エラーが出たので調査してみました。

毎度、変わることなく、Windows 10 Home 64bit 環境です。

レッツトライ~。 

 

Vs code server for wsl closed unexpectedly. check wsl terminal for more detailsってエラー出るけど...

「WSL 2(Windows Subsystem for Linux 2)」に「Ubuntu 20.04 LTS」をインストールしたんで、「Visual Studio Code」の「拡張機能」の「Remote - WSL」で「WSL 2(Windows Subsystem for Linux 2)」の「Ubuntu 20.04 LTS」へ「リモート接続」をしようとしたら、

f:id:ts0818:20210301160537p:plain

f:id:ts0818:20210301155720p:plain

⇧ はい、エラー...。

 

yokanyukari.hatenablog.com

ターミナルでWSL2が起動するが、vscode server for wsl closed unexpectedlyとかいうエラーを吐いてVSCodeのRemote WSLでは接続できなくなった。
私はWindows Insiderでこの前Windows Updateかけたあとぐらいから発生した。
結果としてVSCodeのRemote WSLのWSL側のパッケージを再インストールしたら治った。

ターミナルでWSL2が起動するが、VSCodeのRemote WSLでは接続できないとき - 味噌汁を飲みます

方法としてはホームディレクトリに存在する.vscode-serverを削除するだけなので rm -r ~/.vscode-serverしたのちにVSCodeでRemote WSLを使ってWSLにつなぐ。そうするとパッケージが再インストールされる。

ターミナルでWSL2が起動するが、VSCodeのRemote WSLでは接続できないとき - 味噌汁を飲みます

⇧ 上記サイト様によりますと、「~/.vscode-server」を消し去った後に、再度「Remote WSL」で接続すればOKですと。

で、 

f:id:ts0818:20210301160922p:plain

⇧「.vscode-server」なるものは存在しないんですけど... 

 

qiita.com

私の場合は/etc/wsl.confが誤った記述になっていたので修正した。

WSLでwindowsディレクトリがマウントされないのを対処した「備忘録」 - Qiita

⇧「etc/wsl.conf」なるファイルについて、修正すれば良いと。

で、「\\wsl\ubuntu2004-1\etc」を確認するも、

f:id:ts0818:20210301163227p:plain

⇧「etc/wsl.conf」なるものは存在しないですと... 

 

何か、Microsoftの公式のドキュメントを見た限り、

docs.microsoft.com

wsl.conf は、/etc/wsl.conf 内の各 Linux ディストリビューションにあります。 そのファイルがそこになければ、自分で作成できます。 WSL は、ファイルの存在を検出し、その内容を読み取ります。 ファイルが見つからないか、形式が正しくない (つまり、不適切なマークアップ形式である) 場合、WSL は通常どおりに起動を続けます。

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config

⇧ ってな感じで、「/etc/wsl.conf」が無くても、WSLは通常通りに動くんだそうな...

あれかな、「Microsoft Store」経由じゃない方法でインストールしたから「/etc/wsl.conf」が作られなかったのかな?

 

ascii.jp

WSL2(Windows Subsystem for Linux 2)には、2つの設定ファイルがある。1つは、win32側でWSL2全体の設定をする「.wslconfig」。もう1つは、WSLディストリビューションごとの設定をする「wsl.conf」だ。

ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)

 まずは「.wslconfig」。これはWin32側でWSL2全体の設定をするもので、各ユーザーフォルダーの下、「C:¥Users」以下にある。環境変数を使って表記するなら、

%UserProfile%¥.wslconfig

となる。

ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)

⇧ ということで、「%UserProfile%\.wslconfig」なるファイルはというと、

f:id:ts0818:20210301170639p:plain

⇧「%UserProfile%\.wslconfig」なるものは存在しないですと... 

どうやら、

qooga.jb-jk.net

インストールしたら用意される訳ではないので、新規に作成し、下記の内容で保存する。

windows 10 homeにWSL2を入れてDockerを使う | ベンキョーベヤダベヤ

⇧ 上記サイト様によりますと、自動で作成されるわけではないんですと。

 

とりあえず「/etc/wsl.conf」を作成してみる

Microsoftの公式のドキュメントによりますと、

docs.microsoft.com

⇧ ってなっていて、それが以下。

# Enable extra metadata options by default
[automount]
enabled = true
root = /windir/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true

⇧ ってなってるんだけど、

 

# Enable extra metadata options by default
[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
#[network]
#generateHosts = true
#generateResolvConf = true

⇧ って感じにして作成してみます。

「vi」で「/etc/wsl.conf」を新規に作成して、編集していきます。

f:id:ts0818:20210301173221p:plain

以下のように、書き込んで、保存して「vi」を終了します。 

f:id:ts0818:20210301172743p:plain

f:id:ts0818:20210301173347p:plain

f:id:ts0818:20210301173418p:plain

⇧「/etc/wsl.conf」が作成できました。

駄目だったけど...

 

The Visual Studio Code Remote - WSL extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code.

というか、

code.visualstudio.com

⇧ このあたりの手順を踏まなくても接続できるものなのかね?

上記手順を実行してみた結果、 

f:id:ts0818:20210301203945p:plain

f:id:ts0818:20210301204134p:plain

⇧「WSL 2(Windows Subsystem for Linux 2)」に「Visual Studio Code」で「リモート接続」できました。

なるほど、「.vscode-server」ってのは、

f:id:ts0818:20210301204420p:plain

 ⇧「WSL 2(Windows Subsystem for Linux 2)」側に作られるってことなんですね。

というわけで、結局のところ、「.vscode-server」が必要なのは分かったんだけど、「/etc/wsl.conf」が必要だったのかどうかが分からん...

毎回、モヤモヤしか残らんな...

今回はこのへんで。