Windows で Linux を使う便利な方法

記事
IT・テクノロジー

Windows で Linux を使う便利な方法

ソフトウエアの開発をやっていると、Windows より Linux や Mac の方が、UNIX 系のシェル(ターミナル/コマンドプロンプト)を利用できるので便利な場合がたくさんあります。

この記事は、最近別件で、Windows 上で Linux のシエル(ターミナル)を使う必要があって調べていて気づいた Windows の機能についてお伝えします。

仮想マシーンを使えば可能

最近は、仮想化技術で仮想マシーン(Virtual Machine)を動かすと別の OS を動かすことが可能です。昨年末に、Apple が M1 チップを搭載した Mac を発売したのを機に開発用の PC も Mac に移行しました。その関係で従来使用していた古い Windows の PC を開発のサブ機として Linux に入れ替えて使っています。 デスクトップの PC は、メモリ容量も大きいので VMWare などの仮想マシーンを動かしても通常の使用では余り問題にならない場合が殆どです。一方で、ラップトップの PC はメモリ容量は8 GB のみで、普通に使用する場合には殆ど問題になりませんが、仮想マシーンにメモリを割り当てると動作が極端に遅くなる場合が多く余り現実的ではありません。

従って、Windows 上で Linux のシェル(ターミナル/コマンドプロンプト)を使いたい場合には、VMWare のような仮想マシーンを使えば可能ですが、余り実用的ではありませんでした。

Windows に仮想マシーンを動かす機能があった!

今回、調べていてわかったことは、Windows で Linux を動かす仕組みがサポートされていたことです。実は、この機能は昨年 5 月の Windows の更新から使えるようになっていました。この機能を使うと、Windows 上の仮想マシーンで Linux を動かすことができることがわかりました。

その方法も意外に面倒ではありませんのでここで紹介することにしました。

まずは機能を有効に!
この機能を利用するには、Windows10 上でこの拡張機能を有効にする必要があります。設定画面からもできますが、手軽なのは Windows PowerShell から有効にする方法です。

> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -norestart
> dism.exe /online /enable-feature /featurename:Microsoft-Windows0Subsystem-Linux /all

を実行します。これでこの拡張機能(Windows 上の仮想マシーン)を使うことが可能になります。

Linux のインストール

次に Linux をインストールします。Linux は Microsoft ストアから入手します。 Microsoft ストアで「Linux」を検索するとメジャーな Linux が出てきます。Ubuntu や SuSE など選択ができます。ここでは、先日から古い PC に入れたりして利用している「Ubuntu 20.04LTS」を入れてみました。

選択をしたらあとはインストールのボタンをクリックするだけです。

インストールが終わると、Linux のユーザー名(ログイン名)とパスワードを聞かれるので入力すると利用できるようになります。ユーザー名とパスワードは何でも構いません。Windows のユーザー名やパスワードとは無関係です。

このシェル(ターミナル/コマンドライン)から通常のコマンドラインベースの機能は殆ど利用できます。node.js や Git などをインストールして利用できますし、Windows のフォルダは、「/mnt/c」にマウントされているので、このパス(path)を指定すれば Windows のフォルダにもアクセス可能です。

機能の制限があります!

この方法でインストールすると、コマンドラインベースの機能は利用できますが、ウインドウベース(GUI)のアプリは利用できません。

ウインドウベース(GUI)ベースのアプリを利用するには、別のパッケージを入れると動かすことが可能になります。

最新版の Windows(2020 年にリリースされた物)は、新しい WSL(Windows Subsystem for Linux)をサポートしています。(WSL2) しかし、機能を有効にしないと利用できません。ウインドウベースのアプリを利用するにはまずはこの機能を有効にします。 まずは、Linux のカーネルアップデートパッケージをダウンロードします。ダウンロードはこちらのリンクからできます。

ダウンロードが終了したら、まずこのパッケージをインストールします。

> wsl --set-version Ubuntu-20.04 2
> wsl --set-default-version 2
次に、X-Server のオープンソースのパッケージをインストールします。 この記事ではこちらのパッケージを利用しています。(VcXsrv Windows X Server)

このパッケージをダウンロードしてインストールします。インストールの際の設定は

最初の画面 - Multiple Windows
二番目の画面 - Start no client
三番目の画面 - Disable access control を有効に!
後は、設定を行います。Ubuntu のターミナルで以下のコマンドを実行します。

export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"

以上で設定は終了です。これで、ウインドウベースの Linux アプリも利用できます。

まとめ
Windows で Linux を利用したい場合、VMWare などの VM をインストールして、フルバージョンの Linux の配布パッケージを利用するのは一つの方法です。しかし、少し古いラップトップなどの場合、メモリの増設が困難で仮想マシーンを利用するには、容量が不足しているようなケースでは、Windows が最近サポートした拡張機能を使えば Linux を利用することが可能になります。

多くの開発関連のパッケージやツールは Linux で開発されるケースも多く、使い勝手も Linux の方が多い場合があります。商用パッケージの都合でメインで利用するのが Windows という場合でもこの機能を使えば比較的快適に Linux の環境を作ってより便利な開発環境にすることができます。

設定も、手順通りにやればそれほど難しくはないので、インストールして置くと便利です。特に Windows の場合標準で SSH のターミナルなどはサポートしていないので、別途アプリを入れる必要がありますが、この方法ならば、Linux のターミナルを利用できるので便利です。

私も最近まで知らなかった機能ですが使ってみると便利です!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す