kledgeb UbuntuやLinuxの最新情報を紹介

WSL その159 - Build 17763(1809)のWSLに関する変更点・Windows 10 October 2018 Update向け

Build 17763のWSLに関する変更点

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


「Windows 10 Insider Preview」を利用していないユーザー向けです。
「Windows 10 October 2018 Update(1809)」のリリースに合わせた内容です。

WSLとは

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

Ubuntuのインストール方法

「WSL」及び「Ubuntu」のインストール方法は、以下を参照してください。

  • Ubuntu 16.04をインストールするには
  • Ubuntu 18.04をインストールするには  
  • Windows Server 2016にUbuntu 16.04をインストールするには

注意事項

「Microsoftストア」では3種類の「Ubuntu」を提供しています。
「Ubuntu」をインストールする前に以下に目を通し、どの「Ubuntu」をインストールするのかを決めてから、「Ubuntu」のインストールを行ってください。

  • Microsoftストアからインストール可能な3種類のUbuntu・Ubuntuのアップグレードについて

Ubuntu以外のLinuxディストリビューションのインストール方法

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

  • openSUSE Leap 42をインストールするには 
  • SUSE Linux Enterprise Server 12をインストールするには 
  • Kali Linuxをインストールするには 
  • Debian GNU/Linuxをインストールするには

リリースノート

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

  • Release Notes

WSLの機能の改善や変更

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

1.binfmtがシンボリックリンクを処理できるようになった

「WSL」の「binfmt」インタープリターがシンボリックリンクを扱えるように修正されました。
これにより改善する問題は、以下を参照してください。

  • Attempts to execute a symlink to Windows executable does nothing

2.スレッドグループリーダーの処理改良

スレッドグループリーダーのファイルディスクリプターのクリーンアップ処理が改良されました。

3.KeQueryInterruptTimePreciseの使用

「WSL」はオーバーフローを避けるため、「KeQueryPerformanceCounter」の代わりに「KeQueryInterruptTimePrecise」 を使用するように変更されました。
これにより改善する問題は、以下を参照してください。

  • ps aux - Ssps:display.c:66: please report this bug Segmentation fault (core dumped)

4.file-maxスタブファイルの追加

「/proc/sys/fs/file-max」スタブファイルが追加されました。
これにより改善する問題は、以下を参照してください。

  • /proc/sys/fs/file-max not present

5.IPv6に関する改善

IPv6のスコープ情報をより正確に返すようになりました。

6.PR_SET_PTRACERのサポート

「PR_SET_PTRACER」がサポートされました。
これにより改善する問題は、以下を参照してください。

  • prctl(PR_SET_PTRACER) not implemented

7.ゾンビプロセスのサポート改善

ゾンビプロセスのサポート改善されました。
これにより改善する問題は、以下を参照してください。

  • Reading child /proc/<pid>/stat after exec

8.相互運用を制御するオプションの追加

「Windows」と「Linux」の相互運用の機能を制御するオプションが「wsl.conf」に追加されました。

[interop]
enabled=false # enable launch of Windows binaries; default is true
appendWindowsPath=false # append Windows path to $PATH variable; default is true

これにより改善する問題は、以下を参照してください。

  • [Question] How to remove Windows pathes from WSL PATH?

wsl.conf

「wsl.conf」に関しては、以下を参照してください。

  • WSL起動時に各種設定を自動的に適用可能に

9.TIOCSTIオプションのサポート

「ioctl」で「TIOCSTI」オプションがサポートされました。
これにより改善する問題は、以下を参照してください。

  • ioctl(0,TIOCSTI,"...") fails w/ ENOTTY

10.VHDの相互運用性改善

マウントされたVHDボリュームの相互運用性が改善されました。
これにより改善する問題は、以下を参照してください。

  • wslpath -u doesn't work mounted VHDX drive or optical drive.
  • Virtual disk right click open bash shell do not change the correct dir 

11.ioctlのキーボードフラグのサポート改善

以下の「ioctl」のキーボードフラグがサポートされました。

  • KDGKBTYPE
  • KDGKBMODE
  • KDSKBMODE

12.Windows UIアプリの実行

バックグラウンドで起動した時でも、Windows UIアプリが実行されるように修正されました。

13.ユーザーを指定してコマンドを実行可能に

「wsl.exe」にユーザーを指定する「-u」「--user」オプションが追加されました。

