sachaos.md
----------

Raspberry Pi 4 で USB から boot する

Raspberry Pi のクラスタを作成して、Kubernetes を試してみている。

Raspberry Pi は通常 SD カードから OS をブートするのだが、 SD カードだと読み込み、書き込みが遅いという問題があったので USB から boot を試してみた。

## 手順

I'm booting my Raspberry Pi 4 from a USB SSD を参考にした。

示されている通りにやれば動く。

### Raspberry Pi 4 が USB から boot できるようにする

  1. Raspberry Pi のコンソールにアクセス

  2. パッケージを update

$ sudo apt update
$ sudo apt full-upgrade
  1. /etc/default/rpi-eeprom-update を編集して、 critical から beta に変更する。
FIRMWARE_RELEASE_STATUS="beta"
  1. EEPROM をアップデートする
$ sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-06-15.bin
  1. 再起動する
$ sudo reboot

### boot 用の USB を準備する

  1. USB にイメージを書き込む

Raspberry Pi Imager を使って USB メモリにも書き込むことが出来た。

  1. Raspberry Pi の Firmware の最新版を DL して boot/*.elf, boot/*.dat ファイルを USB drive に書き込む

raspberrypi/firmware

  1. USB をアンマウントする

あとは Raspberry Pi 4 の電源を切り、SDカードを取り出し USB を差し込んで、電源をいれれば USB から boot してくれる。

## ディスク書き込み速度比較

USB メモリにすることによって 4 倍近く速くなった。 しかし、 参考にした記事 では SanDisk 32GB の microSD で 34 MB/s 出ているので、下手な USB メモリを使うより速い。

良いデバイスを買いましょうという話でした。

### microSD

pi@raspi2:~ $ dd if=/dev/zero of=/tmp/write.tmp ibs=1M obs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 148.139 s, 7.2 MB/s

### USB メモリ

pi@raspberrypi:~ $ dd if=/dev/zero of=/tmp/write.tmp ibs=1M obs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 39.96 s, 26.9 MB/s