上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/Windows/Windows Subsystem for Linux/Windows10でWSL2を使ってみる
のソース
資料室
PC
/
Windows
/
Windows Subsystem for Linux
/
Windows10でWSL2を使ってみる
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/Windows/Windows Subsystem for Linux/Windows10でWSL2を使ってみる
へ行く。
* 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
Counter: 327, today: 2, yesterday: 1
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