C:\>wsl --help
使用法: wsl.exe [オプション] ...
オプション:
    -d, --distribution <ディストリビューション名>
        指定したディストリビューションを起動します。

    -e, --exec <コマンド ライン>
        指定した Linux コマンドを実行します。残りの引数は
        実行するコマンド ラインとして使用されます。

    -u, --user <ユーザー名>
        指定したユーザーとして実行します。


    --help
        この使用法の情報を表示します。

    --
        引数の解析を停止し、残りの引数を Linux プロセスに渡します。

これにより改善する問題は、以下を参照してください。

  • Launching ELF binary from Windows as root, rather than as unprivileged user

14.DrvFsのマウントオプション変更

以前紹介したように、大文字・小文字の区別を制御するマウントオプションのデフォルト値が変更されました。
本ビルド以降、「case=off」がデフォルトになります。
これにより改善する問題は、以下を参照してください。

  • cl.exe can't access file in mixed case sub-directory of parent created through wsl 
  • IIS reports “404 Not Found” error for files in directories created in WLS Bash
  • per directory case sensitivity breaks Windows builds 

15.実行中のディストリビューションを終了可能に

「wslconfig.exe」に実行中のディストリビューションを終了する新しい「/t」「/terminate」オプションが追加されました。

C:\>wslconfig /h
Linux 用 Windows サブシステムの管理操作を実行します

使用法:
    /l, /list [/all]
        登録されたディストリビューションを一覧表示します。
        /all - すべてのディストリビューションを一覧表示します (オプション)。
               現在インストールまたはアンインストール中のものも含まれます。

    /s, /setdefault <ディストリビューション名>
        ディストリビューションを既定として設定します。

    /t, /terminate <ディストリビューション名>
        ディストリビューションを終了します。


    /u, /unregister <ディストリビューション名>
        ディストリビューションの登録を解除します。

    /upgrade <ディストリビューション名>
        ディストリビューションを WslFs ファイル システム形式にアップグレードします。

16.大文字・小文字区別の拡張属性 

ディレクトリーごとの大文字・小文字区別のフラグが拡張属性として提供されるようになりました。

17.文字のアンエスケープ

私用領域にある文字の内、エスケープされた文字に対応した文字のみアンエスケープするようになりました。
これは「DrvFs」が対象です。

18.新規に作成されたリパースポイントの列挙

親ディレクトリー内等に新規に作成されたリパースポイントが確実に列挙されるようになりました。

19.DrvFS内でディレクトリーの作成処理がアトミック操作になった

「DrvFS」内で大文字・小文字の区別を行うディレクトリーを作成する時、その処理がアトミック操作で行われるようになりました。

20.エクスプローラーからWSLの起動が可能に

エクスプローラーのコンテキストメニューから「WSL」を起動できるようになりました。
エクスプローラーで「Shift」キーを押しながら右クリックすれば、「WSL」を起動するメニュー項目が表示されます。


「WSL」を起動し、選択されたフォルダーをカレントディレクトリ―にします。


これにより改善する問題は、以下を参照してください。

  • `Open on Bash` context menu item.
  • "Bash Here" Context Menu in Windows Explorer
  • Starting bash in folder issue 

相互運用時の使い勝手が大きく改善します。

21.mount propagationフラグのサポート

スレーブなど「mount propagation」フラグがサポートされました。

  • singularity can not make mountspaces (mount MS_SLAVE)

22.シェルなしに単一バイナリーを実行するオプションのサポート

「wsl.exe」がシェルなしに単一バイナリーを実行するオプション(--exec)をサポートしました。

23.ディストリビューションを選択するオプションのサポート

「wsl.exe」がシェルなしにディストリビューションを選択するオプション(--distribution)をサポートしました。

24.dmesgの限定的なサポート

「dmesg」の限定的なサポートが行われました。
ソフトウェアは「dmesg」にログを出力できるようになり、「WSL」ドライバーが一部の情報を出力するようになりました。
将来的により多くの情報やドライバーからの診断情報を出力できるようになる予定です。

現在の実装では、以下の制約があります。

  1. 「dmesg」は「/dev/kmsg」を通じてのみ利用可能です。
  2. 「syslog」システムコールはまだサポートされていません。
  3. 「dmesg」コマンドの「-S」や「-C」オプションなど、一部のオプションは動作しません。

25.DrvFSが拡張ファイル属性をサポート

「DrvFS」が拡張ファイル属性をサポートしました。
ただし以下の制約があります。

使用できない文字

拡張属性の名称に、「/」や「'」、「*」といった文字は使用できません。

大文字・小文字を区別しない

拡張属性の名称は、大文字・小文字を区別しません。

WSLの不具合修正

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

