LoginSignup
23
29

More than 3 years have passed since last update.

WSL2を使ってみる (InsiderPreview)

Last updated at Posted at 2019-06-15

Win10 Pro IPにWSL2が来たので使ってみました。
WSLは、VM⇔Host 間のファイルやり取りの為のセットアップが面倒になっている身には期待したいものがあります。現状でもDocker for Winが良い線行ってますが、WSLもなかなかのもの。

試用した感想としては良い感じ。ただ、/mnt/c/へのアクセスは速度的に要注意。

機能を有効化

Hyper-V上にて次の環境で試しました。

  • OS: Windows 10 Pro Insider Preview
  • Build: 18917.1000
  • WSL有効化済み

仮想マシンで試すならば、おそらくNested Hyper-Vの有効化が必要です (未確認)。
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

現状ではWSL2を有効化するのにいくつか作業があるようです。
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

# 管理者権限で実行
# 「Windowsの機能の有効化または無効化」に相当。
PS> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

# ↑を実行後に再起動すること
PS> Restart-Computer

# インストールされているディストロを表示
# 著者の環境ではubuntuを入れています。
PS> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         1

# ubuntuの動作環境をWSL2へ変換
# 別のディストロをWSL2化したい場合には"ubuntu"部分を書き換えます
PS> wsl --set-version ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

# WSL1に戻す際は2の部分を1にすれば戻せます
# PS> wsl --set-version ubuntu 1

使ってみる

# バージョンが2になっていればWSL2が有効になってます
PS> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

# あとはいつもどおりの方法で起動できます
PS> ubuntu
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

$ ls /
bin   dev  home  lib    lost+found  mnt  proc  run   snap  sys  usr
boot  etc  init  lib64  media       opt  root  sbin  srv   tmp  var

$

噂の性能向上を計測

手頃なサイズのtarballを解凍してみました。

$ time tar -zxf WordPress-5.2.1.tar.gz

ついでに素のWindowsも

PS> Measure-Command { tar -zxf WordPress-5.2.1.tar.gz }

WslFsはWSL内のファイルシステム、DrvFsはWSLから見たWindowsのファイルシステムです。
WSL2はWslFsが高速化してる一方、DrvFsは遅くなってます。9pのせい?。

version WslFs DrvFs
WSL1 3.043s 25.044s
WSL2 0.391s 55.221s
Windows 41.18s 24.223s

まとめ

  • 有効化は「Windowsの機能有効化」と、「wsl --set-version ubuntu 2」で行う
  • WSL2のファイルアクセスは確かに早くなってる (もう少し大きいファイルが良かったな)。
  • /mnt/c/へのアクセスは旧版以上に重い

IOの主体をWSLかWinのどちらかに寄せたい。
VSCode Remoteにはその辺を期待してて、WindowsからWSL内のファイルへのアクセスを上手く活用し、作業時にはファイルの実体はWSL側に持たせたい感じ。ファイルアクセスの遅さに幻滅してるツイートを見かけましたが、この辺が原因かなと思った。

PS> explorer \\wsl$\Ubuntu
23
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
29