WSLのバージョン2が使えるということを聞いて、変更しようとしたのですがエラーが出てしまったので備忘録
環境: Microsoft Windows [Version 10.0.18963.1000]
#WSL2に変更時のエラー内容
- 仮想ディスク システムの制限により、要求された操作を完了できませんでした
- bsdtar: Write error
- 0xC03A001A
- 0x80070040
この辺りのエラー解決策です。
原因はWSLのフォルダが圧縮対象であったことです。
お急ぎの方は下の解決策へ
余談
実は、このエラーの前に
仮想ディスク システムの制限により、要求された操作を完了できませんでした
というエラーも出てたりしてたんですが、Cドライブのオプション見ても圧縮してないしな~って思っていた自分がいました。
デフォルトバージョンを2にして再インストとかしたんですが、結局
0xC03A001A
とか 0x80070040
のエラーに...
WSL2への更新手順
1:(WSLを入れてないならWindows Storeからubuntuとかを入れて起動して初期設定)
2: PowerShellを管理者として実行して以下のコマンド
$wsl -l
ここで名前を確認(UbuntuとかUbuntu-18.04とか)
3: $wsl --set-version 名前 2
完了!のはずだった...
解決策
WSLのフォルダの圧縮を外す。
WSLの格納フォルダは
C:\Users\[name]\AppData\Local\Packages
の中にある
CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
みたいなやつです。
(%localappdata%\Packages
をURLバーにいれるといい感じの場所に飛べます)
この長いフォルダを
右クリック -> プロパティ -> 詳細設定 -> 内容を圧縮してディスク領域を節約する
のチェックを外す。
サブディレクトリまではしなくていいらしいけど、自分はした。
後は再起動すれば無事変換できた。めでたしめでたし。
#参考
https://github.com/microsoft/WSL/issues/4103#issuecomment-504699751