Windows 10のBash on Ubuntu on Windows環境を初期化/再インストールするTech TIPS

Windows 10上にインストールしたLinux/Ubuntu環境を削除したり、元のクリーンな状態に戻したりするにはlxrunコマンドで操作するとよい。

» 2016年10月05日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 10バージョン1607以降(64bit版のみ)



解説

【2018/07/21追記】
「Bash on Ubuntu on Windows」とその後継の「WSL(Windows Subsystem for Linux)」について

 「Bash on Ubuntu on Windows」はLinux互換機能の開発当初の名称であり、現在では「WSL(Windows Subsystem for Linux)」として正式にリリースされている。本TIPSでは、古いBash on Ubuntu on Windowsの初期化/再インストールについて述べているが、現在の新しいWSLにおけるインストールや初期化の方法については、以下の記事を参照のこと。


 Windows 10のバージョン1607で導入された「Bash on Ubuntu on Windows」を使っていると、例えば次のような理由などから再インストールしたくなることがある。

  • パッケージの追加や設定の変更などを繰り返しているうちに、システムの状態が不安定になったので、元に戻したい
  • ファイルを削除し過ぎて起動しなくなったので、初期状態に戻したい
  • 最初に設定したパスワードやrootのパスワードなどを忘れてしまって、ログインできなくなったり、スーパーユーザーとして実行できなくなったので再インストールしたい
  • (将来の話だが)新しいバージョンのBash on Ubuntu on Windowsがリリースされたので、新しい環境に更新して、一から作業などをやり直したい

 Bash on Ubuntu on Windowsの最初のインストールはコントロールパネルの「プログラムの追加と削除」から行うため、そこでいったん削除してから再インストールしてもよい。だがこれだと、システムの再起動が必要だったり、ユーザーごとの環境(作成したファイルシステムなど)が削除されずに残るなど、面倒である。

 Bash on Ubuntu on Windowsの再インストールを行うには、あらかじめ用意されているWindows Subsystem for Linux(WSL)の管理用コマンドを利用する。本TIPSではその方法を紹介する。

 Bash on Ubuntu on Windowsの概要や具体的なインストール方法などについてはここでは触れないので、以下の記事を参照していただきたい。

操作方法

●lxrunコマンドでWindows Subsystem for Linuxを管理する

 Bash on Ubuntu on Windowsはユーザーごとに個別にインストールして利用する機能である。このインストールやアンインストールを行うために「lxrun」というコマンドが用意されている。このコマンドはBash on Ubuntu on Windowsをインストールするとシステムに追加される。

C:\>lxrun /? ……ヘルプの表示
LX サブシステムの管理操作を実行します

使用法:
    /install - サブシステムをインストールします
        オプションの引数:
            /y - ユーザーに許可を求めません
    /uninstall - サブシステムをアンインストールします
        オプションの引数:
            /full - 完全アンインストールを実行します
            /y - ユーザーに許可を求めません
    /setdefaultuser - bash を起動するサブシステム ユーザーを構成します。ユーザーが存在しない場合は作成されます。
        オプションの引数:
            username - ユーザー名を指定します
            /y - ユーザー名が指定された場合、パスワードの作成を求めません
    /update - サブシステムのパッケージのインデックスを更新します

C:\>



●Bash on Ubuntu on Windows環境を削除する

 Bash on Ubuntu on Windowsを削除するには「lxrun /uninstall」コマンドを実行する。この時、ユーザーごとのLinuxファイルシステムなど(%LOCALAPPDATA%\lxss以下)も全て削除して、完全にクリーンな状態にするには/fullオプションも付けて実行する。このオプションを付けないと、ユーザーのホームディレクトリやBash用のプロファイル(.profileや.bashrcなど)が残り、次回再インストール後にもそのまま利用される。

※/fullオプションなしの場合
C:\>lxrun /uninstall ……オプションなしの削除
これにより Windows 上の Ubuntu がアンインストールされます。
Ubuntu 環境および次の項目を除くすべての変更内容と新しいアプリケーションが削除されます。

C:\Users\user01\AppData\Local\lxss\home ……これらのデータは削除されずに残る
C:\Users\user01\AppData\Local\lxss
oot

続行するには、"y" を入力してください: y ……確認入力
アンインストールしています...

C:\>

