Windows Subsystem for Linux のトラブルシューティングTroubleshooting Windows Subsystem for Linux

WSL に関連する問題のサポートについては、GitHub リポジトリを参照してください。For support with issues related to WSL, please see our GitHub repo:

技術的な問題については、製品リポジトリを使用します: https://github.com/Microsoft/wsl/issuesFor technical issues, use the product repo: https://github.com/Microsoft/wsl/issues

このドキュメントの内容に関連する問題については、ドキュメント リポジトリを使用します: https://github.com/MicrosoftDocs/wsl/issuesFor issues related to the contents of this documentation, use the docs repo: https://github.com/MicrosoftDocs/wsl/issues

バグ報告の送信Submit a bug report

WSL の関数または機能に関連するバグについては、製品リポジトリに問題を報告します: https://github.com/Microsoft/wsl/issuesFor bugs related to WSL functions or features, file an issue in the product repo: https://github.com/Microsoft/wsl/issues

機能リクエストの送信Submit a feature request

WSL の機能または互換性に関連する新しい機能を要求する場合は、製品リポジトリに問題を報告します: https://github.com/Microsoft/wsl/issuesTo request a new feature related to WSL functionality or compatibility, file an issue in the product repo: https://github.com/Microsoft/wsl/issues

ドキュメントに投稿するContribute to the docs

WSL ドキュメントに投稿するには、ドキュメント リポジトリに pull request を送信します: https://github.com/MicrosoftDocs/wsl/issuesTo contribute to the WSL documentation, submit a pull request in the docs repo: https://github.com/MicrosoftDocs/wsl/issues

ターミナルまたはコマンド ラインTerminal or Command Line

最後に、問題が Windows ターミナル、Windows コンソール、またはコマンドライン UI に関連している場合は、Windows ターミナル リポジトリを使用します: https://github.com/microsoft/terminalLastly, if your issue is related to the Windows Terminal, Windows Console, or the command-line UI, use the Windows terminal repo: https://github.com/microsoft/terminal

一般的な問題Common issues

Windows から WSL ファイルにアクセスできないCannot access WSL files from Windows

9P プロトコル ファイル サーバーは、Linux 側のサービスを提供して、Windows が Linux ファイル システムにアクセスできるようにします。A 9p protocol file server provides the service on the Linux side to allow Windows to access the Linux file system. Windows で \\wsl$ を使用して WSL にアクセスできない場合は、9P が正常に開始されなかった可能性があります。If you cannot access WSL using \\wsl$ on Windows, it could be because 9P did not start correctly.

これを確認するには、dmesg |grep 9p によってスタートアップ ログをチェックして、エラーを表示します。To check this, you can check the start up logs using: dmesg |grep 9p, and this will show you any errors. 正常な出力は次のようになります。A successfull output looks like the following:

[    0.363323] 9p: Installing v9fs 9p2000 file system support
[    0.363336] FS-Cache: Netfs '9p' registered for caching
[    0.398989] 9pnet: Installing 9P2000 support

この問題の詳細については、この Github スレッドを参照してください。Please see this Github thread for further discussion on this issue.

WSL 2 ディストリビューションを開始できず、出力で 'WSL 2' のみが表示されるCan't start WSL 2 distro and only see 'WSL 2' in output

表示言語が英語でない場合は、切り捨てられたエラー テキストが表示される可能性があります。If your display language is not English, then it is possible you are seeing a truncated version of an error text.

C:\Users\me>wsl
WSL 2

この問題を解決するには、https://aka.ms/wsl2kernel にアクセスし、そのドキュメント ページの指示に従って手動でカーネルをインストールしてください。To resolve this issue, please visit https://aka.ms/wsl2kernel and install the kernel manually by following the directions on that doc page.

