WSL2でwindowsがますますlinuxフレンドリーに!
MicrosoftのMay update 2020では目玉機能のひとつであるWSLのアップデート版WSL2が発表されました。
参考 Microsoft、「Windows Subsystem for Linux 2」を発表、将来的にはGPUコンピューティングやGUIアプリのサポートも:CodeZine(コードジン)CodezinewindowsにLinux環境を構築しようとすると、VMwareやVirtual BOXなどのアプリケーションを使って仮想マシンにインストールする方法が一般的に使われていますが、あくまで仮想マシン上にLinuxがあるわけなので、windowsのネイティブアプリケーションのような感覚では利用できませんでした。
とは言ってもテスト環境としては気軽に複製できるし、様々なディストリビューションを試すこともできるので便利といえば便利です。
VMwareを使ってLinuxを仮想マシンに導入する方法!他にはLinuxとwindowsのデュアルブートという方法もありますが、Linuxを起動するのにいちいち電源を落とさなければならないのは面倒ですし、Linuxとwindowsのファイルシステムの管理問題もあります。
MicrosoftはこれまでにもLinuxを利用できる環境として2017年よりwslをリリースしてきました。
wslはlinuxカーネルのシステムコールはwindowsOSのカーネルを使ったエミュレーションで実現していましたが、今回のwsl2ではネイティブのLinuxカーネルが動作するようになっています。仮想マシン上でlinuxは動いている形になっていますが、より完全に近い形でLinuxが利用できます。
WSL2を使ってwindowsにLinux環境を構築しよう!
0.BIOS画面でIntel vtxを有効化する
ハードウエアの仮想化支援機能を有効化します。最近のそこそこのCPUなら搭載されていると思います。BIOS画面とはPCを起動したときに出てくるwindowsとはちょっと違うアノ画面のことですが、起動方法はPCの会社によって異なるのでそれぞれ検索してみてください。「BIOS 起動 (PC会社)」と検索すれば出てくると思います。
参考 【UEFI BIOS】仮想化支援機能(VT-x / Intel VT)を有効化する(ASUS ROG STRIX Z390-F GAMING)情報科学屋さんを目指す人のメモintel vtxを有効化しているのにうまくいかない場合はHyperVを無効化するとよいみたいです。私の環境ではhyper-Vは無効化しています。設定は次の次で紹介するwindowsの機能の有効化または無効化の設定画面でできます。
1.最新バージョンのOSにアップデート
WSL2を利用するにはまず最新版バージョンのOSにアップデートする必要があります。
設定から更新を選んで最新のバージョンにアップデートしましょう。
2.windowsの機能の有効化または無効化の設定
スタートメニューを開いて「windowsの機能の有効化または無効化の設定」と入力して画面を開いてください。そこにある「Windows Subsystem for Linux」「仮想マシンプラットフォーム」にチェックをいれます。
3.PowerShellで機能有効化の確認
powershellを管理者権限で立ち上げて機能の有効化を確認します。手順は以下のサイトを参考にしました。
参考 WSL 2 のインストール,Ubuntu 18.04 のインストール 取得できませんでしたパワーシェルはウィンドウズメニューから起動できます。
powershellに以下2つのコマンドをそれぞれ入力してエンターしてください。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
4.windowsストアでubuntu 18.04 LTSを入手する
スタートメニューにストアと入力するとMicrosoft storeがあるのでそこでUbuntu 18.04 LTSをインストールします。
インストールが完了したら起動ボタンを押して起動します(スタートメニューからも起動可能)
5.ubuntuの画面でユーザー名とパスワードを入力
ubuntuが立ち上がるのでそこでユーザー名とパスワードを入力します。ここのユーザー名とパスワードはUbuntuで利用します。
ここでエラーが出る場合は手順3の部分がうまく設定できていないか、windowsが最新バージョンではない可能性があります。
6.Powershell または コマンドプロンプトでubuntuを起動
Powershellまたはコマンドプロンプトで「wsl」と入力するとbashが立ち上がってubuntuが操作できるようになります。コマンドプロンプトでlinuxが操作できるというのは感動ですね
コマンドプロンプトでwslと入力してもbashが立ち上がらない場合はコンピュータを再起動して入力してみてください。場合によっては手順3のpowershellの入力をもう一度やってみてください。
bashからwindowsのデスクトップにtouchコマンドでテキストファイルを生成するときちんと反映されます。
当然、生成したテキストファイルをvimで編集するとテキストファイルに反映されます。
wsl2を導入した環境でVMwareを使用する方法
仮想マシン構築環境で有名なものはoracle社のVirtual BOX、VMware社のVMware Workstationがあります。これらの仮想化技術はwsl2の機能と競合することから同時利用ができなくなってしまいます。
原因はHyper Vの機能が関わっているようです。詳しくは以下の記事を参照してださい。
参考 WSL2とHyper-Vの関係 - Qiita取得できませんでしたVMWareに関してはこちらの評価版(156日の評価試用期間)を使用すれば利用することが可能です。インストールし、仮想マシンファイルを参照すれば利用できます。
使用する場合は「windowsの機能の有効化と無効化」の「仮想マシンプラットフォーム」と「Windows Subsystem for Linux」を無効化する必要があるかもしれません。
rootでwslにログインしたい
コマンドプロンプト上でユーザを指定すればrootでログインできます。
wsl -u root