WSL2

WSL2 

WSLって何?

Windows 11にはLinuxを動作させるためにWSL2という仕組みをもっています。通常LinuxディストリビューションはLinuxカーネルを経由してハードウェアへアクセスしていますが、WSL2の仕組みでは間にHyper-Vが入っています。Windowsと同居して動作することができるように、このHyper-VがWindows NTカーネルとハードウェアのアクセス権について調整をしています。

Windows NT カーネル Linux カーネル ハードウェア Windows 11 ( ユーザ環境 ) Hyper V ( ハイパーバイザ ) ユーザランド HW の要求 ディストリ ビューション

WSLとはWindowsでLinuxを動かすための器です。器の中にさらにカーネルを事前に敷いているイメージです。このカーネルを使って動くLinuxをダウンロードしてくることで利用できるようになります。インストールしても基本的にはWindowsを立ち上げるたび利用するLinuxの立ち上げるという行為が必要になります。

LinuxをインストールするとWindowsのどこかにext4.vhdxという仮想ハードディスクが作成されこの中にLinuxのルートファイルシステムが作成されます。Windowsから直接見えるのはこのext4.vhdxファイルまでですが、さらにその中を見るにはネットワーク共有(P9プロトコル)を使います。実際はエクスプローラで\\wsl.localhost\ と打ち込むと自動でこのプロトコルが使われて中身が見えるようになっています。

Linuxの世界(パス)Windowsの世界(エクスプローラーでの見た目)
/ (ルート)\\wsl.localhost\AmazonLinux2023\
/usr/bin/\\wsl.localhost\AmazonLinux2023\usr\bin\
/home/sooni/\\wsl.localhost\AmazonLinux2023\home\sooni\
仮想ハードディスクの所在を確認する
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\*" `
| Select-Object @{Name="Linux名"; Expression={$_.DistributionName}}, `
@{Name="ext4.vhdxの場所"; Expression={$_.BasePath}} `
| Format-Table -AutoSize
docker-disk >> Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\*" `
>> | Select-Object @{Name="Linux名"; Expression={$_.DistributionName}}, `
>> @{Name="ext4.vhdxの場所"; Expression={$_.BasePath}} `
>> | Format-Table -AutoSize

Linux名              ext4.vhdxの場所
-------              ---------------
AmazonLinux2023      d:\WSL\AmazonLinux2023\
rancher-desktop-data C:\Users\atsushi\AppData\Local\rancher-desktop\distro-data
rancher-desktop      C:\Users\atsushi\AppData\Local\rancher-desktop\distro

docker-disk >>
現在インストールしてあるLinux一覧の確認
wsl -l -v
tmp $ wsl -l -v
  NAME               STATE           VERSION
* AmazonLinux2023    Stopped         2
tmp $
Linuxの起動と停止
wsl -d AmazonLinux2023
* AmazonLinux2023    Stopped         2
tmp $ wsl -d AmazonLinux2023
[sooni@amzn2023-local tmp]$ exit      ← これだけで抜ける事ができて停止までする。
logout
tmp $ wsl -l -v
  NAME               STATE           VERSION
* AmazonLinux2023    Running         2   ← この通り抜けてすぐはまだ動作中
tmp $ wsl -l -v
  NAME               STATE           VERSION
* AmazonLinux2023    Running         2
tmp $ wsl -l -v
  NAME               STATE           VERSION
* AmazonLinux2023    Stopped         2   ← 数十秒かな、、すると停止する。
tmp $
WSLからCドライブを表現するには
ls /mnt/c
スポンサーリンク
タイトルとURLをコピーしました