仮想マシン プラットフォームの Windows 機能を有効にし、BIOS で仮想化が有効になっていることを確認してください。Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.

  1. Hyper-V のシステム要件を確認Check the Hyper-V system requirements
  2. マシンが VM の場合は、入れ子になった仮想化を手動で有効にしてください。If your machine is a VM, please enable nested virtualization manually. 管理者で Powershell を起動し、次を実行します。Launch powershell with admin, and run:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
  1. 仮想化を有効にする方法については、お使いの PC の製造元のガイドラインに従ってください。Please follow guidelines from your PC's manufacturer on how to enable virtualization. 一般に、これらの機能が CPU で確実に有効になるようにするには、システム BIOS の使用が必要になる場合があります。In general, this can involve using the system BIOS to ensure that these features are enabled on your CPU.
  2. Virtual Machine Platform のオプションのコンポーネントを有効にしたら、コンピューターを再起動してください。Restart your machine after enabling the Virtual Machine Platform optional component.

VPN に接続されると、bash のネットワーク接続が切断されるBash loses network connectivity once connected to a VPN

Windows で VPN に接続した後、bash のネットワーク接続が切断される場合は、bash 内からこの回避策を試してください。If after connecting to a VPN on Windows, bash loses network connectivity, try this workaround from within bash. この回避策により、/etc/resolv.conf を使用して DNS 解決を手動で上書きできます。This workaround will allow you to manually override the DNS resolution through /etc/resolv.conf.

  1. ipconfig.exe /all を実行して、VPN の DNS サーバーをメモしますTake a note of the DNS server of the VPN from doing ipconfig.exe /all
  2. sudo cp /etc/resolv.conf /etc/resolv.conf.new で、既存の resolv.conf のコピーを作成しますMake a copy of the existing resolv.conf sudo cp /etc/resolv.conf /etc/resolv.conf.new
  3. sudo unlink /etc/resolv.conf で、現在の resolv.conf のリンクを解除しますUnlink the current resolv.conf sudo unlink /etc/resolv.conf
  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf
  5. /etc/resolv.conf を開きます。そして、Open /etc/resolv.conf and
    a。a. ファイルから最初の行を削除します。この行の内容は "# This file was automatically generated by WSL.Delete the first line from the file, which says "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." です。To stop automatic generation of this file, remove this line.".
    b.b. DNS サーバーの一覧の最初のエントリとして、上記 (1) の DNS エントリ を追加します。Add the DNS entry from (1) above as the very first entry in the list of DNS servers.
    c.c. ファイを閉じます。Close the file.

VPN を切断したら、変更を /etc/resolv.conf に戻す必要があります。Once you have disconnected the VPN, you will have to revert the changes to /etc/resolv.conf. これを行うには、次の手順を実行します。To do this, do:

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

WSL の開始またはディストリビューションのインストールでエラー コードが返されるStarting WSL or installing a distribution returns an error code

こちらの手順に従って、詳細なログを収集し、Microsoft の GitHub で問題を提出してください。Follow these instructions to collect detailed logs and file an issue on our GitHub.

Bash on Ubuntu on Windows の更新Updating Bash on Ubuntu on Windows

Bash on Ubuntu on Windows には、更新が必要になることがある 2 つのコンポーネントがあります。There are two components of Bash on Ubuntu on Windows that can require updating.

  1. Windows Subsystem for LinuxThe Windows Subsystem for Linux

    Bash on Ubuntu on Windows のこの部分をアップグレードすると、リリース ノートで概説されている新しい修正が有効になります。Upgrading this portion of Bash on Ubuntu on Windows will enable any new fixes outlines in the release notes. Windows Insider Program をサブスクライブしていることと、ビルドが最新であることを確認してください。Ensure that you are subscribed to the Windows Insider Program and that your build is up to date. Ubuntu インスタンスのリセットなど、より細かな制御を行うには、コマンド リファレンスに関するページを確認してください。For finer grain control including resetting your Ubuntu instance check out the command reference page.

  2. Ubuntu ユーザー バイナリThe Ubuntu user binaries

    Bash on Ubuntu on Windows のこの部分をアップグレードすると、apt-get を使用してインストールしたアプリケーションを含む Ubuntu ユーザー バイナリにすべての更新プログラムがインストールされます。Upgrading this portion of Bash on Ubuntu on Windows will install any updates to the Ubuntu user binaries including applications that you have installed via apt-get. 更新するには、Bash で次のコマンドを実行します。To update run the following commands in Bash:

    1. apt-get update
    2. apt-get upgrade

