Windows Subsystem for Linux に関してよく寄せられる質問Frequently Asked Questions about Windows Subsystem for Linux

Windows Subsystem for Linux (WSL) とは何ですか。What is Windows Subsystem for Linux (WSL)?

Windows Subsystem for Linux (WSL) は、ネイティブ Linux コマンド ライン ツールを Windows で直接実行できる Windows 10 の新機能です。これは、従来の Windows デスクトップや最新のストア アプリと共存します。The Windows Subsystem for Linux (WSL) is a new Windows 10 feature that enables you to run native Linux command-line tools directly on Windows, alongside your traditional Windows desktop and modern store apps.

詳しくは、詳細ページをご覧ください。See the about page for more details.

WSL の対象ユーザーは誰ですか。Who is WSL for?

これは、主に開発者向けのツールです。特に Web 開発者と、オープン ソース プロジェクトで作業している開発者が対象です。This is primarily a tool for developers -- especially web developers and those who work on or with open source projects. これにより、Bash、一般的な Linux ツール (sedawk など)、および多くの Linux ファースト ツール (Ruby、Python など) を使用する必要があるユーザーは、Windows でそれらのツールチェーンを使用できます。This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows.

WSL で何ができますか。What can I do with WSL?

WSL が提供する Bash.exe というアプリケーションを開始すると、Bash シェルを実行している Windows コンソールが開きます。WSL provides an application called Bash.exe that, when started, opens a Windows console running the Bash shell. Bash を使用すると、コマンド ライン Linux ツールおよびアプリを実行できます。Using Bash, you can run command-line Linux tools and apps. たとえば、「lsb_release -a」と入力して Enter キーを押すと、現在実行中の Linux ディストリビューションの詳細が表示されます。For example, type lsb_release -a and hit enter; you’ll see details of the Linux distro currently running:

ディストリビューションの詳細のスクリーンショット

Linux Bash シェル内からローカル コンピューターのファイル システムにアクセスすることもできます。ローカル ドライブは /mnt フォルダーの下にマウントされます。You can also access your local machine’s filesystem from within the Linux Bash shell – you’ll find your local drives mounted under the /mnt folder. たとえば、 C: ドライブは /mnt/c の下にマウントされます。For example, your C: drive is mounted under /mnt/c:

マウントされた C ドライブのスクリーンショット

Bash とは何ですか。What is Bash?

Bash は、広く使われているテキスト ベースのシェルおよびコマンド言語です。Bash is a popular text-based shell and command-language. これは、Ubuntu およびその他の Linux ディストリビューション内と macOS に含まれる既定のシェルです。It is the default shell included within Ubuntu and other Linux distros, and in macOS. ユーザーは、シェルにコマンドを入力して、スクリプトを実行したり、コマンドやツールを実行したりして多くのタスクを行います。Users type commands into a shell to execute scripts and/or run commands and tools to accomplish many tasks.

この処理のしくみHow does this work?

基礎となるテクノロジの詳細については、ブログを参照してください。Check out our blog where we go into detail about the underlying technology.

VM で Linux ではなく WSL を使用するのはなぜですか。Why would I use WSL rather than Linux in a VM?

WSL は、必要なリソース (CPU、メモリ、およびストレージ) が完全な仮想マシンよりも少なくて済みます。WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine. また、WSL を使用すると、Linux コマンド ライン ツールおよびアプリを Windows コマンド ライン、デスクトップおよびストア アプリと共に実行したり、Linux 内から Windows ファイルにアクセスしたりすることもできます。WSL also allows you to run Linux command-line tools and apps alongside your Windows command-line, desktop and store apps, and to access your Windows files from within Linux. これにより、必要に応じて、同じファイル セットに対して Windows アプリと Linux コマンド ライン ツールを使用できます。This enables you to use Windows apps and Linux command-line tools on the same set of files if you wish.

たとえば、Windows ではなく Linux 上で Ruby を使用するのはなぜですか。Why would I use, for example, Ruby on Linux instead of on Windows?

一部のクロスプラットフォーム ツールは、それらが実行される環境が Linux のように動作することを前提として構築されました。Some cross-platform tools were built assuming that the environment in which they run behaves like Linux. たとえば、一部のツールでは、非常に長いファイル パスにアクセスできることや、特定のファイルまたはフォルダーが存在することを前提としています。For example, some tools assume that they are able to access very long file paths or that specific files/folders exist. これにより、Linux とは動作が異なる事が多い Windows で問題が発生することがよくあります。This often causes problems on Windows which often behaves differently from Linux.

Ruby や node のような多くの言語は、たいていの場合、Windows に移植され、非常にうまく動作します。Many languages like Ruby and node are often ported to, and run great, on Windows. ただし、すべての Ruby Gem または node/NPM ライブラリ所有者が、Windows をサポートするためにライブラリを移植するわけではなく、多くのものに Linux 固有の依存関係があります。However, not all of the Ruby Gem or node/NPM library owners port their libraries to support Windows, and many have Linux-specific dependencies. これにより、このようなツールやライブラリを使用して構築されたシステムはビルドから悪影響を受ける場合が多く、Windows で実行時エラーや望ましくない動作が発生することがあります。This can often result in systems built using such tools and libraries suffering from build and sometimes runtime errors or unwanted behaviors on Windows.

