外付けSSDにUbuntu 20.04 LTSをインストールする

# はじめに
WSL2ではWindows上で「完全なLinux」が動かせるとされていますが、USBデバイスを使用したり外部と通するための設定でハマりやすいです。そこで内蔵SSDにWindows11がインストールされている環境下で、外付けSSDにUbuntu20.04をインストールします。

:::note warn
インストール手順を間違えると、Windowのデータが消えた起動しなくなる場合もあるようです。Ubuntuインストール時に内蔵SSDを外すことでリスク回避できます。
:::

筆者はIODATAのスティック型SSDを使用しました。

https://www.iodata.jp/product/hdd/ssd/sspc-us/

# ライブUSBの作成
Ubuntuをインストールするために、ライブUSB（Ubuntuのインストーラ）を作成します。USBメモリは容量4GB以上のものを使用します。

下記リンクの「__64-bit PC (AMD64) desktop image__」からISOファイルをダウンロードします。

http://releases.ubuntu.com/20.04/

Refusを用いてISOファイルをUSBメモリに書き込みます。下記リンクの「__Rufus ○.○__」から最新版をダウンロードします。

https://rufus.ie/

PCにUSBメモリを挿して「__rufus-○.○.exe__」を実行し、デバイスとISOファイルを選択して「__スタート__」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/ade3dc5d-3464-f1ac-538f-6bb96277ee8b.png)
状態が「準備完了」になったらISOファイルの書き込みは終了です。


# Ubuntuのインストール

### UEFIの設定
Windowの設定画面から「__システム__」→「__回復__」→「__今すぐ再起動__」→「__トラブルシューティング__」→「__詳細オプション__」→「__UEFI ファームウェアの設定__」→「__再起動__」を選択し、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/a61234c1-6f36-1b02-1ee4-f80152e2a93e.png)

UEFIの設定画面からUEFIセキュアブートとFast Bootを無効にします。
※マザーボードのメーカーによって画面は異なります。

### インストールの設定
USBメモリと外付けSSDを挿してPCを起動するとUbuntuのセットアップ画面が表示されます。
「__Ubuntuをインストール__」を選択して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/c68b1db2-0379-7ff1-ebb1-0905c39d3845.png)

言語・キーボードレイアウト・ネットワーク・アップデートの項目をそれぞれ設定し、「インストールの種類の設定」の項目では「ディスクを削除してUbuntuをインストール」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/25d15af4-0d74-e0ef-10a3-88b5e8890d6c.png)

確認ダイアログが表示されるので問題なければ「__続ける__」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/5cf7420f-88dd-2db3-536d-b8381cdf44b8.png)

その後タイムゾーンとユーザー情報の項目を設定し、インストールが終了するまで待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/c6d8abe5-f4eb-b099-cecf-0ada1040c568.png)

USBメモリを抜いてPCを再起動したらインストール完了です！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/c5a02ae0-1a07-08c0-6a3c-ce2ac99b6b95.png)



# ネットワークの設定（中華製WiFiアダプターの場合）
個人的に困ったのは、中華製WiFiアダプターのドライバーがないためネットに接続できなかったことです。ドライバーがない → ネットに繫がらない → makeをインストールできない → ドライバーをビルドできない というループにハマりましたが、一時的にスマホのUSBデザリングを使用して解決しました。

### makeをインストールする
WiFiアダプターのドライバーをビルドするために、makeをダウンロードします。（この際USBデザリングでネットに接続します。）
```bash:terminal
sudo apt update
sudo apt install make
```

### ドライバーをインストールする
下記リンクのWiFiアダプターをインストールします。

https://docs.alfa.com.tw/Support/Linux/RTL8821CU/

```bash:terminal
sudo apt update
sudo apt install bc
sudo apt install dkms
git clone https://github.com/morrownr/8821cu-20210118.git
cd 8821cu-20210118
sudo ./install-driver.sh
```
ドライバーをインストールできたか確認します。
```bash:terminal
find /lib/modules/`uname -r`/ -name "8821cu.ko"
```


# ネットワークの設定（古いMacBookの場合）　
MacBook Pro 2017にSSDを挿して起動するとWi-Fiに上手く接続できませんでしたが、下記リンクを参考に解決しました。

https://iori.dev/archives/2394/