apt-get アップグレードのエラーApt-get upgrade errors

一部のパッケージでは、まだ Microsoft が実装していない機能が使用されています。Some packages use features that we haven't implemented yet. たとえば、udev はまだサポートされていないため、apt-get upgrade エラーがいくつか発生します。udev, for example, isn't supported yet and causes several apt-get upgrade errors.

udev に関連する問題を修正するには、次の手順に従います。To fix issues related to udev, follow the following steps:

  1. 次の内容を /usr/sbin/policy-rc.d に記述して、変更を保存します。Write the following to /usr/sbin/policy-rc.d and save your changes.

    #!/bin/sh
    exit 101
    
  2. 実行のアクセス許可を /usr/sbin/policy-rc.d に追加します。Add execute permissions to /usr/sbin/policy-rc.d:

    chmod +x /usr/sbin/policy-rc.d
    
  3. 次のコマンドを実行します。Run the following commands:

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

"Error:0x80040306" がインストール時に発生"Error: 0x80040306" on installation

これは、従来のコンソールがサポートされていないということと関連があります。This has to do with the fact that we do not support legacy console. 従来のコンソールをオフにするには、以下を実行します。To turn off legacy console:

  1. cmd.exe を開きます。Open cmd.exe
  2. タイトル バーを右クリックして、[プロパティ] を選択し、[従来のコンソールを使う] をオフにします。Right click title bar -> Properties -> Uncheck Use legacy console
  3. [OK] をクリックします。Click OK

"Error:0x80040154" が Windows Update 後に発生"Error: 0x80040154" after Windows update

Windows Update 時に Windows Subsystem for Linux 機能が無効になる可能性があります。The Windows Subsystem for Linux feature may be disabled during a Windows update. その場合は、この Windows 機能を再度有効にする必要があります。If this happens the Windows feature must be re-enabled. Windows Subsystem for Linux を有効にする手順については、インストール ガイドをご覧ください。Instructions for enabling the Windows Subsystem for Linux can be found in the Installation Guide.

表示言語の変更Changing the display language

WSL インストールでは、Windows インストールのロケールに合わせて Ubuntu ロケールを自動的に変更しようとします。WSL install will try to automatically change the Ubuntu locale to match the locale of your Windows install. この動作が不要な場合は、次のコマンドを実行して、インストールの完了後に Ubuntu ロケールを変更できます。If you do not want this behavior you can run this command to change the Ubuntu locale after install completes. この変更を有効にするには、bash.exe を再起動する必要があります。You will have to relaunch bash.exe for this change to take effect.

次の例は、ロケールを en-US に変更します。The below example changes to locale to en-US:

sudo update-locale LANG=en_US.UTF8

Windows システムの復元後のインストールの問題Installation issues after Windows system restore

  1. %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux フォルダーを削除します。Delete the %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux folder.
    注: オプションの機能が完全にインストールされて動作している場合は、この操作を行わないでください。Note: Do not do this if your optional feature is fully installed and working.
  2. WSL オプション機能を有効にします (まだ有効にされていない場合)Enable the WSL optional feature (if not already)
  3. 再起動しますReboot
  4. lxrun /uninstall /fulllxrun /uninstall /full
  5. Bash をインストールしますInstall bash

WSL でインターネットにアクセスできないNo internet access in WSL

一部のユーザーにより、WSL でのインターネット アクセスをブロックする特定のファイアウォール アプリケーションに関する問題が報告されています。Some users have reported issues with specific firewall applications blocking internet access in WSL. 報告されているファイアウォールは次のとおりです。The firewalls reported are:

  1. KasperskyKaspersky
  2. AVGAVG
  3. AvastAvast

