WSLのubuntu上でvimを使ってgolangのコードを書いたりしているが、とにかくファイルアクセスが遅い。vimでついつい:w
を実行してしまうとgoimportsなどが動いていることもあるがmacには無いような数秒待たされるストレス。
調べたところWSL2にすると高速、といった記事が散見されたので試してみた。
WSL2の有効化
Windows Power Shellを管理者権限で実行
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
windows再起動。
wsl.exe --set-default-version 2
Linuxカーネルの更新が必要な場合はその旨出るようだが特に出なかったので更新はしてない。
UbuntuをWSL2に変更
wsl --set-version Ubuntu 2
ここでエラー。
仮想ディスク システムの制限により、要求された操作を完了できませんでした。仮想ハード ディスク ファイルの圧縮と暗号化が解 除されている必要があります。また、仮想ハード ディスク ファイルをスパースに設定することはできません。
エラー対処
調べたところ、解決事例があった。
- https://qiita.com/saida/items/ab6c5a980a1f5383c23a
- https://github.com/microsoft/WSL/issues/4103#issuecomment-504699751
%localappdata%\Packages
を開くと、確かにCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
というディレクトリがあった。
プロパティ -> 詳細設定を開くとたしかに圧縮する設定になっているので 内容を圧縮してディスク領域を節約する
オプションを外す。
一応変更対象にサブフォルダも指定したせいか、適用中に一部 ファイルにアクセスできません
のエラーが出てしまった。何度か再試行したが予想通り変わらないので仕方なくキャンセル。ただ、そもそもサブフォルダは変更しなくてもよいらしいので大丈夫かも。
一応これで試したみたら成功した。
WSL2のubuntuを試す
心なしか速くなった気もする。
試しにvimでgolangのファイルを保存。
(ファイルは/mnt/c
などのwindowsファイルシステム化でなく、ubuntuのファイルシステム下でやっている。windowsファイルシステム下だと遅いらしい)
うーん、今のところ劇的ではないが、若干早くなった気はする。(なにかがうっかりwinファイルシステム使ってるなどはあるかも)
コメント