Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

WSL環境を作って壊す、覚書-lxrunは使わない。

f:id:espio999:20190130230048p:plain
Windows上でLinuxを稼働させる際、WindowsLinuxの中継レイヤーとして実装されるのがWSL (Windows Subsystem for Linux)だ。Hyper-Vなどの仮想環境に比べて、WSL上で稼働するLinuxは起動が早く、消費リソースも少ない。特にノートPCのように何かとリソースが制限されている環境で動作させるのに都合が良い。
開発環境やサーバー用途としてデスクトップ上で常用するのも良いが、簡単に環境を構築でき、素早く起動し、削除してもWindows環境を汚さない特性は、繰り返し使い捨てる環境の構築には絶好の機能だ。

WSL関連の情報を検索すると、その前身であるBash on Ubuntu on Windows(以下、旧WSL)をもとにした情報が混在している。例えばlxrunコマンドだ。lxrunを実行して、トップに掲載している画面に遭遇したことはないだろうか。エラー・コードが何を指しているのか以前に、そもそも削除されるというフォルダは存在していない。lxrunコマンドは旧WSL向けのコマンドなのだ。

旧WSLではなく、現在のWSLのための情報を整理し、まとめたのが今回のエントリだ。

公式情報

まずは公式情報を確認したい。リファレンスとなる参照元は次のサイトだ。
lxrunコマンドの廃止についても触れられている。
docs.microsoft.com
docs.microsoft.com

ディストリビューションのルート・フォルダ

WSLで導入するディストリビューションのルート・フォルダはレジストリを参照して確認することができる。各ディストリビューションは、次のレジストリ配下に、個別のGUIDとして定義される。

コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
DistributionName 対応するディストリビューション
BasePath ルート・フォルダのパス

f:id:espio999:20190130225851p:plain
画像はUbuntuのものだ。基本的にユーザー・フォルダのAppData配下に格納される。フル・パスは次のようになる。AppDataがどのようなフォルダなのかは、次のエントリを参照してほしい。

C:\Users\[user name]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

impsbl.hatenablog.jp

lxrunの代わり

Windows 10 1803以降ではlxrunコマンドが廃止されているとはいえ、インストールはされている。そしてトップ画像が示すように、旧WSLのパスを前提として機能している。基本的に「使うな」ということなのだろう。特に「作って壊す」ために多用するだろうオプションの代替手段は、「アプリと機能」に用意されている「詳細オプション」を利用することになる。
f:id:espio999:20190130225930p:plain

詳細オプションの、特に次の2つがlxrunと関連している。

リセット lxrun /uninstall フル・パスのLocalState配下のフォルダが削除される。
具体的にはフォルダrootfsとtemp。
Ubuntuを再実行すると、両フォルダが新規作成される。
アンインストール lxrun /uninstall /full Ubuntuそのもののアンインストール。
フル・パスのCanonical...が削除される。

f:id:espio999:20190130225953p:plain

余談

おそらくWSLについて出版されている唯一の文献なのだが、次の2つの理由から購入はおすすめしない。

  1. 旧WSLについての書籍であること。
  2. 内容のほとんどはWSLよりも、Linux入門的な内容であること。

ページのほとんどはLinuxコマンドの紹介から、パッケージ導入について紹介されている。

もしLinux入門的な文献を求めるならば、LinuCが無償配布しているLinux標準教科書を参照するのが良いだろう。
Linux標準教科書
Linuxサーバー構築標準教科書
高信頼システム構築標準教科書
Linuxセキュリティ標準教科書
Linuxシステム管理標準教科書