WSL : Windows で Ubuntu環境 を実行する

Windows Subsystem for Linux

Windows Subsystem for Linux

Windows Subsystem for Linux

2018年3月、Windows Subsystem for Linux (WSL)の仕組みによりWindows10で動作するUbuntu環境をインストールしました。「Bash on Ubuntu on Windows」は、Windows10でbashが動作するもので私はベータ版のときから使用していました。
最近では、「Bash on Ubuntu on Windows」と呼ばずに「Windows Subsystem for Linux」と呼ぶらしいです。

Bash on Ubuntu on Windowsとは

Bash on Ubuntu on Windows をバージョンアップ(Ubuntu 16.04.2 LTS)

 

  • 2016年08月 : Ubuntu 14.04.5 LTS リリース (By Windows 10 Anniversary Update)
  • 2017年04月 : Ubuntu 16.04.2 LTS リリース (By Windows 10 Creators Update)
  • 2017年10月 : Ubuntu 16.04.3 LTS リリース (By Windows 10 Fall Creators Update)

 

2017年10月のWindows10メジャーバージョンアップにより、UbuntuなどのLinuxを正式版としてリリースしてMicrosoft Storeから入手することができます。

2018年3月現在、以下のLinuxディストリビューションをインストールしてLinuxを実行することができます。

  • Ubuntu
  • OpenSUSE Leap 42
  • SUSE Linux Enterprise Server 12
  • Debian GNU/Linux
Windows で Linux を実行

Windows で Linux を実行

 

インストール方法

WindowsでLinuxをインストールするには、ふたつの手順で行います。

  1. 手順-1 WSLの有効化
  2. 手順-2 Linuxのインストール

手順-1 WSLの有効化

GUI操作 または PowerShellコマンド実行で、Windows Subsystem for Linux (WSL)を有効にすることができます。


【GUI操作でWSLを有効化】

Windowsの設定画面を開きます。

WSL有効化手順1

WSL有効化手順1

「アプリ」をクリックします。

WSL有効化手順2

WSL有効化手順2

「アプリと機能」の右側の関連設定の「プログラムと機能」をクリックします。

WSL有効化手順3

WSL有効化手順3

「プログラムと機能」の左側の「Windowsの機能の有効化または無効化」をクリックします。

WSL有効化手順4

WSL有効化手順4

「Windowsの機能の有効化または無効化」で「Windows Subsystem for Linux」のチェックボックスをONにして有効化します。

WSL有効化手順5

WSL有効化手順5

PC再起動のメッセージが表示されるので、「今すぐ再起動」で再起動します。

以上の操作により、Windows Subsystem for Linux (WSL)が有効になります。


【PowerShellコマンド実行でWSLを有効化】

PowerShellを管理者モードで起動して、下記コマンドを実行します。

Enable-WindowsOptionalFeature  -Online  -FeatureName  Microsoft-Windows-Subsystem-Linux
WSL有効化する PowerShellコマンド

WSL有効化する PowerShellコマンド

PC再起動のメッセージが表示されるので、再起動します。

手順-2 Linuxのインストール

Microsoft StoreからLinuxディストリビューションをダウンロードします。

Microsoft Store

Microsoft Store

Microsoft Storeのアイコンをクリックします。

検索窓に「Ubuntu」と入力して検索します。

Ubuntu ダウンロード1

Ubuntu ダウンロード1

[入手]をクリックします。

Ubuntu ダウンロード2

Ubuntu ダウンロード2

ダウンロードを開始します。

Ubuntu ダウンロード3

Ubuntu ダウンロード3

ダウンロードが完了したら、[起動]をクリックします。

Ubuntu インストール1

Ubuntu インストール1

Ubuntuが起動し、インストールを開始します。

Ubuntu インストール2

Ubuntu インストール2

ユーザー名を入力します。私は、ユーザー名 pi を登録しました。

Ubuntu インストール3

Ubuntu インストール3

パスワードを設定します。

Ubuntu インストール4

Ubuntu インストール4

Ubuntuのインストールが完了しました。

最新版にアップデート

Ubuntuを起動してバージョンを確認します。

$ uname -a
Linux RZ82 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

バージョンは、Ubuntu 16.04.3 LTS でした。最新版に更新します。

最初にパッケージ情報データベースのローカルキャッシュを最新状態に更新します。

sudo apt update

 

インストールしているパッケージを最新版に更新します。

sudo apt upgrade

再度バージョンを確認します。

$ uname -a
Linux RZ82 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial

バージョンは、Ubuntu 16.04.4 LTS になりました。

インストール先は?

Windows Subsystem for Linux (Ubuntu)は、どのディレクトリーにインストールされたでしょうか?

調べてみると、「C:\Users\pi\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs」にルートファイルシステムがあります。

WSL Ubuntu ルートファイルシステム

WSL Ubuntu ルートファイルシステム

Windows側からUbuntu環境のファイルへの(追加/変更/削除)アクセスは禁止しています。もし、ファイルに書き込みした場合は、ファイルシステムが壊れてしまいますので注意が必要です。

逆に、Ubuntu側からWindows環境のファイルへのアクセスは、Windowsファイルシステムを「/mnt/ドライブ名/」にマウントしていますので /mnt/c/ などでアクセス可能です。

UbuntuとWindowsの共有ディレクトリー

Ubuntuで作業しているディレクトリーの内容をWindowsから参照・変更したいことがあります。Windows側からUbuntu環境のファイルへの(追加/変更/削除)アクセスは禁止されています。そこで、作業ディレクトリーをWindows側にしたいと思います。

c:\Users\pi\MyHome をWindowsとUbuntuから共通でアクセスするディレクトリーにします。

$ pwd
/home/pi

$ cd /mnt/c/Users/pi

$ sudo mkdir MyHome
$ cd MyHome/

MyHome ディレクトリーを作成しました。

.bashrc の最後に、カレントディレクトリーを MyHome にするコマンドを入れます。

$ cd
$ vi .bashrc

    cd /mnt/c/Users/pi/MyHome  を最後に追加

次回ログインで /mnt/c/Users/pi/MyHome がカレントディレクトリーになります。

 

gccを使ってみる

gccを使用できるように開発ツールをインストールします。

sudo apt install build-essential

 

C言語で簡単なテストプログラムを書いて、ビルド&実行しました。

#include <stdio.h>

main()
{
    printf("Hellow \n");
}

 

プログラムをビルドします。

$ gcc hellow.c -o hellow

 

実行します。

$ ./hellow
Hellow

最後に

2016年にWindowsでBashが動作する「Bash on Ubuntu on Windows」のベータ版がリリースされてから、動向に注目していました。

2017年10月のWindows Updateで、Windows Subsystem for Linux (WSL)が正式リリースとなりました。そして、Microsoft StoreからUbuntuなどの Linuxディストリビューションがダウンロードできるようになりました。

WindowsでLinuxが動作するという便利な時代となりました。WindowsとLinuxを連携した快適な環境を実現したいと考えています。