WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた  (openSUSEインストール編)

# WSL (Windows Subsystem for Linux) を使ってWindows 10でopenSUSEを動作させみた シリーズ
 * 第1弾 : 本記事
 * 第2弾 : [ユーザ追加編] (http://qiita.com/ApricotSugar/items/8a6f1057939e50492a94)
 * 第3弾 : [tcsh編] (http://qiita.com/ApricotSugar/items/8b842b8dfd5e6312c019)
 * 番外編1 : [SDカード領域の参照] (http://qiita.com/ApricotSugar/items/d0afc32754fc78b4ad9c)

#1. はじめに
WSL(Windows Subsystem for Linux)を使ってWindows 10でopenSUSEを動作させる方法がSUSE blogで紹介されていたので実際に入れてみました．
SUSE blogの記事によると，WSLのセットアップ後，UbuntuのユーザスペースをまるごとopenSUSEのユーザスペースに入れ替える方法で実現しているみたいです．

#2. インストール手順
##2.1 WSLの有効化とBash on Ubuntu on Windowsのインストール
インストールについては，[こちらの手順](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide)で行います．

##2.2 openSUSEのインストール
###2.2.1 システムアップデートの実行
```
$ sudo apt-get update
$ sudo apt-get dist-upgrade
```

###2.2.2 openSUSEのDockerイメージをダウンロード
```
$ wget -O openSUSE-42.2.tar.xz https://github.com/openSUSE/docker-containers-build/blob/openSUSE-42.2/docker/openSUSE-42.2.tar.xz?raw=true
```

###2.2.3 openSUSEユーザスペースを抽出
```
$ sudo mkdir rootfs
$ sudo tar -C rootfs -Jxf openSUSE-42.2.tar.xz
$ exit
```

上記コマンドを実行すると下記のような警告/エラーが発生します．

```
$ sudo tar -C rootfs -Jxf openSUSE-42.2.tar.xz
sudo: ホスト BLUE-OPAL の名前解決ができません
tar: dev/loop3: mknod 不能: 関数は実装されていません
tar: dev/full: mknod 不能: 関数は実装されていません
tar: dev/urandom: mknod 不能: 関数は実装されていません
tar: dev/console: mknod 不能: 関数は実装されていません
tar: dev/net/tun: mknod 不能: 関数は実装されていません
tar: dev/loop1: mknod 不能: 関数は実装されていません
tar: dev/tty1: mknod 不能: 関数は実装されていません
tar: dev/tty0: mknod 不能: 関数は実装されていません
tar: dev/tty4: mknod 不能: 関数は実装されていません
tar: dev/loop0: mknod 不能: 関数は実装されていません
tar: dev/zero: mknod 不能: 関数は実装されていません
tar: dev/tty: mknod 不能: 関数は実装されていません
tar: dev/random: mknod 不能: 関数は実装されていません
tar: dev/tty3: mknod 不能: 関数は実装されていません
tar: dev/tty2: mknod 不能: 関数は実装されていません
tar: dev/ptmx: mknod 不能: 関数は実装されていません
tar: dev/loop2: mknod 不能: 関数は実装されていません
tar: dev/null: mknod 不能: 関数は実装されていません
tar: 前のエラーにより失敗ステータスで終了します
$
```

~~画面キャプチャを取り忘れました~~

SUSE blogでは，警告を無視すると書かれていますので気にせずに行きましょう．
SUSE blogには，以下のように書かれています．
**Extract the openSUSE userspace (ignore any warnings) and exit the bash shell**

###2.2.4 Ubuntu rootfs のバックアップを行い，openSUSE rootfsをコピー
コマンドプロンプトまたは，PowerShellを立ち上げ，以下のコマンドを実行します．
* **管理者権限で行ってください**

```text:コマンドプロンプト
cd %localappdata%\lxss\
rename rootfs rootfs.ubuntu
move .\home\[Linux User]\rootfs .\
```

```text:PowerShell
cd C:\Users\[User Name]\AppData\Local\lxss\
mv .\rootfs -newName .\rootfs.ubuntu
mv .\home\[Linux User]\rootfs .\
```

###2.2.5 デフォルトユーザ(rootユーザ)の設定

```text:コマンドプロンプト/PowerShell
lxrun /setdefaultuser root
```

####2.2.5.1 lxrunコマンドについて
lxrun.exeは，WSLの管理を行うソフトウェアです．
このコマンドを利用することで，Ubuntu on Windowsのインストールやアンインストールを行うことができます．

 * lxrun コマンドリファレンス概要
 
| コマンド | 概要 |
|:--------|:-----|
|lxrun | WSLの管理に使用されるコマンド |
|lxrun /install | Ubuntu on Windowsをインストール |
|lxrun /uninstall | Ubuntu on Windowsをアンインストール |
|lxrun /setdefaultuser [User Name] | bashのデフォルトのUbuntuユーザー指定 |


###2.2.6 bashの起動

```
bash
# cat /etc/os-release
NAME="openSUSE Leap"
VERSION="42.2"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.2"
PRETTY_NAME="openSUSE Leap 42.2"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.2"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
```

<img width="734" alt="201702152246.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/d08fc3d2-6dad-12b9-612a-967b1f5ab802.png">



上記の結果が出力されれば成功です．

###2.2.7 アイコンなどの変更 (任意)

####2.2.7.1アイコンのダウンロード
SUSE blogに書かれているリンクからダウンロードをします．
link: [http://www.iconarchive.com/show/nuoveXT-icons-by-saki/Apps-suse-icon.html](http://www.iconarchive.com/show/nuoveXT-icons-by-saki/Apps-suse-icon.html) 

####2.2.7.2 アイコンの変更
```text:コマンドプロンプト
cd %localappdata%\lxss\
rename bash.ico Ubuntu.ico
rename Saki-NuoveXT-Apps-suse.ico bash.ico
```

```text:PowerShell
cd C:\Users\[User Name]\AppData\Local\lxss\
mv bash.ico Ubuntu.ico
mv /PATH/to/Saki-NuoveXT-Apps-suse.ico bash.ico
```

最終的なディレクトリ構造は，以下のようになります．
<img width="734" alt="201702152247.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/fb281dc1-3a99-e12d-d26c-3d05d26a88cd.png">


####2.2.7.3 名称の変更
「Bash on Ubuntu on Windows」の名称を変更するには，
エクスプローラーで「%AppData%\Microsoft\Windows\Start Menu\Programs」を開き，
「Bash on Ubuntu on Windows」の名前を変更することができます．
私は，SUSE blagと同じく「Bash on SUSE on Windows」に変更しました．

<img width="590" alt="201702152241.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/42242/bfbc7da3-bb03-d43f-cf16-dfecb7b85ef6.png">




#3. まとめ
今回は，WSLを使ってWindows10でopenSUSEを動作させてみました．
現状では，openSUSEが動作していますが，rootユーザしか存在しない状態となっています．
そのため，openSUSE上にローカルユーザの作成が必要になります．
次回は，ローカルユーザの作成方法の紹介と起動ユーザの変更方法を紹介し~~たいと考えてい~~ます． ~~（なるべく早めに紹介したいと思っています．）~~





#4. 参考文献
 * [SUSE blog - Make Windows green again – Part 1](https://www.suse.com/communities/blog/make-windows-green-part-1/)
 *  [Bash on Ubuntu on Windows - Command Reference](https://msdn.microsoft.com/en-us/commandline/wsl/reference)