RaspberryPiOSをインストールする(RPI4B 2021-05-07)
既存のラズパイを使って新しいSSDにOSをインストールする。
情報源
必要なもの
- 内蔵SSD 240GB SATA
- HDDケース 2.5 inch USB3.0
- Raspberry PI 4B
手順
1. OSをダウンロードする
項目 | 値 |
---|---|
URL | 2021-05-07-raspios-buster-armhf.zip |
名前 | Raspberry Pi OS with desktop |
リリース日 | 2021-05-07 |
カーネル版 | 5.10 |
サイズ | 1180MB |
SHA256 | b6c04b34d231f522278fc822d913fed3828d0849e1e7d786db72f52c28036c62 |
ブラウザからふつうにダウンロードしてもいいが、時間がかかるようならダウンローダaria2にて高速化できる。
sudo apt install -y aria2 time aria2c -x10 https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2021-05-28/2021-05-07-raspios-buster-armhf.zip
12分かかった。
[#bb3045 1.1GiB/1.1GiB(99%) CN:1 DL:313KiB ETA:1s] 07/21 10:20:05 [NOTICE] ダウンロード完了: /tmp/work/2021-05-07-raspios-buster-armhf.zip ダウンロード結果: gid |stat|avg speed |path/URI ======+====+===========+======================================================= bb3045|OK | 1.7MiB/s|/tmp/work/2021-05-07-raspios-buster-armhf.zip 凡例: (OK):ダウンロード完了しました real 11m28.775s user 1m17.096s sys 0m30.790s
SHA256でファイル破損チェックする。数十秒かかった。
IMG=2021-05-07-raspios-buster-armhf.zip SHA256=b6c04b34d231f522278fc822d913fed3828d0849e1e7d786db72f52c28036c62 echo "$SHA256 $IMG" > expected.txt time sha256sum $IMG > actual.txt diff expected.txt actual.txt
diffで何も表示されなければOK。
2. SSDにOSをインストールする
既存のマシン(ラズパイ)を使ってSSDにOSを書き込む。
- ラズパイを起動する
- SSDとラズパイをUSB3.0で接続する
- 端末を起動して
lsblk -p
コマンドを実行する - SSDのデバイスIDを確認する(ファイルサイズなどをヒントにして)
- アンマウントする
dd
コマンドを実行する- 完了(数分くらいで完了予定)
今回、書き込み先となるSSDのデバイスIDは/dev/sdb
だった。
lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 111.8G 0 disk ├─/dev/sda1 8:1 0 256M 0 part /boot └─/dev/sda2 8:2 0 111.5G 0 part / /dev/sdb 8:16 0 223.6G 0 disk
/dev/sdb
はマウントされていないため、アンマウントする必要はない。もしマウントされていたらumount /dev/sdXN
のように対象デバイスの全パーティションをアンマウントすること。
SSDにOSを書き込む。zipファイルを展開しつつ。
DEV=/dev/sdb time unzip -p "$IMG" | sudo dd of=$DEV bs=4M conv=fsync
展開せず焼いてしまった場合ブートしない
zipファイルを展開せずに書き込んでしまった場合、ブートしない。ブート画面で「Unable to read partition as FAT」と怒られてしまう。忘れずunzip
で展開すべし。
1分ほどで完了。さすがUSB3.0。速い。展開後は4GBくらいになった。
0+60149 レコード入力 0+60149 レコード出力 3980394496 bytes (4.0 GB, 3.7 GiB) copied, 68.458 s, 58.1 MB/s real 1m8.507s user 0m58.401s sys 0m23.028s
lsblk -p
でみてみるとパーティションが作られている。
$ lsblk -p NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 111.8G 0 disk ├─/dev/sda1 8:1 0 256M 0 part /boot └─/dev/sda2 8:2 0 111.5G 0 part / /dev/sdb 8:16 0 223.6G 0 disk ├─/dev/sdb1 8:17 0 256M 0 part └─/dev/sdb2 8:18 0 3.5G 0 part
df -h
でみるとマウントはされていなかった。なのでそのままUSBをぶっこ抜く。
2. SSDを初回ブートする
手順
公式には以下コマンドで書き込むとある。
dd if=2021-05-07-raspios-buster-armhf.zip of=/dev/sdX bs=4M conv=fsync
かつて私がラズパイ4過去記事を作ったときのコマンドは以下。
time sudo dd bs=4M if=2021-05-07-raspios-buster-armhf.zip of=/dev/sdb conv=fsync status=progress
変更箇所を変数にする。ついでにSHA256でファイル破損チェックも加えると以下。
SHA256=b6c04b34d231f522278fc822d913fed3828d0849e1e7d786db72f52c28036c62 IMG=2021-05-07-raspios-buster-armhf.zip DISK=/dev/sdb echo "$SHA256 $IMG" > expect.txt shasum -a 256 $IMG > actual.txt diff expect.txt actual.txt time sudo dd bs=4M if="$IMG" of="$DISK" conv=fsync status=progress
1分で終わった。早っ! さすがUSB3.0。
1207959552 bytes (1.2 GB, 1.1 GiB) copied, 66 s, 18.3 MB/s 295+1 レコード入力 295+1 レコード出力 1237837307 bytes (1.2 GB, 1.2 GiB) copied, 66.5108 s, 18.6 MB/s real 1m6.720s user 0m0.027s sys 0m9.013s
3. SSDを初回ブートする
作ったSSDを初回ブートする。初回ブートは、上記インストール後にはじめてブートするときのことである。このときディスク容量を拡張するなど特殊な処理を自動で行ってくれる。
HDD/SSDケースのコントロールチップによってはブートしないことがある。そのときは/boot/cmdline.txt
の先頭にusb-storage.quirks=152d:0578:u
を追記してから再度ブートさせること。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux