Raspberry Pi 4にLubnutu 20.04をインストールしてSSD化

#はじめに
入れなおす度に調べるのも面倒なので記録しました。
***一回Raspberry Piに使ったSDの再利用とか、
SSDコントローラの相性が悪かった場合でも乗り越えられる手順です。***

windows上のツール類は公式がおすすめしているものを使っています。

SSDに移行すると非常に快適ですね！
今の所、VLCでのHD動画の音飛びとカクカク再生がだめですが。

![screen.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/5d7361d2-2667-8621-a22b-ea4f358ab8bd.jpeg)
※これが以下対応を行ったあとのデスクトップ画面です。

***2020/5/29追記***
なんかRaspberry Pi 4もまもなくSSDブートできるようになるみたいですね。
ここに至るまでに、けっこう試行錯誤があったんですけどね。。。
![ダウンロード.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/0373a95b-efe6-6dcf-66b3-69ad9cafc659.jpeg)

#おおまかな流れ
1. Raspberry Pi 4用のサーバー版のイメージをダウンロードし展開
2. SDカードの初期化
3. SDカードへイメージの書き込み
4. Raspberry Pi 4にSD刺して起動
5. SSD化
6. Lubuntuのdesktopをインストール
7. デスクトップ環境の切り替え
8. 日本語対応


#1. Raspberry Pi 4用のサーバー版のイメージをダウンロードし展開
※windows10で実施
公式サイトからUbuntu Server on a Raspberry Pi 4用のイメージをダウンロードします
https://ubuntu.com/download/raspberry-pi/thank-you?version=20.04&architecture=arm64+raspi

ダウンロードできたらxz形式なので7-zipなどで展開します

#2.SDカードの初期化
※windows10で実施
一度Raspberry Pi用にしたSDカードはパーティションが切られているので、まずそれをクリアします。

コマンドラインから`diskpart`を起動

```
DISKPART> list disk
```
でSDカードを特定

```
DISKPART> select disk #
```
※#はさっき特定したディスクの番号

```
DISKPART> list partition
```
でパーティションが分かれていることを確認し

```
DISKPART> clean
```
でパーティションを削除

※続けてパーティションを作成するのですが、SD Card Formatterを使うなら不要です。
https://www.sdcard.org/jp/downloads/formatter/eula_windows/index.html

SD Card FormatterでSDカードのFAT32でフォーマットします。
※これを使うと32GBより大きなSDカードもFAT32でフォーマットできます。

#3.SDカードへのイメージの書き込み
※windows10で実施
Win32 Disk Imagerを使ってSDカードにイメージを書き込みます。
Image Fileに1で展開したimgファイルを、Deviceに2で初期化したSDカードを選びWriteボタンを押します。

![コメント 2020-05-03 145819.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/34902b5e-8754-5d3e-9ef3-76395b82485d.png)

#4. Raspberry Pi 4にSD刺して起動
3で作成したSDカードをRaspberry Pi4に入れディスプレイ・キーボード・LANケーブルをつないで電源を入れます

しばらくすると起動しusernameとpasswordを聞かれるので
**ubuntu**
と入れます。そのあとで
　現在のパスワード(**ubuntu**)、
　変更前のパスワード(**ubuntu**)、
　新しいパスワード
　新しいパスワードのリタイプ
と、都合古いパスワードと新しいパスワードを2回ずつ入れさせられます。

#5. SSD化
Raspberry Pi4は起動用にSDカードをなくすことはできませんが、
ブートシーケンスのカーネル読み込みより後をSSD化することで快適になります。

##SSDの初期化
###パーティションの再構築
Raspberry PiにSSDを刺すと勝手に認識しマウントしてしまうので、dfなどでマウントポイントを探しumountします。
dmesgやdf, fdisk -lなどでSSDのデバイス名を突き止めます
※以下、SSDが/dev/sdaだったとします(ていうか、USB3.0ポートの上に指すとsda、下に指すとsdbになります)。
　またパーティションは１つで、それは/dev/sda1とします。

