wsl2をインストールしてwindows上でlinuxを使いこなそう

    内です。前回の記事ではwindows10の標準機能となったwindows subsystem for linux(WSL1)を有効化してkali linuxを動かすという手順をご紹介しました。
    今回は6月12日にリリースされた「Windows 10 Insider Preview ビルド」で使用できるWSL2を有効化してubuntuを使用したいと思います。

    手順はいつも通り、わかりやすさよりも意識の高さを重視し、なるべくGUIを使用しない方法で導入していきます。

    WSL2を入れる理由

    WSL1上で動かなかったソフトが動く!

     

    WSL1は全てのLinux上のソフトウェアを動かせるようになるわけではないということは、前回記事でも触れていますが、仕組み的にLinuxカーネルが動いているわけではなく、カーネルへのファンクションコールをlxcore.sysとlxss.sysいうカーネルドライバーがWindowsカーネルへのファンクションコールに変換して動いており、これらカーネルドライバーのシステムコールの実装が不完全なことが、動かないソフトウェアがあることにも起因してます。
    その点、WSL2ではHyper-V上でLinuxカーネルが動くので、大抵のプログラムが動くようになります。

    WSL2その他特徴

    • 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以前のバージョンが実行できない。
    • 仮想化になったため、起動が遅くなっただろうと推測しがちだが、むしろ早くなっている。

    ※2019年9月16日時点のもの

     

    wsl2インストールの前提条件

    • Hyper-Vのテクノロジーを使用しているため、Hyper-Vの要件である、64bit版であること、BIOSレベルでの仮想化テクノロジーサポート等々をクリアしていることが必要。
    • 「Windows 10 Insider Preview ビルド」をインストールすること。

     

    導入手順

    まずはシステムバックアップを

    2019年9月現時点ではWSL2は「Windows 10 Insider Preview ビルド」でのみ提供されています。

    そもそも「Windows 10 Insider Preview ビルド」は、将来安定板としてリリースされる予定の現在開発中の機能をいち早く入手する仕組みなので、安定性が失われるというトレードオフが生じます。
    実際私もPreviewビルドをインストールしてwsl2を使ってから、これまでは起きなかった不具合でwindows自体が自動再起動するということを何度も経験しております。

    なので、まずは何はともあれシステムのバックアップをとっておきましょう。

     

    Windows10 Insider Previewビルドをインストール

        1. [設定]
        2. [更新とセキュリティ]
        3. [Windows Insider Program]

    の順に選択し、[開始する]をクリックして最新のビルドにアクセスします。
    指示に従いプレビューを受け取れるようにして、再起動を実施。

     

    この手順はmicrosoft公式にのっているので、従ってサクッとPreviewビルドをインストールする。

     

    ポイント:デフォルトでプレビュービルドを受け取る頻度が「ファストリング」となってますが、
    これは、以降も新しい機能を1週間単位でインストールすることになり、その度にアップデートと再起動でパソコンが
    使えなくなる時間が増えるので、スローリング(1ヶ月ごと)を選択するほうがお勧めです。

     

    その後、Windows 10 ビルド18917以降になっていることをコマンドプロンプトを立ち上げて、以下コマンドで確認してください。

    コマンドプロンプト:

     

    wsl2が動くようにwindowsの仮想化機能を有効化

    powershellを管理者として実行。

    そして以下、windowsの仮想化機能を有効化するコマンドを実行

     

    実行後に有効化するためにコンピュータを再起動してください。

    wsl1含めてwslを初めて有効化する場合は、
    起動したpowershellで以下コマンドを入力します。

     

    wsl2にubuntuのインストール

    microsoft storeを起動して、ubuntuで検索してインストールを実行するだけです。
    今回いれたのは、Ubuntu18.04 LTS版です。
    コマンドプロンプト:

     

    インストールしたubuntuをwsl2に変換する。
    インストールした状態だと、wslのubuntuバージョンは1になっているので、powershellを起動して、2に変換する。

     

    wslのバージョン確認
    powershell:

     

    バージョン変換
    powershell:

     

    wslのバージョン再確認
    powershell:

    これでUbuntu-18.04をwsl2で動かしながらkali-linuxをwsl1で動かすということができました。

    左側:wsl1上のkali linuxでtcpdumpを実行し、失敗している図
    右側:wsl2上のubuntu-18.04でtcpdumpを実行し実行出来ている図

     

    wsl2のlinux kernelは以下githubでソース公開されてます。
    WSL2-Linux-Kernel

     

    wsl2をWindowsにインストールする手順まとめ

    • wsl2にするとwsl1で使えなかったコマンドやプログラムがいろいろ使えるようになるよ。
    • でも現時点ではWindows 10 Insider Preview ビルドでのみの提供だからwindowsが不安定になるよ。
    • だからバックアップとってね。
    • wsl1と2同居ができて使い分けて便利だね。

    あわせて読みたい

    この記事が気に入ったら
    いいね ! しよう

    Twitter で
    The following two tabs change content below.
    内信史
    内信史
    代表取締役
    意識高い系IT企業経営者、エンジニア、コンサルタントだがMacは使いこなせない。 ギークフィードファウンダー、代表取締役、中小企業診断士、 オープンソースコンサルタント、コンタクトセンターシステムコンサルタント、データサイエンティスト エンジニアとして今でもよく触るものはElasitcSearch/Amazon OpenSearch、AWS、Linux、c++ 中小企業診断士としては、会社地元台東区の中小企業向けにホームページやSNSを利用したマーケティングプロモーション支援を実施。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