気がついたら使えるようになってた**WSL(Windows Subsystem for Linux)**を2に更新しました。
忘れてた・・・
WSL1は私はプレビュー時にインストールしてそのままなので今はやり方違うと思うのでそこは省略させてください。
#WSL1と2の違い
WSL2は仮想マシンを使い、Linuxカーネルが動作するLinux環境です。
Windows上でLinuxが動いています。
それに対してWSL1はLinux実行環境をLinuxカーネルではなく、LXCore と呼ばれる「サブシステム」が作り出しています。
つまりWSL1はLinuxぽいサブシステムを作ってそれがLinuxぽい動きをしているだけです。
それはそれですごいんですけどねw
Linuxが動いているわけではないです。
#WSLの特徴
##実行速度が早い
LinuxカーネルをWindows上で実行することはこれまでもできました。
ただ実行速度が遅かったです。
(VMware、Hyper-V)
WSLで素早くLinuxぽいことができるようになり、2で正式にLinuxを高速で使えるようになりました。
##これまで正しく動作できなかったアプリケーションが動くようになる
コンテナシステムやユーザーファイルシステムが使えるようになりました。
みんなの目的はDockerですよね。
WindowsのHOME EditionではDockerは使えません。(Proでは使える)
そのためWSLが発表されたときはDocker使える!!?って期待されたけど使えませんでした。
上記の通りWSL1はLinuxぽい動きをするサブシステムを動かしているのでそこにコンテナ置けなかったです。
じゃあDocker使えると何がいいの?って話はまた別の話になるので省略
参考
https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html
#アップデート方法
##環境
ThinkPad X1 Carbon 2017
OS:Windows10 home
##CPUの仮想化を有効にする。
BIOSのSecurityタブから仮想化を有効にします。
どうでもいいけどWindows10から?高速スタートアップとかのためOS起動時にFキー連打しなくなったよね。
久しぶりにBIOS出そうとして連打してしまうw
高速スタートアップとかがデフォだと有効になっていてデュアルブートとかもできなくなっています。
おっさんは注意が必要です。
https://support.lenovo.com/jp/ja/solutions/ht500006
##WSL2 Linux カーネルの更新
下記のサイトに従い、Linux カーネル更新プログラムをインストールします。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
##Windows PowerShellで更新
PS C:\Users\XXX\VSCode> wsl -l -v #現在のバージョンを確認
NAME STATE VERSION
* Legacy Stopped 1
kali-linux Stopped 1
Ubuntu Stopped 1
PS C:\Users\XXX\VSCode> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
PS C:\Users\XXX\VSCode> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。
PS C:\Users\XXX\VSCode> wsl -l -v
NAME STATE VERSION
* Legacy Stopped 1
kali-linux Stopped 1
Ubuntu Stopped 2
Ubuntuのバージョンが1→2になったことが確認できました。
WSLはご覧の通り1も2も共存することができます。
どのディストリビューションをどっちで使うか後で少し考えます。
それとDockerも入れてみようかね・・・