これらは、多くのユーザーが Windows のコマンド ライン ツールの向上を Microsoft に依頼する原因となった問題の一部に過ぎません。また、こうした要因から、Microsoft が Canonical と提携して、ネイティブ Bash と Linux コマンド ライン ツールを Windows で実行できるようにすることになりました。These are just some of issues that caused many people to ask Microsoft to improve Windows’ command-line tools and what drove us to partner with Canonical to enable native Bash and Linux command-line tools to run on Windows.

PowerShell においてこれは何を意味しますか。What does this mean for PowerShell?

OSS プロジェクトでの作業中、PowerShell プロンプトから Bash を実行すると非常に役立つシナリオが多数あります。While working with OSS projects, there are numerous scenarios where it’s immensely useful to drop into Bash from a PowerShell prompt. Bash のサポートは補完的なものであり、Windows でのそのコマンド ラインの価値を高め、PowerShell と PowerShell コミュニティでその他の一般的なテクノロジを利用できるようにします。Bash support is complementary and strengthens the value of the command-line on Windows, allowing PowerShell and the PowerShell community to leverage other popular technologies.

詳細については、PowerShell チームのブログ「Windows の Bash:それがすばらしい理由と PowerShell における意味」をお読みくださいRead more on the PowerShell team blog -- Bash for Windows: Why it’s awesome and what it means for PowerShell

WSL ですべての Linux アプリを実行できますか。Can I run ALL Linux apps in WSL?

いいえ。No! WSL は、Bash およびコア Linux コマンド ライン ツールを必要とするユーザーが Windows 上でそれらを実行できるようにすることを目的としたツールです。WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.

WSL は、GUI デスクトップやアプリケーション (例: Gnome、KDE など) をサポートすることを目的としていませんWSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

また、多くの一般的なサーバー アプリケーション (Redis など) を実行できる場合でも、実稼働サービスをホストする目的には WSL をお勧めしません。Microsoft は、Azure、Hyper-V、Docker で実稼働 Linux ワークロードを実行するためのさまざまなソリューションを提供しています。Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for hosting production services – Microsoft offers a variety of solutions for running production Linux workloads in Azure, Hyper-V, and Docker.

WSL はどの Windows SKU に含まれていますか。What Windows SKUs is WSL included in?

Windows Subsystem for Linux は、Windows 10 Anniversary および Creators Update 以降の Windows デスクトップ バージョンで使用できます。Windows Subsystem for Linux is available on the desktop version of Windows for Windows 10 Anniversary and Creators update or later.

Fall Creators Update 以降では、WSL は Windows のデスクトップとサーバーの両方の SKU で使用できるようになります。Beginning in the Fall Creators update WSL will be available on both the desktop and server SKUs of Windows.

WSL はどのようなプロセッサをサポートしていますか。What processors does WSL support?

WSL は x64 および ARM の CPU をサポートしています。WSL supports x64 and ARM CPUs.

C: ドライブにアクセスするにはどうすればよいですか。How do I access my C: drive?

ローカル コンピューター上のハード ドライブのマウント ポイントが自動的に作成され、Windows ファイル システムに簡単にアクセスできるようになります。Mount points for hard drives on the local machine are automatically created and provide easy access to the Windows filesystem.

/mnt/<ドライブ文字>//mnt/<drive letter>/

使用例は、c:\ にアクセスする cd /mnt/c です。Example usage would be cd /mnt/c to access c:</span>

Linux アプリで Windows ファイルをどのように使用しますか。How do I use a Windows file with a Linux app?

WSL の利点の 1 つは、Windows と Linux の両方のアプリまたはツールを経由してファイルにアクセスできることです。One of the benefits of WSL is being able to access your files via both Windows and Linux apps or tools.

WSL では、コンピューターの固定ドライブを Linux ディストリビューションの /mnt/<drive> フォルダーの下にマウントします。WSL mounts your machine's fixed drives under the /mnt/<drive> folder in your Linux distros. たとえば、 C: ドライブは /mnt/c/ の下にマウントされます。For example, your C: drive is mounted under /mnt/c/

マウントされたドライブを使用すると、Visual Studio またはVS Codeを使用して、たとえば C:\dev\myproj\ 内のコードを編集したり、/mnt/c/dev/myproj を介して同じファイルにアクセスして Linux でそのコードをビルド/テストしたりできます。Using your mounted drives, you can edit code in, for example, C:\dev\myproj\ using Visual Studio / or VS Code, and build/test that code in Linux by accessing the same files via /mnt/c/dev/myproj.

重要な注意:WSL を使用する際の主な制限事項の 1 つは、Windows アプリまたはツールを使用して Linux ディストリビューションのファイル システム内のファイルに直接アクセスしたり、変更したりすることがサポートされていないことです。IMPORTANT NOTE: One of the key limitations of using WSL is that directly accessing/changing files in your Linux distros' filesystem using Windows apps or tools is not supported. 以下をご覧ください。Windows アプリやツールを使用して Linux ファイルを変更しないSee: Do not change Linux files using Windows apps and tools

