ubuntu 18.04 を外付けHDDにインストールする

# 目的
普段、Windows 10を使っているパソコンで、外付けHDDを接続したときだけ、ubuntu 18.04が使える環境を作成します。外付けHDDを外せば、通常のWindowsマシンとして使えるので、安心してubuntu 18.04を導入できます。
# 想定環境
- Windows 10のパソコン
- 外付けHDD
- USBメモリ

# 手順
1. ubuntu 18.04のインストールUSBメモリを作成
2. 外付けHDDにubuntu 18.04をインストール
3. (オプション) NVIDIA ドライバーをインストール

# ubuntu 18.04のインストールUSBメモリを作成
- [Ubuntu 18.04 LTS 日本語 Remix リリース](https://www.ubuntulinux.jp/News/ubuntu1804-ja-remix)のいずれかのISOイメージをダウンロードする。
- USBメモリを挿入する
- 窓の杜から[Rufus](https://forest.watch.impress.co.jp/library/software/rufus/)をダウンロードして起動し、以下の設定でUSBメモリにコピーする。Rufusはインストールも不要なので使い勝手がよいです。
    - デバイスに、USBメモリが選択されていることを確認
    - [選択]ボタンをクリックして、ダウンロードしたISOイメージを選択する。
    - 他の設定はそのままで、[スタート]ボタンをクリックする。<img width="308" alt="Rufus.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/331144/31fa5813-fe58-10c2-e36f-33540e9b7c55.png">
    - 以下の警告が出るので、[はい]ボタンをクリックする。<img width="313" alt="rufuswarning.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/331144/396d908b-be3b-bdc5-c6a2-2025f769f969.png">
    - 以下の警告が出るので、ISOイメージモードで[OK]ボタンをクリックする。<img width="392" alt="rufusiso.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/331144/ecc45187-ecdc-bf39-a245-2db7edb7b82a.png">
    - 以下の警告が出るので、[OK]ボタンをクリックする。<img width="311" alt="rufusverify.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/331144/dc38b28b-427d-6b71-3237-63527e344cc6.png">
    - 以上で、USBメモリに ubuntu 18.04のISOイメージが書き込まれました。
    - Rufusの画面を閉じて、Rufusと、ISOイメージのファイルはごみ箱に捨てても大丈夫です。

# 外付けHDDにubuntu 18.04をインストール
- 内蔵HDDを一時的に取り外す。
- 外付けHDDを接続する。
- USBメモリを接続する。
- USBから起動できるように設定する
- 再起動して、USBメモリから起動させる
- あとは通常通り、インストール
- 内蔵HDDを戻す。
- これで、外付けHDDを接続した場合のみ、外付けHDDから起動できるようになります。

#  (オプション) NVIDIA ドライバーをインストール
これは、かなり難易度の高い作業です。失敗すると、真っ暗な画面で、２度と立ち上がらなくなり、最初から再インストールすることになります。

## NVIDIA Driver
自動でドライバーをインストール (GUIからやる場合は、ソフトウェアとアップデート　→　追加のドライバー　→　NVIDIA driver...)

```shell
sudo ubuntu-drivers autoinstall
```
再起動

```shell
sudo reboot
```
インストール確認

```shell
nvidia-smi
```
## CUDA Toolkit 10.1
CUDAとは、Compute Unified Device Architectureの略です。並列コンピューティング アーキテクチャで、GPUを使った高速な計算ができるようになります。

パッケージを[ダウンロード](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal) 後、以下でインストール

```shell
sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb
```
インストール完了ログの最後に書かれているキーをインストールするコマンドを実行

```shell
sudo apt-key add /var/cuda-repo-10-1-local-10.1.105-418.39/7fa2af80.pub
```

リポジトリ情報を更新

```shell
sudo apt update
```

ようやくcudaをインストール

```shell
sudo apt install cuda -y
```

再起動

```shell
sudo reboot
```

パスを追加

```shell
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
```
```shell
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
```
動作確認 [link](https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html)

```shell
cuda-install-samples-10.1.sh ~
```
```shell
cd ~/NVIDIA_CUDA-10.1_Samples/5_Simulations/nbody
```
```shell
make
```
```shell
./nbody
```
![Screenshot from 2019-03-03 22-43-03.png](https://qiita-image-store.s3.amazonaws.com/0/331144/1076a73a-cdfd-cec3-4a20-89b6638760bc.png)

バージョン確認

```shell
nvidia-smi

(以下の結果となりました。　表示される内容、バージョンはGPUによって異なります)

Sun Mar  3 22:46:48 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.39       Driver Version: 418.39       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX TIT...  On   | 00000000:01:00.0  On |                  N/A |
| 34%   69C    P0    80W / 250W |    908MiB / 12209MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1160      G   /usr/lib/xorg/Xorg                           555MiB |
|    0      1401      G   /usr/bin/gnome-shell                         227MiB |
|    0      1946      G   ...uest-channel-token=16282607321716108020   103MiB |
+-----------------------------------------------------------------------------+
```
Driverのバージョンも、390　→　418.39 に上がりました。