partedでパーディション再構築します。

```
> sudo parted /dev/sda

mklabel gpt
mkpart crucial 0% 100%
```
※crucialのところは何でもいいです。

###フォーマット
作成したパーティションをext4でフォーマットします。瞬時でした。

```
> sudo mkfs.ext4 /dev/sda1
```

##SDカード上の起動パーティションの特定
blkidで/dev/mmcblk0p?というのが2つくらいあるはずで、ext4の方が/配下が入ってます。
※多くの場合/dev/mmcblk0p2

###SDカードをまるまるSSDにコピー
ddコマンドでコピーします。他の方法でも構いません。

```
sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync
```
***※使うツールによっては、実際のパーティションサイズよりもdfの領域が小さくなってしまう(SDカードのサイスに合わせられてしまう)場合があります。その時は以下コマンドでパーティションサイズいっぱいまで拡張できます。***

```
sudo resize2fs /dev/sda1
```


##起動ドライブの書き換え
SDカード上の
/boot/firmware/cmdline.txtのrootのところを今回コピーしたパーティションに書き換えます。

ちなみにJMicron製のアダプターだとSSDつないでると起動しません。
それを回避するには`usb-storage.quirks=152d:0578:u `も追記します。
※152d:0578の部分はlsusbでIDを調べてください。

ちなみに１行に収めないとだめです。

```cmdline.txt:修正前
net.ifnames=0　dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc
```

```cmdline.txt:修正後
usb-storage.quirks=152d:0578:u net.ifnames=0　dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait fixrtc
```
###あとは再起動
これでSDカードの速度にかかわらず高速に再起動、動作するはずです。

再起動しなくなったら、windowsにSDカードを差し込めば、cmdline.txtを普通に編集できますので、もとに戻して起動すればOK。

#6. Lubuntuのdesktopをインストール
続けて以下コマンドを入力します。
すごく時間がかかるので、リポジトリの最新化・システムの更新・lubuntuデスクトップのインストールを一気にやります

```
> sudo apt update; sudo apt -y upgrade; sudo apt -y install lubuntu-desktop
```

30分ぐらい待つとディスプレイマネージャをgdm3かsddmのどちらにするか聞かれますので、gdm3を選びます。
そのあとさらに1時間ぐらい待ちます。

#7. デスクトップ環境の切り替え
インストールが終わったらコマンドラインに戻るので、rebootします。

```
> sudo reboot
```
しばらくするとユーザ選択画面が上がってくるのでログインしたいユーザをクリック
![InkedIMG_20200505_101508_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/75334c91-d70a-b8fa-cf8c-5ac2196a8b74.jpeg)

右下にギヤのアイコンが出るので、lubuntuを選択します。
![InkedIMG_20200505_101518_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/1c000c66-1a92-be88-c22c-d5810a3be231.jpeg)
そしてパスワードを入れてログインします。

#8. 日本へのローカライズ
以下4つの対応が必要です。

##日本語表示
メニューからPreference > Language Supportを選択
開いた画面の中の[Install/Remoe Languages...]のボタンを押し、
Japaneseを追加

インストールが終わると同じ画面に
`English`
`日本語`
のように日本語が追加されていると思うので、ドラッグアンドドロップで日本語が上にくるようにします。
またキーボード入力に使うIMシステムもIBusを選んでおきます。
![screen1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418454/a66c5078-de75-a904-a3e4-d2f255ad347d.jpeg)

また、同じ画面のRegional Format(地域フォーマット)のタブも日本語を選択します。

##日本語入力
メニューから 設定 > 入力メソッド を選択

[OK]→[はい]→ibusを選択し[OK]

##キーボード選択
設定 > LXQT設定 >　キーボードとマウス
で日本語キーボードを選びます。
これで[半角/全角]キーが有効になります。

##timezoneの変更
タイムゾーンの設定がされてないので、これも日本にします。

```
timedatectl list-timezones | grep -i tokyo
Asia/Tokyo
```

以上で完了！