VMなしの仮想Linux: Windows 10でWSLを使用

1月 06, 2019 セキュリティとコンプライアンス, MOVEit

Microsoft と Linux が敵対関係にあるような時代がありました。対立相手を倒して、オペレーティングシステムの牙城を目指す争いを繰り広げていました。しかし、時代は変わりました。

覇権争いはまだ続いているのかもしれませんが、少なくともマイクロソフト側からは、オリーブの枝(和平の象徴としての)が Linux コミュニティに差し向けられました。Satya Nadella 氏が Microsoft のCEOに就任して以来、Microsoft は Linux をエコシステムに取り入れるようになり、敵対より共生の道を選んだように見受けられます。PowerShell は現在クロスプラットフォームであり、Linux 上でも動作します。OpenSSH は Windows 上で動作し、Linux VM は Azure 上で動作します。Windows Subsystem for Linux (WSL) を使えば、Windows 10に、ネイティブに(VMを使用せずに)Linuxディストリビューションのディレクトリをインストールすることもできます。

仮想マシンを使わない理由

WSLのことを耳にしたとき、まず頭に浮かんだ疑問がありました。それは、「今まで慣れ親しんできたように仮想マシンを使えばいいのに、そうしないのはなぜか?」という疑問でした。仮想マシンを使うという選択肢はもちろんあります。違いは、WSLを使うとリソースの点で仮想マシンのようなオーバーヘッドがないという点です。また、Bashプロンプトから Windows ホストと対話したり、PowerShell から Linux コマンドを実行したりすることもできます。

たとえば、PowerShell から、実行可能ファイル wsl.exe を使用して、Windows ディレクトリで ls –la を実行できます。

下は、Linux WSLインスタンスのBashシェルから同じコマンドを実行しています。WindowsファイルシステムがLinuxディストリビューションの /mnt/c にマウントされていることに留意してください。

Windows 10 へのWSLのインストール

Windows 10 マシンに Ubuntu をインストールするには、Microsoft のドキュメントを参考にして、Windows 10コンピュータにLinuxディストリビューション(Ubuntu)を、PowerShellからインストールします。まず、WSL機能を有効にして、リブートします。

PS C:\Windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Windows 10 に Ubuntu をインストール

次に、Invoke-WebRequest コマンドレットを使って Ubuntu ディストリビューションをダウンロードします。

PS C:\Windows\system32> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile ~/Ubuntu.zip –UseBasicParsing

それから、ディストリビューションを解凍し、ディレクトリを変更して、ディストリビューションの .exeを起動します。

PS C:\Windows\system32> Expand-Archive ~/Ubuntu.zip ~/Ubuntu

PS C:\Windows\system32> cd C:\Users\vagrant\Ubuntu\

PS C:\Users\vagrant\Ubuntu> .\ubuntu.exe

最後のステップとして、ディストリビューションにローカルのユーザー名とパスワードを設定します。

Installation successful!

Please create a default UNIX user account. The username does not need to match your Windows username.

For more information, visit: https://aka.ms/wslusers

Enter new UNIX username: dan

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Default UNIX user set to: dan

To run a command as administrator (user "root"), use "sudo ".

See "man sudo_root" for details.

これで Windows 10 コンピュータ上に、Linux の Bash プロンプトが表示されます。

dan@vagrant-10:~$

Dan Franciscus

Dan Franciscus is a systems engineer and VMware Certified Professional (VCP) specializing in VMware, PowerShell, and other Microsoft-based technologies. You can reach Dan at his blog (http://www.winsysblog.com/) or Twitter at @dan_franciscus.

Read next MOVEit 2018 の REST API で PowerShell を使う