Help us understand the problem. What is going on with this article?

Raspbian USB Boot

More than 1 year has passed since last update.

本記事について

本記事は公式サイトの USB mass storage device boot の英文記事を非公式に日本語訳したものです。

USB ブートモードが有効な機種について

USB 大容量ストレージブートは、 Raspberry Pi 3B, 3B +, 3A + と 2B v1.2 でのみ使用できます。

このチュートリアルでは、フラッシュドライブや USB ハードディスクなどの USB 大容量ストレージデバイスから Raspberry Pi を起動する方法について説明します。この機能は実験的なものであり、すべての USB 大容量ストレージデバイスで機能するわけではないことに注意してください。一部のUSB 大容量ストレージデバイスが機能しない理由の説明、およびいくつかの背景情報については、 Gordon Hollingworth の このブログ投稿 を参照してください。

USB ブートモードの設定

Raspberry Pi 3A + および 3B + は、変更なしで USB から起動できますが、 Raspberry Pi 3A および 3B では、USBブートビットを OTP メモリに(1 度だけプログラム的に)設定する必要があります。 Raspberry Pi 3A + または 3B + を使用している場合は、次のセクションに進んでください。

USB ブートビットを有効にするには、 USB ブートモードを有効にする設定オプションを使用して、 Raspberry Pi 3 を SD カードから起動する必要があります。

このビットが設定されると、 SD カードは不要になります。 OTP に加えた変更は永続的なものであり、元に戻すことはできません。

Raspbian または Raspbian Lite を実行している任意の SD カードを使用して、 OTP ビットをプログラムできます。このような SD カードがない場合は、通常の方法で Raspbian または Raspbian Lite をインストールできます。 イメージのインストール を参照してください。

まず、最新のブートファイルで /boot ディレクトリを準備します(Raspbian / Raspbian Lite の 2017-04-10 リリース以降を使用している場合、この手順は不要です)。

$ sudo apt update && sudo apt full-upgrade

次に、下記のコードで USB ブートモードを有効にします。

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

これにより、 program_usb_boot_mode = 1/boot/config.txt の最後に追加されます。 sudo reboot を実行して Raspberry Pi を再起動し、 OTP が次のようにプログラムされていることを確認します。

$ vcgencmd otp_dump | grep 17:
17:3020000a

出力 0x3020000a が表示されていることを確認します。そうでない場合、 OTP ビットは正常にプログラムされていません。この場合、プログラミング手順をもう一度実行してください。ビットがまだ設定されていない場合、これは Pi ハードウェア自体の障害を示している可能性があります。

必要に応じて、 config.txt から program_usb_boot_mode 行を削除して、 SD カードを別の Raspberry Pi に挿入しても USB ブートモードがプログラムされないようにすることができます。 config.txt の最後に空白行がないことを確認してください。たとえば、コマンド sudo nano /boot/config.txt を実行して nano エディターを起動し、 config.txt を編集できます。

USB 大容量ストレージデバイスの準備

Raspbian の 2017-04-10 リリース以降、 SD カードの場合と同様に、オペレーティングシステムイメージを USB デバイスに直接コピーすることにより、動作中の Raspbian システムを USB 大容量ストレージデバイスにインストールできます。この手順を実行するには、USB大容量記憶装置に対応するドライブを選択して、 ここ の指示に従ってください。

USB 大容量ストレージデバイスのイメージングが完了したら、コンピューターから取り外して Raspberry Pi に挿入します。

USB 大容量ストレージデバイスから Raspberry Pi を起動する

USB 大容量ストレージデバイスを Raspberry Pi に接続し、 Pi の電源を入れます。 5 〜 10 秒後、 Raspberry Pi が起動し、接続されたディスプレイにレインボースプラッシュ画面が表示されます。

USB ブートビットが設定されている場合、 USB ブートが機能するために SD カードを Raspberry Pi に挿入する必要はありません。

ブートに失敗する場合

SD カードを Raspberry Pi に挿入して電源を入れます。 USB 大容量ストレージデバイスを Raspberry Pi に接続し、以下の操作を試してください。

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot

/mnt/boot/cmdline.txt の root パラメータの値を /dev/sda2 に変更します。

/mnt/boot/cmdline.txt
console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

/mnt/etc/fstab を編集します。 /boot/dev/sda1//dev/sda2 に変更します。

/mnt/etc/fstab
proc            /proc           proc    defaults          0       0
/dev/sda1  /boot           vfat    defaults          0       2
/dev/sda2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

raspbian をシャットダウンし、 USB 大容量ストレージデバイスを接続したまま、 SD カードだけを Raspberry Pi から抜きます。再度 Raspberry Pi の電源を入れて少し待つと raspbian が起動します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away