-
内です。前回の記事ではwindows10の標準機能となったwindows subsystem for linux(WSL1)を有効化してkali linuxを動かすという手順をご紹介しました。
- wsl1で使えなかったnmapやtcpdumpが動くようになってる。
- wsl2にするとwsl1が使えなくなるわけではなく、上で動かすOSごとに選べる。例えばkali-linuxはwsl1で動かし、ubuntu-18.04はwsl2で動かすといったことができる。
- もともとwsl1で入れていたubuntuをwslコマンドでwsl2に変換するといったことができる。
- wsl1ではwindowsで実行されているため、linux側から見たipアドレスは、windows側のipアドレスと共有されていたが、
wsl2はvm上で動き、ネットワークコンポーネントも仮想化されているため、windowsホストと異なるIPアドレスが割り当てられる。 - これまではwindows10でhyper-vを有効化するにはwindows10 ProやEnterpriseでなければ不可能だったが、
Homeでもこのwsl2用のhyper-vベースの仮想化技術が利用できるようになった。そのかわりに、Hyper-vが使用されている場合、
VMWareやVirtualBox6以前のバージョンが実行できない。 - 仮想化になったため、起動が遅くなっただろうと推測しがちだが、むしろ早くなっている。
- Hyper-Vのテクノロジーを使用しているため、Hyper-Vの要件である、64bit版であること、BIOSレベルでの仮想化テクノロジーサポート等々をクリアしていることが必要。
- 「Windows 10 Insider Preview ビルド」をインストールすること。
-
-
- [設定]
- [更新とセキュリティ]
- [Windows Insider Program]
-
- wsl2にするとwsl1で使えなかったコマンドやプログラムがいろいろ使えるようになるよ。
- でも現時点ではWindows 10 Insider Preview ビルドでのみの提供だからwindowsが不安定になるよ。
- だからバックアップとってね。
- wsl1と2同居ができて使い分けて便利だね。
- 2023年ギークフィードが評価されて表彰されたことの振り返りとアピール - 2023-12-24
- Linuxコンソールで、本番、ステージング、テスト環境を混同しないための4つの工夫 - 2023-09-13
- Amazon Linux 2023を触ってみて質問がありそうなことをまとめてみました。 - 2023-03-22
- AmazonLinux3じゃなくってAmazon Linux 2022 (AL2022) だってさ。 - 2022-01-31
- 【祝:月間PV6万越え】2021年のギークブログ大賞を発表します。 - 2022-01-10
今回は6月12日にリリースされた「Windows 10 Insider Preview ビルド」で使用できるWSL2を有効化してubuntuを使用したいと思います。
目次
WSL2を入れる理由
WSL1上で動かなかったソフトが動く!
WSL1は全てのLinux上のソフトウェアを動かせるようになるわけではないということは、前回記事でも触れていますが、仕組み的にLinuxカーネルが動いているわけではなく、カーネルへのファンクションコールをlxcore.sysとlxss.sysいうカーネルドライバーがWindowsカーネルへのファンクションコールに変換して動いており、これらカーネルドライバーのシステムコールの実装が不完全なことが、動かないソフトウェアがあることにも起因してます。
その点、WSL2ではHyper-V上でLinuxカーネルが動くので、大抵のプログラムが動くようになります。
WSL2その他特徴
※2019年9月16日時点のもの
wsl2インストールの前提条件
導入手順
まずはシステムバックアップを
2019年9月現時点ではWSL2は「Windows 10 Insider Preview ビルド」でのみ提供されています。
そもそも「Windows 10 Insider Preview ビルド」は、将来安定板としてリリースされる予定の現在開発中の機能をいち早く入手する仕組みなので、安定性が失われるというトレードオフが生じます。
実際私もPreviewビルドをインストールしてwsl2を使ってから、これまでは起きなかった不具合でwindows自体が自動再起動するということを何度も経験しております。
なので、まずは何はともあれシステムのバックアップをとっておきましょう。
Windows10 Insider Previewビルドをインストール
の順に選択し、[開始する]をクリックして最新のビルドにアクセスします。
指示に従いプレビューを受け取れるようにして、再起動を実施。
この手順はmicrosoft公式にのっているので、従ってサクッとPreviewビルドをインストールする。
ポイント:デフォルトでプレビュービルドを受け取る頻度が「ファストリング」となってますが、
これは、以降も新しい機能を1週間単位でインストールすることになり、その度にアップデートと再起動でパソコンが
使えなくなる時間が増えるので、スローリング(1ヶ月ごと)を選択するほうがお勧めです。
その後、Windows 10 ビルド18917以降になっていることをコマンドプロンプトを立ち上げて、以下コマンドで確認してください。
コマンドプロンプト:
1 2 3 |
C:\Users\uchi>ver Microsoft Windows [Version 10.0.18980.1] |
wsl2が動くようにwindowsの仮想化機能を有効化
powershellを管理者として実行。
そして以下、windowsの仮想化機能を有効化するコマンドを実行
1 |
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform |
実行後に有効化するためにコンピュータを再起動してください。
wsl1含めてwslを初めて有効化する場合は、
起動したpowershellで以下コマンドを入力します。
1 |
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux |
wsl2にubuntuのインストール
microsoft storeを起動して、ubuntuで検索してインストールを実行するだけです。
今回いれたのは、Ubuntu18.04 LTS版です。
コマンドプロンプト:
1 |
C:\Users\uchi>start ms-windows-store: |
インストールしたubuntuをwsl2に変換する。
インストールした状態だと、wslのubuntuバージョンは1になっているので、powershellを起動して、2に変換する。
wslのバージョン確認
powershell:
1 2 3 4 |
PS C:\Users\uchi> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Running 1 kali-linux Stopped 1 |
バージョン変換
powershell:
1 |
PS C:\Users\uchi> wsl --set-version Ubuntu-18.04 2 |
wslのバージョン再確認
powershell:
1 2 3 4 |
PS C:\Users\uchi> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Running 2 kali-linux Stopped 1 |
これでUbuntu-18.04をwsl2で動かしながらkali-linuxをwsl1で動かすということができました。
左側:wsl1上のkali linuxでtcpdumpを実行し、失敗している図
右側:wsl2上のubuntu-18.04でtcpdumpを実行し実行出来ている図
wsl2のlinux kernelは以下githubでソース公開されてます。
WSL2-Linux-Kernel