WSLをショートカットキーから起動できるようにする

# デュアルブート環境の危険性
これまでずっと古いPCにLinux(Ubuntu)をインストールして利用していました。最近新しくPCを買い替えまして、当初はWindowsとUbuntuのデュアルブート環境で運用しようと考えていたのですがあまりおすすめはされていませんでした。

<details><summary>以下詳細</summary>
<div>どうやら下記の記事によると

 - https://slacknotebook.com/os-dual-boot-is-a-bad-idea/
 
 >ほとんどの場合、Windowsが入ったシステムにあとから Linux をインストールする形になる。だから GRUB が WBR と取っ手変わりインストールされることになる。しかしWindowsアップデートがWindows  Boot Managerを自動的に復元してしまう場合がある。こうなった場合、アクセス不能な意味を成さない Linux パーティションがドライブに残ることになる。

また

- https://yukituna.com/2024/

では 

>最大にして唯一の理由は、システムトラブルのリスクです。
先日のWindowsアップデート直後から、ある特定の操作をするとフリーズしてブルースクリーンが表示されるようになってしまいました。


とのことで
デュアルブート環境を構築するとWindowsUpdate実行時にブートローダーが破損してしまう恐れがあるそうです。

通常、PCを起動するとUEFI(BIOSのようなもの)がCドライブ上のブートローダーを呼び出してOSを読み込みます。このブートローダーがWindowsとLinux系OSとでは仕様が異なるようでWindowsではWBR(Windows Boot Manager)、Linux系OSではGRUB2というブートローダーが使われます。

デュアルブート環境を構築するとき、多くの場合はWindows搭載のPCにLinux系OSをインストールすると思います。デュアルブート環境の構築に成功するとPC起動時に先述したGRUB2のUIからWindowsかLinux系OSを選択してロードできるようになります。しかしこの後にWindowsUpdateを行ってしまうと、WBRを復元してしまいます。そうなってしまうとLinux系OSが読み込めまくなります。またWBRがきちんと復元されないこともあり、ブルースクリーンになることもあります。デュアルブート自体は自己責任で行えますが、現状でこれを行うのは非常に危険です。</div></details>

##WSLの利用
私の場合はPCがラップトップでありHDDの増設も厳しかったためWSL(Windows Subsystem for Linux)を使ってUbuntu環境を実現することにしました。WSLはMicrosoft storeから無料で提供されています。
WSLのubuntuは標準ではX11というGUIが実装されていませんのでubuntuの端末と大体同じように扱えます。
ただ、ちょくちょくubuntuを使っていた身としては

- ショートカットキーでCLIを起動したい

みたいに思ってました。Windowsの標準仕様に明るくないこともあって結構苦戦したので以下に手順を記しておきます。

参考までに私の環境は

 - Windows10 Home
 - Core i5 8th Gen
 - 8GB RAM
 - WSL(Ubuntu18.04LTS)

で行った結果です。

##ショートカットキーの設定方法 :目次
以前どこかでWindowsの標準のショートカットであればショートカットキーの設定ができたのを読んだことがあったのでそれを使って設定をします。大まかな手順としては

1. WSLのUbuntu18.04をMicrosoft Storeからインストール
2. WindowsAppsのアクセス権獲得
3. ショートカットの作成
4. WindowsAppsのアクセス権返却
5. ショートカットにショートカットキーの設定

という感じになります。

###1. WSLのUbuntu18.04をMicrosoft Storeからインストールする
Microsoft StoreからUbuntu18.04をインストールします。こちらは各自のお好みのディストリビューションで大丈夫だと思います。

###2. WindowsAppsのアクセス権を獲得する
ubuntu1804.exeのショートカットを作成するためにWindowsAppsのアクセス権を獲得します。Ubuntuアプリケーションはスタートメニューから"ファイルの場所を開く"でのアクセスはできません。ファイルの場所はUbuntuアプリを開いて、ウィンドウの上側の縁で
[右クリック] → [プロパティ] と進んで表示されたプロパティの縁からなんとなく確認できました。

画像ではこんな感じです。

![tomoshin01@X1Carbon_ ~ 2020_02_29 15_12_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588792/68d8556b-c048-c601-c170-8ec9c27c7f86.png)


Ubuntuアプリケーションの実体は、特に変更していなければ

```ubuntu1804.exe
"C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2019.522.0_x64__79rhkp1fndgsc\ubuntu1804.exe"
```


にあります。途中のWindowsAppsのフォルダにアクセス制限がかかっているのでまずこちらを解除する必要があります。WindowsAppsにアクセスしようとすると下記のようなポップアップが出てきます。

![Program Files 2020_02_29 14_56_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588792/b93f7cac-60a5-3502-b5d3-3cceddbdc0e6.png)

ここから

[続行] → [セキュリティ タブ] →　[詳細設定] →　**[変更]**

と進みます。ユーザーまたはグループの選択というウィンドウがでますので、
"選択するオブジェクトを入力してください"という欄に自身のマイクロソフトアカウントか、紐づいているメールアドレスを入力します。その後

[名前を確認] → [適用] → [OK]

と進みます。こうすることでWindowsAppsにアクセスできるようになります。

###3. Ubuntuショートカットを作成する

次にUbuntuのショートカットを作成します。こちらは簡単で上記ディレクトリのubuntu1804.exeを

[右クリック] → [ショートカットの作成] 

で作成が完了します。

###4. WindowsAppsのアクセス権を返却する

少し調べたところWindowsAppsフォルダはTrustedInstallerと呼ばれるかなり上位の権限をもつプリンシパルが管理をしています。後々面倒なことになるかもしれないのでここでまたアクセス権をTrustedInstallerに返しておきます。

WindousAppsを[右クリック] → [プロパティ] → [セキュリティ] → [詳細設定] → [変更] 

まで行き、"選択するオブジェクトを入力してください"という欄に今度は

NT Service\TrustedInstaller

と入力します。そうすると自動的に

TrustedInstaller

に変換されるので[名前の確認]をして[適用]→[OK]としておきます。

###5. ショートカットにショートカットキーの設定

最後にショートカットにショートカットキーを設定します。一つ、注意をしなければいけないのは**ショートカットをデスクトップに設置しないとショートカットキーは機能しません**ので気を付けてください。

ショートカットを[右クリック] → [プロパティ] → [ショートカット]から

ショートカットキーを割りあてて[適用] → [OK]で作業終了です。

これでショートカットキーからLinuxが起動できるようになります。