※/fullオプションを付けた場合
C:\>lxrun /uninstall /full ……全て削除させる
これにより Windows 上の Ubuntu がアンインストールされます。
Ubuntu 環境およびすべての変更内容、新しいアプリケーション、およびユーザー データが削除されます。
続行するには、"y" を入力してください: y ……確認入力
アンインストールしています...

C:\>

※/fullと/yオプションを付けた場合
C:\>lxrun /uninstall /full /y ……確認なしに全て削除される
これにより Windows 上の Ubuntu がアンインストールされます。
Ubuntu 環境およびすべての変更内容、新しいアプリケーション、およびユーザー データが削除されます。
アンインストールしています...

C:\>



 /fullオプションを付け忘れて実行した場合は、/fullを指定してもう一度「lxrun /uninstall /full」を実行すればよい。さらに/yオプションを付けると、確認なしで削除される。

 なお、このコマンドで削除されるのは、lxrunを実行したユーザーの環境だけである。他のユーザーのBash on Ubuntu on Windows環境を削除するには、そのアカウントでサインインして個別に実行する。

●Bash on Ubuntu on Windows環境を再インストールする

 新しくBash on Ubuntu on Windows環境を作成するには「lxrun /install」を実行する。この時/yオプションを付けておくと、途中で何も入力・指定することなくインストール作業を完了できる(/yがない場合は、ユーザー名とパスワードを指定する)。その場合、WSL環境用のユーザー名は現在サインインしているユーザーアカウント名、パスワードは「なし」となる。

※/yオプションなしの場合
C:\>lxrun /install ……デフォルト設定でインストールさせる
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

続行するには、"y" を入力してください: y ……確認入力
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: unixuser01 ……ログインユーザー名の指定。これはWSL/Bash上でのみ有効なユーザー名
新しい UNIX パスワードを入力してください: ……パスワードの入力
新しい UNIX パスワードを再入力してください: ……パスワードの確認入力
passwd: password updated successfully
インストールが正常に終了しました

C:\>bash ~  ……bashを起動してみる
unixuser01@DESKTOP-4TV2I57:~$  ……bashのプロンプト。ユーザー名が作成したものになっている

※/yオプションを付けた場合
C:\>lxrun /install /y ……ユーザー入力なしにインストールさせる
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
インストールが正常に終了しました

C:\>



 /yオプションを付けてインストールすると、ログインするユーザー名はrootになる。

●Bash on Ubuntu on Windowsにログインするユーザー名を変更する

 Bashを起動すると、Bash on Ubuntu on Windowsのインストール時に指定したユーザー名でログインする。ただしこのユーザー名はBash on Ubuntu on Windows中でのみ有効なユーザー名となる。

 Bashへのログイン時のユーザー名を変更するには「lxrun /setdefaultuser <ユーザー名>」を実行する。ユーザー名が存在していない場合は新規作成されるが、既に存在している場合は、そのユーザーに切り替わる。

※ユーザー名を省略した場合(ユーザー名とパスワードを問い合わせるプロンプトが表示される)
C:\>lxrun /setdefaultuser ……ログインユーザー名を新規作成させる
既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: user02 ……ユーザー名
新しい UNIX パスワードを入力してください: ……パスワードの指定
新しい UNIX パスワードを再入力してください: ……パスワードの確認入力
passwd: password updated successfully
既定の UNIX ユーザーが次に設定されました: user02 ……設定されたユーザー名

C:\>bash ~  ……bashを起動してみる
user02@DESKTOP-4TV2I57:~$ exit  ……指定したユーザー名になっている
exit

C:\>

※ユーザー名を指定した場合(パスワードを問い合わせるプロンプトが表示される)
C:\>lxrun /setdefaultuser user03 ……ユーザー名を指定して実行
新しい UNIX パスワードを入力してください: ……パスワードの入力
新しい UNIX パスワードを再入力してください: ……パスワードの確認入力
passwd: password updated successfully
既定の UNIX ユーザーが次に設定されました: user03

C:\>

※ユーザー名を指定して、さらに/yオプションを付けた場合(パスワードなしになる)
C:\>lxrun /setdefaultuser user04 /y ……ユーザー入力なしにインストールさせる
既定の UNIX ユーザーが次に設定されました: user04

C:\>



「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。