このページの本文へ

Windows Info 第81回

Creators Updateで改良されるWindows Subsystem for Linux

2017年01月15日 10時00分更新

文● 塩田紳二 編集● ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows 10の次期アップデートでは
導入されるUbuntuのバージョンも上がる

 現在Windows Insider Programで配布されているPreview版では、Windows Subsystem for Linux(Bash on Windowsとも、以下WSLと略す)が改良される。

 大きな変更の1つは、導入されるUbuntu Linuxのバージョンが上がることだ。もう1つは、WSLとWindows環境の統合化のひとつとして、WSL側からWindows側のアプリケーション(EXEファイル)を起動可能になる。

 RS1(Windows Ver.1607)では、WSLとWindowsは、同じマシン内で動作し、ウィンドウの1つでWSLが動作しているが、両者はほとんど独立しており、WSL側からWindowsへのファイルのアクセスができるだけだ。

 しかしRS2では、WSLからWindowsのコマンドを起動できるようになる。このため、コマンドラインパラメーターを使い、Windows側のアプリケーションになにがしかの情報を渡すことも可能になる。起動は拡張子を含めてnotepad.exeのように指定する。

 なお、RS2プレビュー版では自動的にWindowsのパス設定がWSL側に取り込まれるようだ。ざっと試したところでは、WSLの/mnt/以下から見えるWindowsのファイルはbash上で指定できるものの、それ以外のWSLのパス(たとえば、ユーザーのホームディレクトリ)は、Windowsアプリからは見えないようだ(Build 15002)。指定すると、カレントディレクトリが変換できないので「C:\Windows\system32」を使うといったメッセージが表示される。

ホームディレクトリなどWindows側からアクセスできない場所のファイルを指定するとエラーメッセージが出る

 Windowsアプリケーションのオプションとしてファイルを指定する場合には、/mnt/cディレクトリなどの下にあるファイルを指定する必要がある。

Ubuntu 14.04から16.04へとが変わるが
必ずしもバージョンアップは必須ではない

 Windows Insider Programでは、現在RS2(Red Stone 2、Creators Update)と呼ばれる次期アップデートのInsider Preview版が配布されているが、WSL関係では前述のようにUbuntuのバージョンが変更になる。ただし、すでにRS1(Windows 10 Ver.1607、Anniversary Update)でWSLをインストールしていた場合、Ubuntu 14.04がインストールされているが、その場合には、ユーザーがアップグレードしない限りは14.04のままになる。

 ここで簡単にUbuntuのリリースについて解説しておく。UbuntuではLTS(Long Term Support)と呼ばれる長期間サポートされるリリースがある。LTSは2年間隔で更新され、サポート期間はリリースから5年。つまり、リリースから5年間は固定した環境として利用できる(もちろん個々のアプリは更新される)。

 なお、Ubuntuのリリースは、毎年4月と10月に定期的に出され、リリース日を元にリリースを区別するバージョン番号を表記する。14.04とは「2014年4月」のリリースという意味。LTSとLTSの間には通常版と呼ばれるリリースが半年間隔で行われる。14.04のあと、14.10(2014年10月)、15.04、15.10があり、次のLTSが16.04である。半年に一回出る各バージョンには、コードネームが付き、14.04は「Trusty Tahr」(信頼できるヒマラヤタール)、16.04は「Xenial Xerus」(友好的なアラゲジリス)という名前になっている。

 さて、Ubuntuのリリースバージョンの確認だが、WSL内で、/etc/lsb-releaseファイルを見ることで確認できる。

