ここから本文です

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

@IT 10/5(水) 12:59配信

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

・パッケージの追加や設定の変更などを繰り返しているうちに、システムの状態が不安定になったので、元に戻したい
・ファイルを削除し過ぎて起動しなくなったので、初期状態に戻したい
・最初に設定したパスワードやrootのパスワードなどを忘れてしまって、ログインできなくなったり、スーパーユーザーとして実行できなくなったので再インストールしたい※参考「Bash Shell on Windows 10 再インストール方法」(MSDNブログ)
・(将来の話だが)新しいバージョンの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の概要や具体的なインストール方法などについてはここでは触れないので、以下のTIPSを参照していただきたい。

・TIPS「Windows 10のLinux/Ubuntu互換環境でbashを使う」(http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html)
・TIPS「Windows 10のBash on Windowsで、apt-getを使ってパッケージをインストールする」(http://www.atmarkit.co.jp/ait/articles/1608/24/news038.html)


●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:\>
--

[打越浩幸,デジタルアドバンテージ]

最終更新:10/5(水) 12:59

@IT

なぜ今? 首相主導の働き方改革