1.パーミッションチェックの緩和

「setpriority」システムコールでスレッドの優先度を変更する際、パーミッションチェックが厳密すぎる問題が改善されました。
これにより改善する問題は、以下を参照してください。

  • nice fails with EACCES/Permission denied

2.clock_gettimeが負の値を返す不具合の修正

「clock_gettime」が負の値を返さないようにするため、起動時間に適正な割り込み時間を確実に使用するように修正されました。
これにより改善する問題は、以下を参照してください。

  • SSH hangs after machine powered on sometimes.

3.システムコールから不正な値を返す原因の修正

「ptrace」のアタッチがシステムコールから不正な値を返す原因になりうる問題が修正されました。 
これにより改善する問題は、以下を参照してください。

  • Segfault when debugging multithreaded async-IO process

4.AF_UNIXに関連する問題の修正

「AF_UNIX」に関連する問題が修正されました。
これにより改善する問題は、以下を参照してください。

  • Create a UNIX socket with filename containing colon on DrvFs will be create Alternate Data Stream.

5.相互運用が動作しない不具合の修正

現在のワーキングディレクトリーが5文字未満だった場合、相互運用が正常に動作しない問題が修正されました。
これにより改善する問題は、以下を参照してください。

  • Launch exe files fails when current directory of Windows side path is root directory or less than 5 chars of sub directory. 

6.存在していないポートへの接続に関する問題の修正

ループバックが存在していないポートに接続しようとして失敗した時に、1秒間の待ちを行わないように修正されました。
これにより改善する問題は、以下を参照してください。

  • Ubuntu 18.04 gpg dirmngr IPC connect call failed

7.不用意にepollイベントをクリアする問題の修正

PIPEファイルシステムが不用意に「edge-triggered epoll」イベントをクリアする問題が修正されました。
これにより改善する問題は、以下を参照してください。

  • terraform epoll_wait high cpu utilization

8.シンボリック名に従わない問題の修正

NTFSのシンボリック経由で起動されたWin32実行可能ファイルが、シンボリック名に従わない問題が修正されました。

  • Win32 executable launched via NTFS symlink doesn't respect symlink name

9.getsocknameの修正

「getsockname」がUNIXソケットのファミリータイプを返さない不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • NodeJS cannot spawn a process that reads from STDIN

10.非ブロックソケットの修正

非ブロックソケットの書き込みに対し「EAGAIN」を返すように修正されました。
これにより改善する問題は、以下を参照してください。

  • irssi reports "SSL handshake failed: Broken pipe" when connecting to Freenode

11.パーミッションチェックの修正

ルートフォルダーのパーミッションチェックに関する不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • GreenScreen on opening

12.高速起動が有効な環境で起動に失敗する不具合の修正

高速起動が有効な環境で「WSL」を起動しようとすると、「Error: 0x800703fa」エラーが発生し「WSL」の起動に失敗する不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • Error: 0x800703fa - Press any key to continue

13.UNIXドメインソケットに関する不具合の修正

切断されたUNIXドメインソケットのピア情報を保持するように修正されました。
これにより改善する問題は、以下を参照してください。

  • Unix domain sockets return spurious data from getsockopt(SO_PEERCRED) if the peer has already departed, which breaks ssh-agent forwarding for Ubuntu 18.04

ブロッキングしないUNIXドメインソケットで永遠に「EAGAIN」エラーが発生する不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • bug: EAGAIN (Resource temporarily unavailable) when using vue cli

14.スペースを含むパスの扱い修正

エクスプローラーのコンテキストメニューから「WSL/Linux」を起動する際、ディレクトリーのパスにスペースが含まれていても正常に動作するようになりました。

15.キャッシュメンテナンス操作のエミュレーション(ARM64)

キャッシュメンテナンス操作のエミュレーションにより、「dotnet」で発生していた問題が解消されました。
これにより改善する問題は、以下を参照してください。

  • Illegal Instruction when using dotnet commands on 2.1.300-rc1 SDK with Ubuntu 18.04 ARM64 on WSL

16.ELFバイナリーが実行できない不具合の修正

一部のELFバイナリーが実行できない不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • Issue running x64 ELF since 1803 Build Windows [Version 10.0.17134.1]

17.過去の絶対時間を指定するとタイマーが発動しない不具合の修正

過去の絶対時間を指定するとタイマーが発動しない不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • Bug in timerfd_settime

18.マルチスレッド操作時の不具合修正 