ファイアウォールをオフにすると、アクセスできる場合があります。In some cases turning off the firewall allows for access. 場合によっては、ファイアウォールをインストールするだけでアクセスがブロックされるようです。In some cases simply having the firewall installed looks to block access.

ping 使用時のアクセス拒否エラーPermission Denied error when using ping

Windows Anniversary Update (バージョン 1607) では、WSL で ping を実行するには、Windows の 管理者特権 が必要です。For Windows Anniversary Update, version 1607, administrator privileges in Windows are required to run ping in WSL. ping を実行するには、管理者として Bash on Ubuntu on Windows を実行するか、管理者特権を使用して CMD/PowerShell プロンプトから bash.exe を実行します。To run ping, run Bash on Ubuntu on Windows as an administrator, or run bash.exe from a CMD/PowerShell prompt with administrator privileges.

Windows の最新バージョン (Build 14926 以降) では、管理者特権は不要になりました。For later versions of Windows, Build 14926+, administrator privileges are no longer required.

Bash がハングしているBash is hung

bash を使用しているときに bash がハングしている (またはデッドロックされている) か、入力に応答していないことに気付いた場合は、Microsoft が問題を診断できるようにメモリ ダンプを収集して報告してください。If while working with bash, you find that bash is hung (or deadlocked) and not responding to inputs, help us diagnose the issue by collecting and reporting a memory dump. 次の手順によりシステムがクラッシュすることに注意してください。Note that these steps will crash your system. それが問題である場合は、この操作を行わないでください。または、これを行う前に作業を保存してください。Do not do this if you are not comfortable with that or save your work prior to doing this.

メモリ ダンプを収集するにはTo collect a memory dump

  1. メモリ ダンプの種類を "完全なメモリ ダンプ" に変更します。Change the memory dump type to "complete memory dump". ダンプの種類を変更するときに、現在の種類をメモしておきます。While changing the dump type, take a note of your current type.

  2. こちらの手順を使用して、キーボード コントロールを使ってクラッシュを構成します。Use the steps to configure crash using keyboard control.

  3. ハングまたはデッドロックを再現します。Repro the hang or deadlock.

  4. (2) のキー シーケンスを使用してシステムをクラッシュさせます。Crash the system using the key sequence from (2).

  5. システムはクラッシュし、メモリ ダンプを収集します。The system will crash and collect the memory dump.

  6. システムが再起動したら、memory.dmp を secure@microsoft.com に報告します。Once the system reboots, report the memory.dmp to secure@microsoft.com. ダンプ ファイルの既定の場所は、%SystemRoot%\memory.dmp です。つまり、C: がシステム ドライブである場合は、C:\Windows\memory.dmp になります。The default location of the dump file is %SystemRoot%\memory.dmp or C:\Windows\memory.dmp if C: is the system drive. メールには、ダンプは WSL or Bash on Windows チーム向けであることを記載します。In the email, note that the dump is for the WSL or Bash on Windows team.

  7. メモリ ダンプの種類を元の設定に戻します。Restore the memory dump type to the original setting.

ビルド番号を確認するCheck your build number

PC のアーキテクチャと Windows ビルド番号を確認するには、次を開きます。To find your PC's architecture and Windows build number, open
[設定] > [システム] > [バージョン情報]Settings > System > About

[OS ビルド] フィールドと [システムの種類] フィールドを探します。Look for the OS Build and System Type fields.
ビルドとシステムの種類のフィールドのスクリーンショットScreenshot of Build and System Type fields

Windows Server のビルド番号を確認するには、PowerShell で次を実行します。To find your Windows Server build number, run the following in PowerShell:

systeminfo | Select-String "^OS Name","^OS Version"

WSL が有効になっていることを確認するConfirm WSL is enabled

