LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

raspberry pi を mstata SSDからbootする

日本Androidの会秋葉原支部ロボット部 Advent Calendar 2020 5日目です。

aliexpressで独身セールの時に購入したのが届きました。

ラズパイに下駄を履かせて msata ssd をつなげる拡張ボートです。
msata ssdも独身セールで購入したのが届いたので、これを使って msata ssdからOSブートさせてみようと思います。

作業

組み立てはこんな感じです。
取説とかは特についてないですが、直感でわかる思います。

image.png

image.png

image.png

この方の記事を参考に作業を行います。
https://alexellisuk.medium.com/upgrade-your-raspberry-pi-4-with-a-nvme-boot-drive-d9ab4e8aa3c2

OSをアップグレードをして再起動します。

pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt upgrade -y
pi@raspberrypi:~ $ sudo reboot

bootloaderのVersionは以下になりました。

pi@raspberrypi:~ $ sudo vcgencmd bootloader_version
Sep  3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103

再起動したらraspi-configからAdvanced OptionsからBoot Orderを選択してUSB BootでOKを押します。

image.png

ddコマンドでsdカードからmsataにコピーします。

pi@raspberrypi:~ $ sudo dd if=/dev/mmcblk0 of=/dev/sda bs=1M

コピーが終了したらラズパイをシャットダウンしてsdカードを取り外したら電源を入れ直します。
ちゃんとmsataから起動するようになりました :clap:

pi@raspberrypi:~ $ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 59.6G  0 disk
tqsda1   8:1    0  256M  0 part /boot
mqsda2   8:2    0 59.4G  0 part /
pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  6.3G   50G  12% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  8.5M  1.9G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1       253M   54M  199M  22% /boot
tmpfs           385M     0  385M   0% /run/user/1000

比較

system-analyzeコマンドで起動時間、ddコマンドでwriteの時間を測ってみました。
あくまで参考値ですが起動時間が約半分、writeはざっくり1/8~1/9とsdカードより大幅に向上が得られました :heart_eyes:

・起動時間(sdカード)

pi@raspberrypi:~ $ sudo systemd-analyze
Startup finished in 2.543s (kernel) + 33.429s (userspace) = 35.973s
graphical.target reached after 33.047s in userspace

・ddコマンド(sdカード)

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, 43.023 s, 25.0 MB/s
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, 111.219 s, 9.7 MB/s
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, 52.4544 s, 20.5 MB/s

・起動時間(msata)

pi@raspberrypi:~ $ systemd-analyze
Startup finished in 1.590s (kernel) + 16.330s (userspace) = 17.921s
graphical.target reached after 16.303s in userspace

・ddコマンド(msata)

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, 5.95291 s, 180 MB/s
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, 5.73165 s, 187 MB/s
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, 5.77155 s, 186 MB/s

SSDからbootさせると性能向上が見込まれていいですね。
SATA SSDのボートも買ってるので別途比較してみたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1