hack のためのネタ帳, etc,,,

WSL - Windows Subsystem for Linux

ティストリビューション

start ms-windows-store://collection/?CollectionId=LinuxDistros

参考になるページ等

有効化

GUI から

C:\Windows\System32\OptionalFeatures.exe を開き「Windows Subsystem for Linux」を有効にする。

設定を反映jにするには再起動が必要。

PowerShell から

⊞ (Windows Logo Key) powershell [SHIFT]+[CTRL]+[ENTER] と打って、管理者モードで Windows PowerShell を開き以下のコマンドを実行。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
設定を反映jにするには再起動が必要。

ディストリビューションの導入

GUI から

  • https://aka.ms/wslstore
  • [⊞ (Windows Logo Key)]+[R] ms-windows-store://collection/?CollectionId=LinuxDistros [ENTER]
のいずれから Microsoft Store の「Windows で Linux を実行する」から選ぶ。

PowerShell から

面倒なので
start https://aka.ms/wslstore
または
start ms-windows-store://collection/?CollectionId=LinuxDistros
から GUI で済ますのを推奨
に Invoke-WebRequest や curl, wget で .appx 拾って来て Add-AppxPackage に食わせる方法が紹介されているが
示されている短縮 URL
DistributionShorten URLLocation
Ubuntu 18.04https://aka.ms/wsl-ubuntu-1804https://wsldownload.azureedge.net/CanonicalGroupLi...
Ubuntu 18.04 ARMhttps://aka.ms/wsl-ubuntu-1804-armhttps://wsldownload.azureedge.net/Ubuntu_1804.2018...
Ubuntu 16.04https://aka.ms/wsl-ubuntu-1604https://wsldownload.azureedge.net/Ubuntu_1604.2019...
Debuan GNU/Linuxhttps://aka.ms/wsl-debian-gnulinuxhttps://wsldownload.azureedge.net/DebianGNULinux_1...
KALI Linuxhttps://aka.ms/wsl-kali-linux-newhttps://wsldownload.azureedge.net/kali-linux-08-06...
OpenSUSE Leap 42https://aka.ms/wsl-opensuse-42https://wsldownload.azureedge.net/openSUSE-42_v1.a...
SUSE Linux Enterprise Server 12https://aka.ms/wsl-sles-12https://wsldownload.azureedge.net/SLES-12_v1.appx
は 2018-07-24 当時のバージョンなので古い。
aka.ms は Microsoft の中の人しか作れない上、Microsoft Store から .appx の URL を拾う方法が不明というのが実に厳しい。

また、2020-04-08 現在、最新の Ubuntu は https://www.microsoft.com/store/productId/9NBLGGH4... なんだけど、
https://aka.ms/wsl-ubuntu は .appx じゃなくこの URL にリダイレクトされるという謎。
凄いおざなりにされてる感。
辺りに、
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu -OutFile Ubuntu.appx -UseBasicParsing
Add-AppxPackage .\Ubuntu.appx
なんてコードが散見されるが、上記の通り少なくとも 2020-04-08 現在において https://aka.ms/wsl-ubuntu のレスポンスは .appx じゃなくて .html なのでこれではインストールできない。

参考:

インストール済みディストリビューションの一覧

以下のいずれかの方法で確認できる。
Get-AppxPackage |% { if ( $_.Name -Match 'ubuntu|debian|suse|kali|wsl' ) {$_} }
wslconfig /l /all
wsl -l --all
Get-AppxPackage は Microsoft Store でインストール済みの dist が、
wslconfig と wsl は dist の実行環境の準備まで済んでいる dist が表示される。

実行環境の準備は、Windows メニューまたは、ubuntu, debian 等のコマンドを用いてインストール済みの dist を実行すると行われる。

ディストリビューションの無効化

以下のいずれかの方法で、dist の無効化が行える。
wslconfig /u $DISTNAME
wsl --unregister $DISTNAME

ディストリビューションのアンインストール

GUI

スタートメニューから各 dist を右クリックして、「アンインストール」または「アプリの設定」から「アンインストール」

PowerShell

Get-AppxPackage の結果もしくは PackageFullName を Remove-AppxPackage に食わせる。
例えば以下のようにやる。
Get-AppxPackage |% { if ( $_.Name -Match 'ubuntu|debian|suse|kali|wsl' ) {Removet-AppxPackage $_.PackageFullName}}
Get-AppxPackage |% { if ( $_.Name -Match 'ubuntu|debian|suse|kali|wsl' ) {Removet-AppxPackage $_}}
Get-AppPackage "*debian*" | Remove-AppxPackage

無効化

PowerShell から

以下のようにする。
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
設定を反映jにするには再起動が必要。
VolFs と DrvFs があって、
VolFs は mount では lxfs と表示される。win32 に対する WSL のオーバーレイ(WSL 上のファイルのパーミッションなどの管理)らしい。
DrvFs は win32 の任意のデバイスを WSL に mount するためのブリッジらしい。 mount -t drvfs Z: /mnt/z みたいにして使える。
WSL$ は、以前動いているのを確認した気がしたのだが、2020-01-22 現在なぜか上手く繋がらない。

参考:

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます