kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

Build 17110のWSLに関する変更点

2018年2月28日にリリースされた「Build 17110」の「WSL」に関する変更の紹介です。


WSLとは

「WSL」は、「Windows」上でLinuxバイナリーを動作させるための仕組みです。
「Windows」上で「Ubuntu」や「openSUSE」などLinux環境を構築し、「Windows」からLinuxの実行ファイルを利用することができます。

「WSL」及びLinuxディストリビューションのインストール方法は、以下を参照してください。


リリースノート

変更点の詳細は、リリースノートを参照してください。


今回コンソールに関する変更点はありません。

WSLの機能の改善や変更

「WSL」に関する機能の改善や変更です。

1.Windowsから/initを終了可能に

「Windows」から「/init」を終了できるようになりました。
これにより改善する問題は、以下を参照してください。


2.ファイル名の大文字・小文字の区別

「DrvFS」ボリュームがディレクトリーごとに、ファイル名の大文字・小文字を区別するようになりました。


この機能自体は「Build 17093」で実装された機能です。
今までデフォルトのマウントプションに「case=force」が指定されていましたが、「Build 17110」以降は「case=dir」が指定されます。

case=forceが使用不可に

「Build 17110」では、デフォルトで「case=force」が使用できなくなりました。
以前の動作である「case=force」を使用するには、レジストリーの設定を変更する必要があります。
以下のコマンドを実行すれば、「case=force」を使用できるようになります。

reg add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1

WSLの不具合修正

「WSL」に関する不具合の修正です。

1.unameから返される文字列がNULL終端文字列に

「uname」システムコールから返される文字列が、NULL終端文字列になりました。

ディレクトリーに大文字・小文字の区別のフラグを設定するには

上記で紹介したように「DrvFS」ボリュームでは、ディレクトリーごとにファイル名の大文字・小文字を区別するフラグを指定できるようになりました。

このフラグが指定されたディレクトリー内に対するすべての操作は、大文字・小文字の区別が行われるようになります。
逆にフラグが指定されていないディレクトリー内に対するすべての操作は、大文字・小文字の区別が行われません。 

このフラグは、「WSL(Linux)」からディレクトリーを作成した時に自動的に設定されますが、この機能が導入される前のビルドでディレクトリーを作成した場合は、このフラグが設定されません。

大文字・小文字のフラグを制御するには

後から特定のディレクトリーに対し、大文字・小文字のフラグを変更することができます。
大文字・小文字のフラグ制御するには、「fsutil.exe」を使用します。

使用法 : fsutil file setCaseSensitiveInfo <ディレクトリ名> [フラグ]
フラグ : enable   - <ディレクトリ名> の大文字と小文字を区別する属性を有効にする (既定値)
      : disable  - <ディレクトリ名> の大文字と小文字を区別する属性を無効にす る
   例 : fsutil file setCaseSensitiveInfo C:\TempFolder enable
        fsutil file setCaseSensitiveInfo C:\TempFolder disable

注意事項

既存ディレクトリーのフラグの設定を切り替える前に、「WSL(Linux)」がそのディレクトリーを参照していないことを確認してください。
カレントディレクトリーになっていたり、そのディレクトリー内の(サブディレクトリー含む)ファイルを開いていないか確認しましょう。
さもないと予期しない結果になります。

フラグの設定例

「Case」ディレクトリーに大文字・小文字のフラグを設定する例です。

fsutil.exe file setCaseSensitiveInfo .\Case


以下のように、大文字・小文字を区別するようになります。


フラグの解除例

「Case」ディレクトリーの大文字・小文字のフラグを解除する例です。

fsutil.exe file setCaseSensitiveInfo .\Case disable


以下のように、大文字・小文字を区別しないようになります。


大文字・小文字のフラグの設定状況を確認するには

大文字・小文字のフラグの設定状況を確認するには、同様に「fsutil.exe」を使用します。

使用法 : fsutil file queryCaseSensitiveInfo <ディレクトリ名>
   例 : fsutil file queryCaseSensitiveInfo C:\TempFolder


関連コンテンツ
同一カテゴリーの記事
コメント
オプション