また、Bluetooth接続もできなかったのでGitHubからドライバーを取得してインストールしました。
※あらかじめgit/make/gccをインストールしておく

```bash:terminal
git clone https://github.com/leifliddy/macbook12-bluetooth-driver.git
cd macbook12-bluetooth-driver
sudo ./install.bluetooth.sh
sudo reboot
```


# インストール後の各種設定

### sudoのパスワード入力を無くす
```bash:terminal
sudo visudo -s
```

```bash:terminal
# %sudo   ALL=(ALL:ALL) ALL この部分を下のように書き換える
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL
```

### Windowsの時計がズレるのを防ぐ
デュアルブートするとUbuntuとWindowsを切り替えるたびにシステム時刻が9時間ずれる場合があります。
```bash:terminal
sudo hwclock -D --systohc --localtime
```

### フォルダ名を英語に変更する
Ubuntu を日本語でインストールすると、ホーム内のフォルダ名が日本語になっていて不便です。
```bash:terminal
LANG=C xdg-user-dirs-gtk-update
```

### Dock にゴミ箱を表示する
```bash:terminal
gsettings set org.gnome.shell.extensions.dash-to-dock show-trash true 
```

### 言語サポートをインストールする
アプリケーションボタンから検索画面を表示し、「language」と入力して「言語サポート」をインストールします。PCを再起動すると新しく「__ツール__」が追加され、日本語入力の細かい設定ができるようになります。


### NT UI JP フォントをインストールする
```bash:terminal
wget https://launchpad.net/~sicklylife/+archive/ubuntu/fonts-ja/+files/fonts-nt-ui-jp_2_all.deb
sudo apt install ./fonts-nt-ui-jp_2_all.deb
rm fonts-nt-ui-jp_2_all.deb
```

### capslockをCtrlにする
```bash:terminal
sudo apt install gnome-tweaks
gnome-tweaks
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059946/1c6d35ac-1ad4-69ec-fee4-88f86c9131bd.png)

### スクリーンキャストの最大録画時間を変更する
デフォルトでは30秒しか録画できないので10分に変更します。
```bash:terminal
gsettings set org.gnome.settings-daemon.plugins.media-keys max-screencast-length 600
```

### USキーボードに変更する
https://qiita.com/nanbuwks/items/bcd6c838487c906a70e1

### APSTを無効化する
APSTというSSDが消費電力を抑えるための機能によってSSDがスリープ状態となり、`EXT4-fs error ...`というエラーが発生することをふせぎます。

```diff:ext/default/grub
 # If you change this file, run 'update-grub' afterwards to update
 # /boot/grub/grub.cfg.
 # For full documentation of the options in this file, see:
 #   info -f grub -n 'Simple configuration'

 GRUB_DEFAULT=0
 GRUB_TIMEOUT_STYLE=menu
 GRUB_TIMEOUT=10
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
+GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvme_core.default_ps_max_latency_us=0"
 GRUB_CMDLINE_LINUX=""
```
```bash:terminal
sudo update-grub
sudo reboot
sudo nvme get-feature -f 0x0c -H /dev/nvme0
```

https://qiita.com/Shunmo17/items/8d4a9e541a4bc837c99c



# その他必要なツールをインストールする

### gitをインストールする
```bash:terminal
sudo apt install git
git config --global user.name 'user_name'
git config --global user.email "user@example.com"
```

### makeとgccをインストールする
```bash:terminal
sudo apt install git
sudo apt install -y build-essential gcc make
```

### Chromeをインストールする
```bash:terminal
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
```

### Dockerをインストールする
```bash:terminal
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install docker-ce
```
Dockerがインストールされ実行できていることを確認します。
```bash:terminal
sudo systemctl status docker
```

### Unityをインストールする
http://pineplanter.moo.jp/non-it-salaryman/2020/08/09/unity-ubuntu/

### ROS Noeticをインストールする
https://wwwms.meijo-u.ac.jp/kohara/technicalreport/ubuntu20-04_noetic_install



# 参考リンク

https://qiita.com/koba-jon/items/019a3b4eac4f60ca89c9

https://qiita.com/outou_hakutou/items/ce06cb3c8c355d5fd87c

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ja

https://www.rough-and-cheap.jp/linux/ubuntu-sudo-without-password/