WSLにインストールされているUbuntuのバージョンを確認するには/etc/lsb-releaseファイルを見ればよい

 まず、現在RS1でWSLを使っている場合、RS2のInsider Previewをインストールしても、Ubuntuは14.04のままになる。また、RS2 Insider Previewで初めてWSLを有効にすれば、Ubuntuは16.04がインストールされる。後者の場合、選択の余地がないため、そのまま16.04を使うことになる。

 問題は前者の場合に、16.04にアップグレードするべきか、またアップグレードはどうやって行なうのかである。まず、Ubuntuのアップグレードだが、14.04のサポートは2019年まであるので、必ずしもアップグレードしなくともよい。

 リリースの違いにより、標準的にインストールされる言語システムのバージョンが違い、コンパイルなどが必要になるソフトウェアの場合、14.04の対応にとどまっているものもあり、新しいリリースが出たからといって絶対にアップグレードしなければならないというものでもないからだ。もちろん、新しいほうがいいというのであれば、アップグレードしてもかまわない。また、ちょっと使うだけというのであれば、どちらのリリースでもさほど違いはないと思われる。

 少なくともRS2からは、WSLの標準のインストールは16.04に切り替わると思われるので、評価やちょっと触っただけという状態で、14.04にとどまる理由がないのであれば、16.04にアップグレードしておいたほうがいいかもしれない。

 判断ポイントとしては、アップグレードの手間だろう。具体的なアップグレード方法としては大きく2つある。1つは、Ubuntuの機能を使って動作している14.04の環境を引き継いだままアップグレードする方法がある。もう1つは、WSLのlxrunコマンドで、アンインストール、再インストールする方法がある。前者は、環境を維持したまま行なうため、作業時間も長くなる。後者は、ユーザーフォルダなどを残すことはできるが、基本的に新規インストールとほぼ同じで、初期状態のUbuntu 16.04に切り替わる。

 選択の条件は、すでにさまざまなソフトウェアをインストールしていて設定を再現するのが大変かどうかだ。つまり、ほとんどシステムを書き換えていないというのであれば、クリーンな16.04ができるLXRUNコマンドを使う方法がお勧めである。

 もちろんこの状態でも、Ubuntuのリリースアップグレード機能を使って、環境を引き継いでアップグレードができるが、途中に判断を要求される場面もあり、時間もかかる。ちょっと使っただけというのであれば、わざわわざ手間を掛けてアップグレードするほどでもないということだ。また、リリースアップグレードは、Ubuntuの機能で、いつでも好きなときに実行できる。

 このあたりをまとめると、すでにRS1でWSLを使い始めた場合、インサイダープレビューを入れた場合、以下の2つからの選択になると思われる。

●RS1でちょっとさわっただけ。あまり使ってない
 →LXRUNで再インストールして16.04へ

●RS1でかなり環境を触り、比較的使っている
 →Ubuntuは当面14.04のままにしておく。必要になったらアップグレード

 具体的に方法をアップグレード方法を解説する。まずは、lxrunを使う方法だが、以下のコマンドを実行する。「/full」オプションをつけていないので、/home以下のユーザーディレクトリは残ったままになる。なお、最初のコマンドの「/y」は、すべての確認項目に対して「y」と答えるためのオプション指定だ。

もっとも簡単なアップグレード方法としてはWindows側のlxrunコマンドを使い、再インストールを行なう方法がある

lxrun /uninstall /y
lxrun /install

 次に14.04の環境を引き継いでのアップグレードだが、bashを起動し、以下のUbuntuコマンドを実行する。

sudo do-release-upgrade

 これは、Ubuntuのコマンドで、「--help」オプションや「man」で引数などを調べることが可能だが、基本的には引数なしで起動する。途中、いくつか質問が出るが、画面が崩れて見えなくなる場合、コンソールウィンドウの幅を変えてみると多少わかりやすくなることもある。

リポジトリのチェックが終わるとアップグレードするかどうかの最終確認がある。ここはyを入力する

サービスの再起動(WSLのみWindowsは再起動しない)前に確認がある。ここはどちらを選んでもよい

変更を加えたファイルなどを置き換える場合に確認がある。デフォルト値でもかまわないし、必要に応じてファイルを置き換えてもかまわない。ここは自分で変更した部分なので適切に判断する

一部の設定ファイルの確認は、キャラクタ表示のユーザーインターフェースで表示される。カーソルキーで選択肢を選びエンターキーで実行する

最後に不要なパッケージの削除を行なうかどうかを選ぶ。わからなければNとして残しておく

最後に確認が入る。これはWSL内のUbuntuを再起動するかどうかの確認でWindowsは再起動しない

 動作しなくなると業務上などで問題があるデリケートなソフトウェアを入れているような場合には、注意する必要があるが、そうでない場合、デフォルト値の選択のままで問題ない。実際にやってみるとわかるが、リリースのアップグレードには結構時間がかかる。もちろん環境設定して、いろいろとシステムを触ってしまったあとならば、こちらの方法を使うしかないが、前述したように現在のところRS2にしても、16.04が必須というわけではないようなので、14.04を使い続けるという選択も可能だ。

 さて次回は、RS2のプレビュー版で実装されたWindowsバイナリの実行方法について解説する。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン