初めに
いつもお読みいただき、ありがとうございます。あと少しですので頑張ります。
WSL2を使えるようにする
PowerShell (Core) を使って作業
- WindowsTerminalからPowerShellを開いて実行する。
準備
sudo を使うので確認
管理者権限でのスクリプト時に便利なので、Scoopで入れておくとよい。
scoop info sudo
インストールされていない場合は追加する。
scoop install sudo
インストール
1)WSL機能を有効にする
Windows機能として「Linux 用 Windows サブシステム」オプション機能を有効化することで、WSL1/WSL2が使用可能となる。
sudo dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2)仮想マシン機能を有効にする
WSLの実行には「仮想マシン機能」が有効であることが必要。そもそもCPUやファームウェア自体が対応してないと有効化できない。もしうまくいかないときは、自分のマシンスのペックやCPUを調べてみること。
# Windows10のバージョンが新しい(2004)場合は以下のコマンド:
sudo dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# Windows10のバージョンが古い(1903, 1909)場合は以下のコマンド:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
3)マシン再起動
sudo shutdown /r
4)WSL2 を既定のバージョンとして設定
新しい Linux ディストリビューションをインストールする際の既定バージョンとして WSL2 を設定する。
sudo wsl --set-default-version 2
指定された https://aka.ms/wsl2kernel に行くと、Linux カーネルコンポーネントの更新が必要とのこと。x64用の更新プログラム1をダウンロードし、インストールする。もし、ARM64 マシンを使用している場合は、代わりに ARM64 パッケージ2をダウンロードして使う。
curl https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi --output c:\home\seeds\wsl_update_x64.msi
c:\home\seeds\wsl_update_x64.msi
sudo wsl --set-default-version 2
Linux をインストール
まずはbash(Ubuntu)を使えるようにする
最近のwindows10には、標準でbash.exeというコマンドが入っているが、動かそうとすると以下のように表示される。
bash
指定のURLを見ると「Microsoft Store」のLinuxのページ。
「Ubuntu」を選択すると、現時点では20.04が取得できる。
インストール完了。
起動すると、Linuxでのユーザ名と、パスワードの入力を促される。
完了するとubutuのターミナルとなる。
「sudo」は可能だが、パスワードが必要。
動作
状況確認
PowerShell (Core) にて実行。
wsl -l -v
コンソールから使用
PowerShell (Core) のコンソールからbashを起動。
bash
現在のディレクトリにてbashが起動する。
bashにて、ファイルをリスト表示する。LANGはC.UTF-8となっており、そのままでも日本語ファイルパスを表示できる。
ls -l /mnt/c/Users/${USER}/
echo $LANG
ツールを使ってインストール先を選択
LxRunOfflineを利用する。
インストール
scoop search LxRunOffline
scoop install LxRunOffline
Distroファイルを取得する
curl -L https://lxrunoffline.apphb.com/download/Alpine/v3.13 --output c:\home\seeds\alpine-v3.13-root.tar
wsl に導入
# 作成
LxRunOffline install -n Alpine_v3.13 -d C:\opt\wsl2\alpine_v3.13 -f c:\home\seeds\alpine-v3.13-root.tar -r .
# 確認:リスト表示
LxRunOffline list
wsl から確認
wsl -l -v
wsl2 に変換
wsl --set-version Alpine_v3.13 2
wsl -l -v
実行
wsl -d Alpine_v3.13
確認
別のPowerShellを開いて実行。
wsl -l -v
停止
wsl -t Alpine_v3.13
wsl -l -v
トラブル
少し使っていると、トラブルも発生する。特に**「マシンのメモリーを使い果たしてしまって、WSL2以外のアプリが動かなくなる」**のは深刻。対処法は別記事3に書いたので、参考にして設定変更するとよい。
終りに
あともう少しでDockerが動く。
親記事:WSL2とVSCで作るWindowsでのDocker内開発環境(2021年睦月)