現: 2023-01-15 (日) 09:29:16 yuji ソース
Line 1: Line 1:
 +* Windows10でWSL2を使ってみる [#u6542d96]
 +WSL(WSL1)では全てのLinux上のソフトウェアを動かせるわけではなかった。~
 +WSL(WSL1)ではLinux Kernelへのファンクションコールを''lxcore.sys''と''lxss.sys''いうカーネルドライバーでLinux Kernelをエミュレーションしていて,Windowsカーネルのファンクションコールに変換して動作させている。このカーネルドライバーでの変換(エミュレーション)が限定的なサポートであるので動かないソフトウェアがあった。~
 +
 +WSL2はHyper-Vのコア機能であるHyper-Vアーキテクチャーとそれを利用したHyper-Vコンテナの上でMicrosoftが開発したWSL2専用のLinux Kernelを動作させるので,Kernelエミュレーションでの制約がほとんどなくなり多くのLinuxプログラムが動作すると思われる。~
 +
 +WSL2はWindows10 2004(20H1)で正式にリリースされる予定のようだ。~
 +現状ではWindows Insider Program((将来リリースされる予定の現在開発中の機能を,いち早く入手して使用することが出来るプログラム。開発中の機能ということで,不具合や安定性が損なわれているOSを使用することになるためリスクがある。)) を使用している場合に,WSL2を有効化して使用する事ができる。~
 +
 +Windows Insider Programに参加するには,設定>更新とセキュリティ>Windows Insider Programをクリックして,指示に従いPreviewプログラムを受け取れるようにして,PCを再起動する。~
 +
 +現在のWindows10のビルド番号を確認するには,以下のようにする。(Windows Insider Programに参加していないWindows10 1909)~
 + D:\home\ueno>ver
 + 
 + Microsoft Windows [Version 10.0.18363.476]
 +
 +Windows Insider Programに参加すると,Windows10のビルド番号は18917以降になる。~
 +
 +** WSL2の特徴 [#i48d8159]
 +WSL2の特徴は以下のようなものがある。~
 +- WSL2専用のLinux KernelをWindowsハイパーバイザー(Hyper-V)を使用して動作させている~
 +完全な仮想化ではなく,Light-weight VM(LinuxはHyper-Vコンテナ上で動作するようだ。)だとか言っている。~
 +- ネットワークコンポーネントは仮想化されている~
 +ネットワークコンポーネントもWindowsハイパーバイザー(Hyper-V)上で仮想化されている。~
 +- ファイルシステムは仮想ディスクを使用している~
 +Windowsハイパーバイザー(Hyper-V)のストレージの仮想ハードディスクを使用している。~
 +- Windowsハイパーバイザー(仮想化環境)を利用して動作するが高速である~
 +WSL(WSL1)に比べても動作速度は意外と高速である。~
 +- WSL(WSL1)で使えなかったnmapやtcpdumpが動く~
 +- WSL(WSL1)とWSL2は併用できる~
 +- WSL(WSL1)で使っていたLinuxをWSL2用に変換することが出来る~
 +- 他の仮想化環境が動作しなくなる~
 +古いバージョンの''VMware Workstation PlayerやOracle VirtualBoxは動作しなくなる。''~
 +VMware Workstation PlayerやOracle VirtualBoxのバージョンを新しいものに更新すると,WSL2と共存して動作するようになるようだ。~
 +
 +** WSL2を利用する準備 [#hadfc99d]
 +WSL2を利用するには,
 +- コントロールパネルの''プログラムと機能''を開く~
 +- ''Windowsの機能の有効化または無効化''をクリックする~
 +- ''Windows Subsystem for Linux''をマークを入れて有効にする~
 +これはWSL(WSL1)を使えるようにする。~
 +既にWSLを使っている場合はマークされていて,このコンポーネントはインストールされている。~
 +どのバージョンからかは不明だが,''Linux用 Windows サブシステム''に名前が変わっている。~
 +- ''Hyper-V''もしくは''仮想マシンプラットフォーム''にマークを付けてOKを押す~
 +Windows 10 2004やそれ以前のWindows 10の場合は,''Hyper-V''にマークをする。~
 +それ以後のWindows 10の場合は,''仮想マシンプラットフォーム''にマークする。~
 +これにより,Hyper-Vのコア機能であるHyper-Vアーキテクチャーとそれを利用したHyper-Vコンテナーを動作させるためのコンポーネントが使用できるようになる。~
 +''仮想マシンプラットフォーム''をマークした場合,バージョン更新したVMware Workstation PlayerやOracle VirtualBoxが動作する。~
 +また''Windowsサンドボックス''もこのコンポーネント機能を使用している。~
 +- OKを押す~
 +
 +のように,WSLと仮想マシンプラットフォームを利用する設定が必要。設定後,PCを再起動する。~
 +
 +また,BIOSまたはUEFIの設定で''仮想化機能が有効''にすることも必要。~
 +
 +** WSL1と同様にLnuxをMicrosoftストアからインストールする [#b9f39f1e]
 +WSL1と同様にしてLinuxをMicrosoftストアからインストールする。インストールしたLinuxは,この状態ではWSL1で動作する。~
 +いくつかのLinuxディストリビューションが選択できる。~
 +またコマンドプロンプトでも確認できる。~
 + > wsl --list --online
 + インストールできる有効なディストリビューションの一覧を次に示します。
 + 'wsl.exe --install <Distro>' を使用してインストールします。
 + 
 + NAME                            FRIENDLY NAME
 + Ubuntu                          Ubuntu
 + Ubuntu-18.04                    Ubuntu 18.04 LTS
 + Ubuntu-20.04                    Ubuntu 20.04 LTS
 + Ubuntu-22.04                    Ubuntu 22.04 LTS
 +  :
 +  :
 +
 +既にWSL1を使用してLinuxをインストールしている場合は,そのまま使用できるので新たにLinuxをインストールする必要はない。~
 +
 +インストールしたLinux(例:Ubuntu 18.04 LTS)もしくは現在使用中のLinuxを,WSL2用に変換する。~
 +
 +まず,Powershellかコマンドプロンプトを起動して,インストールしたLinuxを確認する。
 + PS C:\Users\yueno> wsl -l
 + Windows Subsystem for Linux ディストリビューション:
 + Ubuntu-18.04 (既定)
 +
 +以下のようにして,Powershellかコマンドプロンプトを使用して,WSL2用に変換する。
 + PS C:\Users\yueno> wsl --set-version Ubuntu-18.04 2
 +
 +変換されたか確認してみる。
 + PS C:\Users\yueno> wsl -l -v
 +   NAME            STATE          VERSION
 + * Ubuntu-18.04    Running        2
 +VERSIONが2になっていればWSL2用になっている。~
 +
 +* 他の仮想化環境との共存 [#xe0d22a8]
 +WSL2を利用できるようにすると(WSL2だけでなくWindows サンドボックス等でも),古いバージョンのVMware Workstation PlayerやOracle VirtualBoxなどの他のゲストOS型仮想化環境が動作しなくなってしまう。~
 +
 +この場合はWSL2の利用を諦めて,Hyper-V関連機能を削除する。~
 +または,VMware Workstation PlayerやOracle VirtualBoxなどのゲストOS型仮想化環境をバージョンアップして,Hyper-V環境と他の仮想化環境を共存できるようにする。~
 +- VMware Workstation Pro/Player~
 +Ver.15.5以降でWSL2と共存できる。(Windows 10 2004以降)~
 +- Oracle VirtualBox~
 +Ver.4.0以降でWSL2と共存できる。(Windows 10 1803以降)~
 +
 +** 他の仮想化環境をバージョンアップして共存 [#o072e090]
 +新しいバージョンのVMware Workstation PlayerやOracle VirtualBoxでは,Hyper-V関連機能と共存できるようになった。~
 +
 +しかしこの場合は,''コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化''で,以下の機能を有効にする。~
 +- ''仮想マシンプラットフォーム''にマークする。~
 +- ''Windows ハイパーバイザー プラットフォーム''にマークする。~
 +
 +** Hyper-V関連機能の削除 [#b4e51b5e]
 +''古いバージョンのVMware Workstation PlayerやOracle VirtualBoxを再度使用できるようにするためにWSL2の使用を諦める場合は,Hyper-V関連機能を削除する必要がある。''~
 +
 +Hyper-V関連機能を削除するには,''コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化''を開いて,
 +- Hyper-V~
 +- Windows Subsystem for Linux(WSL2)~
 +- Windows サンドボックス~
 +- Windows ハイパーバイザー プラットフォーム~
 +- 仮想マシンプラットフォーム
 +- インターネットインフォメーションサービスのホスト可能なWebコア~
 +
 +などのマークが入っているもののマークを外す。~
 +PCの再起動が必要。
 +
 +または,管理者権限でPowerShellを起動し,
 + > Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
 +を実行すること,Hyper-V関連サービスを全て削除できる。
 +
 +* WSL2の感想 [#i42cce34]
 +WSL2のメリットはWSL1で動作しなかったLinuxプログラムも動作するようになったところだと思う。~
 +
 +WSL1での良いところのいくつかは継承されていて,また改善されている点も多い。~
 +- 複数のPCで構成されていた環境を1台のPCで実現できる~
 +- Windowsマシンで不得意だった作業も,Linux環境が使えるので効率よく作業ができる。~
 +- WindowsのExplorerでファイルを操作できる。~
 +- 他の仮想マシンで動作させるよりも手軽に起動でき使用できる。~
 +- 多くのプログラムが動作するようになった。~
 +Microsoft製のWSL2専用Linux Kernelを使うことで多くのプログラムが動作する。~
 +GUIのアプリケーションやsystemdやnetworkなどもサポートされている。~
 +
 +問題点:
 +- ネットワークの動作。~
 +仮想環境で仮想ネットワークが動作しているので,ルーティングが必要となりWSL1のように手軽ではない。ホストOSのNICへのブリッジ接続は利用できない。~
 +また複数のOSをWSL2で動かした場合,すべて同じIP Addressを持ったネットワーク環境になってしまう。~
 +- USB機器の利用~
 +USB機器をPCに接続してWSL2で利用することが簡単ではない。~
 +限定的なWindowsハイパーバイザー(仮想化環境)を使っているので,ハードウェアの仮想化が十分ではないため。~
 +- WindowsファイルシステムへのアクセスはWSL1より遅い。~
 +WSL2はWindowsのファイルシステムとの接続にリモートファイルシステムを使っているようだ。~
 +このためLinuxとWindowsのファイル連携をする場合,アクセス速度が遅くなる。~
 +- PCのリソースを多く使う。~
 +Windowsハイパーバイザー(Hyper-V)を使用して動作させているので,特にMemoryリソースが多く必要になってしまい,WSL1と違い手軽に使うといったことができなくなった。~
 +
 +普段Linuxを利用する場合は,VMware Workstationを使った仮想マシン上のLinuxを利用している。~
 +また手軽にPosix環境を使いたい場合には,MSYS2/MinGW-w64をメインに使い,たまにWSL1を使うということで事足りている。~
 +
 +このような理由から,試した後はWSL2を使用していない。~
  

  • PC/Windows/Windows Subsystem for Linux/Windows10でWSL2を使ってみる のバックアップ差分(No. All)
    • 現: 2023-01-15 (日) 09:29:16 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 326, today: 1, yesterday: 0