マルチスレッド操作時、ファイルが存在しているにも関わらず「ENOENT」が返ってくる問題が追加修正されました。
これにより改善する問題は、以下を参照してください。

  • DrvFs: compiler reports file missing, but it is present 

19.UMCI有効時WSLの起動に失敗する問題の修正

「UMCI(User Mode Code Integrity)」有効時、「WSL」の起動に失敗する問題が修正されました。
これにより改善する問題は、以下を参照してください。

  • Error: 0x80070005 after installing on Win10 Skip Ahead build 17618

「UMCI」については、以下を参照してください。

  • Device Guard の概要
  • Windows 10 のセキュリティの新機能

20.SOCK_NONBLOCK指定時の不具合修正

「SOCK_NONBLOCK」指定時のUNIXソケットの不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • Calling shutdown(fd, SHUT_WR) for one end of a non-blocking socket pair (AF_UNIX) does not lead to reading EOF at the other end. 
  • socketpair() syscall ignores non-blocking request (SOCK_NONBLOCK, O_NONBLOCK)

21.NETLINK利用時にハングアップする不具合の修正

「NETLINK」利用時にハングアップする不具合が修正されました。
これにより改善する問題は、以下を参照してください。

  • tc qdisc show hangs 

22.ftruncateでinotifyイベントが発生しない問題の修正

「ftruncate」で「inotify」イベントが発生しない問題が修正されました。
これにより改善する問題は、以下を参照してください。

  • inotify IN_MODIFY not fired by ftruncate/fsync

23.マルチスレッド時、ENOENTが返される不具合の修正

マルチスレッドで処理を行っている箇所で、ファイルが存在するにも関わらず「ENOENT」が返される不具合が修正されました。

これにより改善する問題は、以下を参照してください。

  • DrvFs: compiler reports file missing, but it is present

24.シリアルデバイスのグループID及びパーミッションの修正

シリアルデバイスのデバイスファイルのグループIDとパーミッションが修正されました。
これにより改善する問題は、以下を参照してください。

  • Serial devices /dev/ttyS* having wrong ownership and permissions

WSL
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu CPUfreq その1 - CPUfreqについて・ CPUfreqドライバーについて・ CPUfreqガバナーについて
    CPUfreq   CPUfreqは、CPUのクロック数を動的に変更する機能です。   CPUfreqを利用することで、OSの負荷に応じて動的にCPUのクロック数を調整することができます。  これにより、省電力効果を得ることができます。   CPUfreqを利用する場合...
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 24.04 その93 - Linux kernel 7.0 が利用可能に・Linux kernel 7.0 にアップグレードするには
    Linux kernel 7.0 が利用可能に 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Linux kernel 7.0 へアップグレードできるようになりました。
  • Ubuntu 26.04 その59 - amdgpu ドライバーでパフォーマンス低下のお知らせ
    amdgpu ドライバーでパフォーマンス低下のお知らせ 次期 Linux kernel のアップデートで、amdgpu ドライバーのパフォーマンスが低下するお知らせが出ています。
  • Linux その407 - COSMIC DE 開発7ヶ月の歩み・COSMIC DE に搭載された新機能のまとめ
    COSMIC DE 開発7ヶ月の歩み COSMIC デスクトップ環境の開発者が、ここ7ヶ月の開発の歩みと、今までに COSMIC デスクトップ環境に搭載された新機能を紹介しています。
  • Linux その404 - COSMIC Epoch 1.3.0 リリース・ウィンドウのすりガラス効果に対応
    COSMIC Epoch 1.3.0 リリース 2026年7月15日、COSMIC Epoch 1.3.0 がリリースされました。
  • Ubuntu 26.04 その64 - AMD 環境で PC をシャットダウンできない現象
    AMD 環境で PC をシャットダウンできない現象 AMD 環境で PC をシャットダウンできない現象が報告されています。
  • Ubuntu 26.10 その18 - GRUB の機能削減とセキュリティー強化
    GRUB の機能削減とセキュリティー強化 GRUB の機能削減とセキュリティー強化が予定されています。
  • Ubuntu 24.04 その94 - Linux kernel 7.0 で nvidia-535 NVIDIA GPU ドライバーが非サポートに
    nvidia-535 NVIDIA GPU ドライバーが非サポートに Linux kernel 7.0 で nvidia-535 NVIDIA GPU ドライバーが非サポートになりました。
  • Ubuntu 26.04 その65 - ソフトウェアのアップデート通知が表示されない現象
    ソフトウェアのアップデート通知が表示されない現象 ソフトウェアのアップデート通知が表示されなくなる現象が報告されています。
記事のピックアップ
オプション