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

トラブルシューティング

2017年1月4日、「Bash on Ubuntu on Windows」の公式サイトにトラブルシューティングのページが新設されました。



ここではトラブルシューティングの内容を紹介します。

1.bashが出すエラーコードを報告するには

ある特定の操作時に「bash」がエラーコードを出力する時は、以下の方法でエラーの内容を報告します。
問題を再現するため、現象が発生する操作内容を記憶しておいてください。

1-1.事前準備

以下のスクリプトファイルをダウンロードします。

  1. start_lxcore_trace.txt
  2. stop_lxcore_trace.txt

ファイルをダウンロードしたら、ファイルの拡張子「.txt」を「.cmd」に変更してください。

1-2.トレース開始

管理者権限で起動したコマンドプロンプトから「start_lxcore_trace.cmd」を実行します。

1-3.bashの起動

「bash.exe」を起動し、問題を再現します。

1-4.トレースの停止

管理者権限で起動したコマンドプロンプトから「stop_lxcore_trace.cmd」を実行します。

1-5..etlファイルの確認

スクリプトを実行したフォルダー内に3種類の「.etl」ファイルが生成されます。
これらのファイルが存在しているか確認します。

1-6.不具合報告

Microsoft/BashOnWindows」の「issues」ページに、不具合の再現手順や「5.」の「.etl」ファイルを投稿します。

2.Bash on Ubuntu on Windowsをアップデートするには

「Bash on Ubuntu on Windows」をアップデートする方法です。
「Bash on Ubuntu on Windows」は2種類のコンポーネントで構成されています。

  1. WSL(Windows Subsystem for Linux)
  2. Ubuntu(ユーザースペース)

上記それぞれのコンポーネントでアップデートを行う必要があります。

2-1.WSLのアップデート

「WSL」は「Windows」の1機能として提供されています。
そのため「Windows Update」から「WSL」をアップデートできます。

最新の「WSL」を入手するには、Insider Programに参加し、最新のビルドへアップグレードする必要があります。

2-2.Ubuntuのアップデート

「Ubuntu」のアップデートは、「Ubuntu」の作法に従って行います。
「Ubuntu」をアップデートするには、「bash」から以下のコマンドを1行ずつ実行してください。

apt-get update
apt-get upgrade

ちなみに「apt-get」の代わりに「apt」も利用できます。

3.apt-get upgrade実行時にエラーが出るときは

いくつかのパッケージは、アップデート時に「WSL」がまだサポートしていない機能を要求します。

例えば「udev」です。
「udev」はまだサポートしておらず、「apt-get upgrade」実行時にエラーの原因となります。

「udev」が原因のエラーが出るときは、以下の方法でこの問題を回避します。


4.インストール時にError: 0x80040306が発生するときは

従来のコンソール(レガシーコンソール)を有効にしているコマンドプロンプトでは、このエラーが発生します。

以下の確認を行い、従来のコンソールの使用をオフにしてください。

4-1.コマンドプロンプトを起動する

コマンドプロンプトを起動します。

4-2.プロパティー画面の表示

タイトルバーを右クリックして表示されるメニューから「プロパティー」をクリックし、コマンドプロンプトのプロパティー画面を表示します。

4-3.従来のコンソールをオフにする

「従来のコンソールを使う」をオフにする


「OK」ボタンをクリックし、コマンドプロンプトを再起動してください。

5.Windowsをアップデートした後、Error: 0x80040154が発生するときは 

「Windows」をアップデートした後、「Error: 0x80040154」が発生するときは、「WSL」を再度有効にしてください。

「WSL」は「Windows」のアップデート中無効になります。
そのため環境によってはこのエラーが発生します。

「WSL」を再度有効にする方法は、「Bash on Ubuntu on Windows」のインストール手順と同じです。

以下を参考にして「WSL」を有効化してください。


6.言語設定を変更するには

「Bash on Ubuntu on Windows」インストール時、「bash」の言語設定は「Windows」の言語設定と同じになります。

つまり日本語環境の「Windows」から「Bash on Ubuntu on Windows」をインストールすると、「bash」の言語も日本語になります。

「bash」で使用する言語を後から変更するには、「bash」内で「update-locale」コマンドを実行します。

例えば「bash」を英語環境に変更したいときは、以下のコマンドを実行します。

sudo update-locale LANG=en_US.UTF8

bash.exeの再起動が必要

言語設定を変更した後その変更を反映するには、「bash.exe」の再起動が必要になります。
つまり一旦すべての「bash」を閉じ、再度「bash」を起動してください。

7.システムの復元をした後、インストールに問題が発生したときは

「Windows」のシステムの復元を行った後、「Bash on Ubuntu on Windows」のインストールに問題が発生したときは、以下の手順を実行します。

7-1.フォルダーの削除

以下のフォルダーを削除します。

%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

デフォルトの環境では、以下のフォルダーになります。

C:\Windows\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

7-2.WSLの有効化

「WSL」が無効になっている場合は、まず「WSL」を有効にしてください。

7-3.PCの再起動

PCを再起動します。

7-4.Ubuntuの完全なアンインストール

コマンドプロンプトから以下のコマンドを実行し、「Ubuntu」環境を完全にアンインストールします。

lxrun /uninstall /full

7-5.のインストール

以下を参考にして、「Bash on Ubuntu on Windows」をインストールします。


8.インターネットにアクセスできないときは

一部のファイアーウォールソフトとの相性が悪く、「WSL」によるインタネットへのアクセスを遮断してしまいます。

「WSL」を利用しているユーザーから、以下のファイアーウォールソフトを利用すると、「WSL」がインターネットにアクセスできなくなる現象が報告されています。

  1. Kaspersky
  2. AVG
  3. Avast

ファイアーウォールをオフにするか、別のソフトを利用するなどユーザー側で対応が必要です。

9.ping実行時に権限がないと言われるときは

「ping」実行時にパーミッションエラー(Permission Denied)が出るときは、以下の方法で回避します。

9-1.Anniversary Updateを利用している場合

「Anniversary Update」を利用している場合、「WSL」で「ping」を実行するには管理者権限が必要になります。


そのため管理者として実行したコマンドプロンプトやPowerShellから「ping」を実行する必要があります。


9-2.ビルド14926以降を利用している場合

この問題は解決されており、管理者として実行していないコマンドプロンプトやPowerShellから「ping」を実行することができます。

10.Ubuntu環境を再インストールするには

色々いじり過ぎて「Ubuntu」環境を壊してしまった場合や、「Ubuntu」環境をクリーンな環境にリセットしたい場合は、「Ubuntu」環境を再インストールすると良いでしょう。

「Ubuntu」環境の再インストール方法は、以下を参考にしてください。



関連記事一覧
オプション