USBブートに対応していない Raspberry Pi 4 を USB ストレージから起動する(microSD併用・その2)
USBブートに対応していない Raspberry Pi 4 を USB ストレージから起動する(microSD併用・その2)
【追記】Raspberry Pi OSが標準で対応しました
本家Raspberry Pi OSのアップデートにより、USBストレージから起動できるようになっています。
こちらの方法でアップデートしてください。
また、64bit版Raspberry Pi OSはこちらです。
これはなに
- せっかく高性能なRasPi4を、読み書きの速いUSB3.0のUSBメモリから起動したい。
-
USBブートに対応していない Raspberry Pi を USB ストレージから起動する(microSD併用)方法は、お手軽な方法だ。
しかしbootcode.bin がハードウエアに依存するため、すべてのバージョンの Raspberry Pi で動作するわけではない。
- 具体的には、Raspberry Pi 4 は対応しない。また、公式では RaspBerry Pi 4 の USB ブートは未対応。
- より汎用的に「microSDを併用してUSBストレージから起動する」方法を整理し、Raspberry Pi 4 を USB から起動する。
ポイント
- boot 領域として microSD カードを FAT32 、セクタサイズ 512byte でフォーマットする。
- microSD カード内の cmdline.txtに、以下のいずれかを指定して USB 機器から起動する。
- boot=/dev/sda2
- boot=LABEL=rootfs
- boot=
partuuid
USB3.0 機器の場合、相性の可能性あり
-
パーティションサイズの調整
- 小さい容量の microSDカードというのも、だんだん入手できなくなってきた。
- 大容量のカードでを使う場合、parted、resize2fs でパーティションを小さくする。
- Win32 Disk Imager で読み込むときに、下記にチェックすれば、小さい img で済む。
- boot 領域として microSD カードを FAT32 、セクタサイズ 512byte でフォーマットする。
- microSD カード内の cmdline.txtに、以下のいずれかを指定して USB 機器から起動する。
- boot=/dev/sda2
- boot=LABEL=rootfs
- boot=
partuuid
USB3.0 機器の場合、相性の可能性あり
-
パーティションサイズの調整
- 小さい容量の microSDカードというのも、だんだん入手できなくなってきた。
- 大容量のカードでを使う場合、parted、resize2fs でパーティションを小さくする。
- Win32 Disk Imager で読み込むときに、下記にチェックすれば、小さい img で済む。
参考
- Qiita Raspberry Pi を USB ストレージから起動する
- 純規の暇人趣味ブログ Raspberry PiをUSB(HDD)で起動させる
- Signal Flag "Z" Raspberry Pi 4でUSB3.0接続のSSDがとても遅い
手順
具体的な作業手順です。
Raspberry Piのモデルを確認する
$ cat /proc/device-tree/model
Raspberry Pi 4 Model B Rev 1.1
Raspberry Pi 4 MODEL B Rev 1.1 は 公式ではまだ USB ブートに対応していません。
Raspbian の準備(通常どおり)
- microSD カード(目的の Raspbain を書き込める範囲で、できるだけ容量の小さいもの)に Raspbian を通常通り書き込む。
- 書き込んだ microSD で Raspberry Pi を起動する。
初回起動時に UUID がランダムに書き換わるため。 - 起動したらログインし、念のため UUID と PARTUUID を blkid コマンドで確認しておく。 2019-09-26-raspbian-buster-full の場合、一例として以下のようになった。
$ blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="9F2D-0578" TYPE="vfat" PARTUUID="5e3da3da-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="efc2ea8b-042f-47f5-953e-577d8860de55" TYPE="ext4" PARTUUID="5e3da3da-02"
起動用(rootfs) USB 機器にコピーする
Win32DiskImagerを用いて、microSD カードを起動したい USB 機器にコピーする。
動作確認のためだけなら、microSDをUSBリーダーに入れるだけでも良い。
boot 用 microsd カードの準備する
小さい容量のmicroSDカードを準備する。
FAT32、セクタサイズ 512 byte でフォーマットする。ラベルは microsd とする(他でも構いません)。
上記の起動用 USB機器の、FAT32でwindowsから読める領域のファイルを、ファイルコピーする。
Raspberry Pi 4 を起動する
小さい容量のmicroSDと USB 機器をRaspberry Piにセットする。起動すると、以下のようになる。
$ blkid
/dev/mmcblk0p1: LABEL="microsd" UUID="1CD0-AD85" TYPE="vfat" PARTUUID="17869b7d-01"
/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="9F2D-0578" TYPE="vfat" PARTUUID="5e3da3da-01"
/dev/sda2: LABEL="rootfs" UUID="efc2ea8b-042f-47f5-953e-577d8860de55" TYPE="ext4" PARTUUID="5e3da3da-02"/dev/mmcblk0p1:
$ df (関係ない箇所を省略)
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 7311288 6385676 547024 93% /
/dev/sda1 258095 53703 204392 21% /boot
/dev/mmcblk0p1 1925120 54124 1870996 3% /media/username/1CD0-AD85
8GBのmicroSDを用いたので、コピーしたUSBメモリーの領域も8GBのままだ。お望みなら sudo raspi-config で拡張できる。parted で拡張できる。
起動に用いた2GBのmicroSDは、自動的に/media/username/にマウントされている。
/etc/fstabを編集して、microSD が /boot にマウントされるように修正しておく。
$ sudo nano /etc/fstab
PARTUUID=17869b7d-01 /boot vfat defaults 0 2
まとめ
ポイントは、microsdカードの cmdline.txt に、どの領域から起動するか記述するだけです。
Author And Source
この問題について(USBブートに対応していない Raspberry Pi 4 を USB ストレージから起動する(microSD併用・その2)), 我々は、より多くの情報をここで見つけました https://qiita.com/masataka55/items/9f0c478fcd5dca105013著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .