memo
Windows10
WSL
BoW

【永遠にWIP】Windows Subsystem Linux が Windows10 1709(Fall Creators Update) でどうなったか見るmemo Ver. 20171104

タイトル長い…、けど一見さんには正式名称で書いておかないと、検索効率悪そうなので敢えて長いままで。

このページについて

以前 【永遠にWIP】Bash on Ubuntu on Windows の 環境整備等あれこれ - Qiita というのを書いたが、Win10 も 1709 になってかなり勝手が変わったので、

  • どこが1703と同様な操作で行けるのか
  • どこが変わったか

を中心にメモすることにする

  • 尚、ここではWin10のバージョン表記を以下のように略す
項目名 表記
前記事のバージョン(Windows10 Creators Update) Win10 1703
今回取り上げるバージョン(Windows10 Fall Creators Update) Win10 1709

忙しい人向けのまとめ(下の説明を見るのがだるい人向け、更新忘れるかも)

  • インストールがストアからのインストールOnlyっぽいよ!
  • アンインストールはCLIでも行けるよ!
  • Powershellからの起動コマンドが、bashからディストリビューション毎に代わるようになったよ!
  • その他は大きく変わってないみたいよ!(自分が調べた限り)

以下メモ(雑多)

Windows Subsystem for Linux の有効化

  • Win10 1703の時は betaがついていた所にbeta無しの 「Windows Subsystem for Linux」 が出来上がっているので同様に下記で行ける。
  • 「コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化」を選び

    • 「Windows Subsystem for Linux」を有効化しておく。
  • 尚ググった所、PowerShellのコマンドレットでも行けるらしい?(未確認なので自己責任でどうぞ)

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
DISM.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux

インストール方法

  • Win10 1703 の時は lxrun というお手軽インストール/アンインストール用CLIツールがあったが、 Win10 1709 になり非推奨になった。
  • Win10 1709 からは ストアからのインストール(GUI) が 唯一の経路にな っている模様だ(CLIに同様のことができる該当のツールがない)
  • インストール後の初期ユーザの設定は実際にディストリビューションを初回起動すると、対話形式でCLIで聞いてくる
    • この辺スキップできる機構は欲しかった所。(win10 1703 の lxrunはそれができた)

アンインストール方法

  • Win10 1703 の時は lxrun /uninstall コマンドでCLIから実行が可能だった。
  • Win10 1709 になるとAppx Module Cmdlets のコマンド群が使える。(Get-AppxPackageや Remove-AppxPackage)
    • 例えばSUSE Leap42をアンインストールしたいときは下記コマンドでアンインストールは可能。事前にGet-AppxPackage のみを実行して、余計なアプリを消すことの無い用に確認しておくとよい。
Get-AppxPackage -Name *SUSE* | Remove-AppxPackage
  • 実行すると何もログが出ずにプロンプトが返ってくる。
PS C:\ > Get-AppxPackage -Name *SUSE*

Name              : 46932SUSE.openSUSELeap42.2
Publisher         : CN=15720A30-FA72-4BF5-8077-C1376E0B561C
Architecture      : X64
ResourceId        :
Version           : 1.1.0.0
PackageFullName   : 46932SUSE.openSUSELeap42.2_1.1.0.0_x64__022rs5jcyhyac
InstallLocation   : C:\Program Files\WindowsApps\46932SUSE.openSUSELeap42.2_1.1.0.0_x64__022rs5jcyhyac
IsFramework       : False
PackageFamilyName : 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
PublisherId       : 022rs5jcyhyac
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

PS C:\ > Get-AppxPackage -Name *SUSE* | Remove-AppxPackage
PS C:\ > Get-AppxPackage -Name *SUSE*
PS C:\ >

ディストリビューションの起動や 初期ユーザ設定

  • Win10 1703 の時にも行っていた初期ユーザ設定は Win10 1709でも健在。しかもインストールディストリビューション毎に個別の設定が必要になった(UbuntuとopenSUSEはそれぞれ個別に設定を入れる必要がある)
  • ディストリビューションの起動の方法は以下の何れか
    • スタートメニューから UbuntuOpenSUSE Leap 42 等の項目をクリック
    • パスが通っている所に起動用のexeがいるので、Powershell等から Ubuntu.exe . openSUSE-42.exe の実行でも実行可能。
PS C:\ > openSUSE-42.exe
Installing, this may take a few minutes...
Installation successful!
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: xxxxxx
New password:
Retype new password:
passwd: password updated successfully
Use same password for root user?
Type "y" to approve, any other key to reject: y
Default UNIX user set to: xxxxxx
xxxxxx@PC:~>

初期ユーザのsudo 設定

  • ここはwin10 1703 の時からwin10 1709 になっても変わらずです。下記で行けます。
sudo bash -c "echo \"[デフォルトユーザ名] ALL=(root) NOPASSWD: ALL\" >> /etc/sudoers.d/nonpass_sudo"
sudo chmod 0440 /etc/sudoers.d/nonpass_sudo
sudo visudo -c
  • 最後の sudo visudo -c にてエラーが出なければOK。壊れたらインストールからやり直し

これ以降の細かいの

参考記事系