Windows Subsystem for Linux が有効になっていることを確認するには、PowerShell で次を実行します。You can confirm that the Windows Subsystem for Linux is enabled by running the following in PowerShell:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

OpenSSH サーバーの接続に関する問題OpenSSH-Server connection issues

SSH サーバーに接続しようとしましたが、次のエラーで失敗しました。"Connection closed by 127.0.0.1 port 22" (127.0.0.1 ポート 22 によって接続は閉じられました)。Trying to connect your SSH server is failed with the following error: "Connection closed by 127.0.0.1 port 22".

  1. OpenSSH サーバーが実行されていることを確認します。Make sure your OpenSSH Server is running:

    sudo service ssh status
    

    次のチュートリアルに従っていることも確認します。 https://help.ubuntu.com/lts/serverguide/openssh-server.html.enand you've followed this tutorial: https://help.ubuntu.com/lts/serverguide/openssh-server.html.en

  2. sshd サービスを停止し、デバッグ モードで sshd を開始します。Stop the sshd service and start sshd in debug mode:

    sudo service ssh stop
    sudo /usr/sbin/sshd -d
    
  3. スタートアップ ログを調べて、HostKey が使用可能であり、次のようなログ メッセージが表示されていないことを確認します。Check the startup logs and make sure HostKeys are available and you don't see log messages such as:

    debug1: sshd version OpenSSH_7.2, OpenSSL 1.0.2g  1 Mar 2016
    debug1: key_load_private: incorrect passphrase supplied to decrypt private key
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    

このようなメッセージが表示されていて、/etc/ssh/ の下にそれらのキーがない場合は、キーを再生成するか、単に purge openssh-server と install openssh-server を実行する必要があります。If you do see such messages and the keys are missing under /etc/ssh/, you will have to regenerate the keys or just purge&install openssh-server:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

"参照されているアセンブリが見つかりませんでした。""The referenced assembly could not be found." WSL オプション機能を有効にする場合when enabling the WSL optional feature

このエラーは、インストール状態が正しくないことに関係があります。This error is related to being in a bad install state. この問題を解決するには、次の手順を実行してください。Please complete the following steps to try and fix this issue:

  • PowerShell から WSL 機能を有効にするコマンドを実行している場合、代わりに GUI を使用してみてください。[スタート] メニューを開き、[Windows の機能の有効化または無効化] を検索して、一覧で [Windows Subsystem for Linux] を選択すると、オプションのコンポーネントがインストールされます。If you are running the enable WSL feature command from PowerShell, try using the GUI instead by opening the start menu, searching for 'Turn Windows features on or off' and then in the list select 'Windows Subsystem for Linux' which will install the optional component.

  • [設定]、[更新] の順に移動し、[更新プログラムの確認] をクリックして、Windows のバージョンを更新しますUpdate your version of Windows by going to Settings, Updates, and clicking 'Check for Updates'

  • 上記の両方が失敗し、WSL にアクセスする必要がある場合は、インプレース アップグレードを検討してください。インストール メディアを使用して Windows 10 を再インストールし、[すべて保持] を選択することにより、アプリとファイルが確実に保持されます。If both of those fail and you need to access WSL please consider upgrading in place by reinstalling Windows 10 using installation media and selecting 'Keep Everything' to ensure your apps and files are preserved. これを行うための手順については、「Windows 10 を再インストールする」のページをご覧ください。You can find instructions on how to do so at the Reinstall Windows 10 page.

以下のエラーが表示される場合:If you're seeing this error:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

これを修正するには、/etc/wsl.conf ファイルに以下を追加します。To fix this, append the following to the the /etc/wsl.conf file:

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

このコマンドを追加すると、メタデータが組み込まれ、WSL から見た Windows ファイルに対するファイルのアクセス許可が変更されることにご注意ください。Please note that adding this command will include metadata and modify the file permissions on the Windows files seen from WSL. 詳細については、ファイル システムのアクセス許可を参照してください。Please see the File System Permissions for more information.