Linux ドライブのファイルはマウントされた Windows ドライブのものとは異なりますか。Are files in the Linux drive different from the mounted Windows drive?

  1. Linux ルート (つまり /) の下にあるファイルは、Linux 固有の性質を模倣する WSL によって制御されます。次のようなものが含まれますが、これらに限定されません。Files under the Linux root (i.e. /) are controlled by WSL which mimics Linux specific behavior, including but not limited to:

    • 無効な Windows ファイル名の文字を含むファイルFiles which contain invalid Windows filename characters
    • 管理者以外のユーザー用に作成されたシンボリック リンクSymlinks created for non-admin users
    • chmod および chown を使用したファイル属性の変更Changing file attributes through chmod and chown
    • ファイル/フォルダーの大文字と小文字の区別File/folder case sensitivity
  2. マウントされたドライブのファイルは Windows によって制御され、次のように動作します。Files in mounted drives are controlled by Windows and have the following behaviors:

    • 大文字と小文字の区別をサポートSupport case sensitivity
    • すべてのアクセス許可は、Windows アクセス許可を最適に反映するように設定All permissions are set to best reflect the Windows permissions

apt-get upgrade を実行すると、多くのエラーが発生するのはなぜですか。Why are there so many errors when I run apt-get upgrade?

一部のパッケージでは、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
    

WSL ディストリビューションをアンインストールするにはどうすればよいですか。How do I uninstall a WSL Distribution?

1709 (16299) より前のビルドでは、コマンド プロンプトを開き、次を実行します。On builds prior to 1709 (16299) open a command prompt and run:

lxrun /uninstall /full

ストアからインストールされた WSL ディストリビューションは、他の Windows アプリと同様に、アプリ タイルを右クリックして [アンインストール] をクリックするか、Remove-AppxPackage コマンドレットを使用して PowerShell を介してアンインストールできます。WSL distributions installed from the store can be uninstalled like any other Windows app, by right-clicking on the app tile and clicking Uninstall, or via PowerShell using the Remove-AppxPackage cmdlet.

ping によってアクセス拒否エラーが発生するのはなぜですか。Why does ping generate permission denied errors?

14926 より前の WSL ビルドでは、WSL で管理者特権のコンソールを使用して ping を実行する必要がありました。In WSL builds < 14926, ping required WSL to run via an elevated Console. この問題は、ビルド14926 以降で修正されました。This issue was fixed in Build 14926 and later.

OpenSSH サーバーを実行するにはどうすればよいですか。How do I run an OpenSSH server?

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

インストールしようとすると、"エラー:0x80040306" が表示されるのはなぜですか。Why do I get "Error: 0x80040306" when I try to install?

WSL は、従来のコンソールでの実行をサポートしていません。WSL does not support running in a legacy console. 従来のコンソールをオフにするには、以下を実行します。To turn off legacy console:

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

Windows のアップグレード後に bash.exe を実行すると、"エラー:0x80040154" が表示されるのはなぜですか。Why do I get "Error: 0x80040154" when I run bash.exe after upgrading Windows?

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" feature can be found in the Installation Guide.

WSL の表示言語を変更するにはどうすればよいですか。How do I change the display language of WSL?

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

WSL からインターネットにアクセスできないのはなぜですか。Why do I not have internet access from 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.

Windows の WSL からポートにアクセスするにはどうすればよいですか。How do I access a port from WSL in Windows?

WSL は Windows で実行されているため、Windows の IP アドレスを共有します。WSL shares the IP address of Windows, as it is running on Windows. そのため、localhost 上の任意のポートにアクセスできます。たとえば、ポート 1234 に Web コンテンツがあるとすると、 https://localhost:1234 を Windows ブラウザーに入力できます。As such you can access any ports on localhost e.g. if you had web content on port 1234 you could https://localhost:1234 into your Windows browser.

WSL ディストリビューションをバックアップするにはどうすればよいですか。How can I back up my WSL distros?

ディストリビューションをバックアップする最適な方法は、Windows バージョン1809 以降で使用できます。The best way to backup your distros is available in Windows Version 1809 and later. wsl --export コマンドを使用して、ディストリビューション全体を tarball にエクスポートできます。You can export your entire distribution to a tarball using the wsl --export command. その後、wsl --import コマンドを使用してこのディストリビューションを WSL にインポートし直すことができます。これにより、WSL ディストリビューションの状態をバックアップして保存できます。You can then import this distro back into WSL using the wsl --import command, allowing you to backup and save states of your WSL distributions.

Appdata フォルダーのファイルをバックアップする従来のバックアップ サービス (Windows バックアップなど) によって Linux ファイルが破損することはありません。Please note that traditional backup services that backup files in your Appdata folders (like Windows Backup) will not corrupt your Linux files.

フィードバックはどこで提供できますか。Where can I provide feedback?

複数のチャネルを通じて、フィードバックを共有したり、質問したりできます。フィードバックや質問は以下宛てにお願いいたします。You can share feedback and ask questions through multiple channels: Feedback and questions should be directed to: