Windows 10搭載のPCにUbuntu 18.04.3 LTSをインストールし、rEFIndを利用してデュアルブートする

2019/08/22: 一部修正・スクリーンショットの追加
2019/10/14: Shimへのリンクのミスを修正
## 注意
- 備忘録程度なので、表現が雑なところや間違っているところがある可能性があります。
- ここに書いたことと同じことをする場合は必ず**自己責任で**お願いします。

## 作業した環境
- 作業用PC(これはあってもなくてもOK)
- UbuntuをインストールするWindows 10搭載PC（使ったPCは Dell Inspiron 7386）
- USB(8GB)
- 十分な速度のインターネット回線

## インストールするPCについて
- インストール先は**NVMe接続の**M.2 SSD
- セキュアブートは**有効**
- CSMは**無効**(UEFIブート)
- デバイスの暗号化(BitLocker)は解除済み(もともと有効だったが、Ubuntuのインストールより前に解除していた)

## 手順
### 1. Ubuntuインストールメディア(Bootable USB)の作成
USBは使っていなかった8GBのUSBを利用。
**※メディア作成の時にUSBの中のデータはすべて削除されるので注意。**

#### ISOファイルをUSBに書き込むソフト「Rufus」のダウンロード
Rufusを[ダウンロード](https://rufus.ie/)し、適当なところに置いておく。

#### Ubuntu 18.04.3 LTS のダウンロード
Ubuntuの[公式サイト](https://jp.ubuntu.com/download)から、Ubuntu Desktop 18.04.3 LTSのインストーラーイメージ(ISO)をダウンロードし、適当なところに置いておく。

#### Rufusを使ってUSBにUbuntuのインストーラーイメージを書き込む
デバイスから書き込むUSBを選択し、「ディスクまたはISOイメージ」の右の「選択」からイメージISOを選択し、パーティション構成を「GPT」、ターゲットシステムを「UEFI(CSM無効)」に設定して書き込む。
書き込みが終わったら、USBを取り外す。
![Rufus Screenshot](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180053/325a2089-5972-28a1-56f5-64970fbedae9.png)

### 2. パーティションの分割
パーティションの分割は、Windowsのパーティションから128GB切り出した。
フォーマットはせず、空き領域のままにしておいた。
分割方法は省略。

### 3. Ubuntuのインストール
NVMe接続のM.2 SSDにインストールするため、ちょっと特殊だった。
#### 3-1. USBから起動する
USBをPCに挿し、UEFIのブートオプション(このPCでは起動時にF12)からUSBを選択し、白文字のGRUB 2のメニューが表示される。
`Install Ubuntu`の項目を選択**せず**にEキーを押して出てきた画面をスマホなどで撮っておき、Escキーで前の画面に戻ってCキーでGRUB Shellに移動して、さっき撮った写真を元に1行ずつ入力していく。
**この時、`linux~`から始まる行の時に、最後の`quiet splash ---`を削除して`nvme_load=YES`に書き換える。**
入力し終えたら、`boot`と入力しEnterキーで実行すると見慣れたUbuntuのインストーラーが起動する。
#### 3-2. インストール先の指定
言語などの指定を進めていくと、インストール先を指定する画面が表示されるので、一番下の「それ以外」を選択する。
すると、パーティションを選択する画面が表示されるので、2.で分割しておいたパーティションを選択しインストール。

### 4. rEFIndのインストールとセキュアブート対応
ここからはインストールしたUbuntuで作業している。
rEFIndはセキュアブートに対応しているが、少しわかりにくかった。
[rEFInd(A binary zip file)](http://www.rodsbooks.com/refind/getting.html)と[Shim(shim-signed.tgz)](http://www.codon.org.uk/~mjg59/shim-signed/)をダウンロードし、両方とも展開する。
rEFIndを展開したフォルダまで端末で移動し、rEFIndをインストールする。
この時、展開したShimの中にあるshim.efiを指定する必要がある。

```bash:bash
$ cd /path/to/refind
$ sudo ./refind-install --shim /path/to/shim.efi
```

そして再起動する。
うまくいけば、`Continue Boot`、`Enroll key from disk`、`Enroll hash from disk`の3つが表示されるので、`Enroll key from disk`を選択。
すると、このような画面になるはず。
![Shim UEFI Key Management ScreenShot](http://www.rodsbooks.com/refind/MokManager1.png)
↑ rEFInd公式より[引用](http://www.rodsbooks.com/refind/secureboot.html)

この中を探していくと、`EFI -> refind -> keys`があり、`keys`の中にcerファイルがあるので、refind.cerを選択し、0と入力しEnter。
そのあとさっきの3つの項目が表示されるので、`Continue Boot`を選択。
するとPCが再起動して、rEFIndのメニューが表示され、WindowsとUbuntuのロゴが表示されるはず。
この状態でWindowsのロゴを選択すると、Windowsが何事もなかったかのように起動してくる。
Ubuntuのロゴを選択すると、verificationなどとセキュアブートのエラーを吐かれるので、rEFIndのメニューに戻り、下に並んでいる小さいアイコンの内、右から2つ目の鍵アイコンを選択すると、前の3つの項目のメニューが表示されるので、同じように`Enroll key from disk`から`keys`まで移動し、canonicalから始まるcerファイルを選択する。
そしてrEFIndのメニューからUbuntuを選択すると、GRUB 2のブートメニューが表示されるので、`Ubuntu`を選択すればUbuntuが起動する。

テーマなどを入れれば自分のUbuntuの完成。
![Desktop Screenshot](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180053/955d478d-16ea-8595-a0af-3928ffc6818a.png)

## 心配なところ
- Windows Updateが入り、Windowsが再起動したとき、rEFIndを介せずWindows Boot ManagerからWindowsが起動しそう

## 参考にしたサイト
Windows10とUbuntu18.04をデュアルブートする。
[https://qiita.com/yo_kanyukari/items/2a944a300db22482c696](https://qiita.com/yo_kanyukari/items/2a944a300db22482c696)
The rEFInd Boot Manager
[http://www.rodsbooks.com/refind/](http://www.rodsbooks.com/refind/)
PCIe M2ドライブを使用したUbuntuのシステムへのロード
[https://www.dell.com/support/article/jp/ja/jpdhs1/sln299303/loading-ubuntu-on-systems-using-pcie-m2-drives?lang=ja](https://www.dell.com/support/article/jp/ja/jpdhs1/sln299303/loading-ubuntu-on-systems-using-pcie-m2-drives?lang=en)