![見出し画像](https://assets.st-note.com/production/uploads/images/128320153/rectangle_large_type_2_0672bd2b41ca8d632b10dc308f909b17.jpeg?width=1200)
WSLを快適に使うためのメモ
背景
WSL(Windows Subsystem for Linux)のおかげで、Windowsでも気楽にLinuxが使えるようになり、便利になった
一方で、MainsystemとSubsystemの連携で、知識を必要とする印象は拭えていない(個人的に)
WSLを使うときのトラブルを減らすための個人的なメモ
環境
Windows 11
WSL バージョン: 2.0.14.0
バージョンについて
バージョン1系と2系がある
2の方がファイル システムのパフォーマンスが優れているようだ
深く考えず、後発の2系を使うことにする
機能の比較表がMicrosoftのページにある
1の方に「OS ファイル システム間でのパフォーマンス」項目にチェックがついている意味が把握できていない
ディストリビューションの格納場所
以下のパスにディストリビューションごとにフォルダが作られる
筆者の(Ubuntuを入れた)環境では、CanonicalGroupから始まるフォルダを探すことでみつけられる
%userprofile%\AppData\Local\Packages\
仮想ディスクの格納場所
ディストリビューション毎のディレクトリの以下のLocalStateフォルダにVHDXファイルが格納されている
「ext4.vhdx」などのファイル名
Linux上でストレージを消費すると、仮想ディスクのVHDXファイルの容量が増えてい行く
このファイルの容量でWSL側のストレージの使用量の目安を確認することができる
Windows11環境においては、「アプリ - インストールされているアプリ」項目でも、使用容量を確認することができる
ストレージが不足したときは、WSL側の解放も候補に入れた方がよい
以下は、Ubuntu 20.04LTSの場合
%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_123456789abcd\LocalState
一覧表示するコマンド
以下のPowerShellのコマンドで、インストールされているディストリビューションのパスを列挙することができる
Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse
インストールされる実行ファイル
WSLを導入すると、wslコマンドが使えるようになる
wslコマンドで、ディストリビューションを管理できる(後に述べる)
ディストリビューションの追加、削除、列挙など
C:\Windows\System32\wsl.exe
C:\Users\user\AppData\Local\Microsoft\WindowsApps\wsl.exe
ディストリビューション毎にも実行ファイルが作られる(ようだ)
エクスプローラーで閲覧すると0バイトのようだが、実行できるようだ
パスも通っているようで、`ubuntu2004`などとするとWSLを起動することができる
%userprofile%\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe
%userprofile%\AppData\Local\Microsoft\WindowsApps\ubuntu2204.exe
Windowsターミナルアプリのとの連携
Windowsターミナルと連携すると便利
ディストリビューションをインストールするときに自動でプロファイルが追加されるようだ
手動でプロファイルを編集できるようになると便利
WSLを起動するには、ターミナルアプリの設定の「コマンドライン」の項目にwslのコマンドを書いてあげればよさそう
wslのコマンドについては後に述べる
![](https://assets.st-note.com/img/1705818421720-KoNkERbE1b.png?width=1200)
![](https://assets.st-note.com/img/1705818457389-3zG7dIzLPd.png?width=1200)
よく使いそうなWSLコマンド
以下のルールで記述
1行名、長い文字列のオプション指定
2行名、短い文字列のオプション指定
インストール済みを列挙
インストールされている Linux ディストリビューションを一覧表示とWSL のバージョン表示
verboseを指定するとバージョンも確認できる
wsl --list --verbose
wsl -l -v
実行
PowerShellまたはコマンドプロンプトで、Linux ディストリビューションを指定して実行する
ユーザーも指定することができる
wsl --distribution <Distribution Name> --user <User Name>
wsl -d Ubuntu-20.04 -u user
インストール可能なものを列挙
オンライン ストアからダウンロードできる利用可能な Linux ディストリビューションの一覧を確認する
wsl --list --online
wsl -l -o
インストール
wsl --install -d <Distribution Name>
既定の Linux ディストリビューションを設定
wsl --set-default <Distribution Name>
参考にしたページ
[メモ] WSLで確保したストレージの解放について
後日まとめるためのメモ
ファイルの容量は増える一方で、自動には減らないようだ
以下のページで自動で未使用領域を解放する方法が書かれているようだが、まだ読めて、試せていない
以下もヒントになりそう
以下にある手動で解放する手順は試して動作した