RaspberryPi zeroW2をUSB bootさせる方法
Raspberry Pi Zero W2
Raspberry Pi Zero Wを完全にUSBブート(microSDカードを一切使用しない起動)させるには、内蔵されているOTP(ワンタイムプログラマブル)メモリの専用フラグを書き換える必要があります。
以下の手順に従って環境を構築してください。
1. Raspberry Piを通常起動する
まず、通常通りにRaspberry Pi OSを書き込んだmicroSDカードを挿入し、起動します。
2. ブートモードの変更(USBブートの有効化)
- ターミナルを開き、以下のコマンドを入力して起動設定ファイル(
/config.txt)を開きます。
sudo nano /boot/firmware/config.txt
- ファイルの末尾に、以下の1行を追加します。
program_usb_boot_mode=1
- 保存して終了します(
Ctrl + O,Enter,Ctrl + X)。 - 設定を反映させるため、ラズパイを再起動します。
sudo reboot
3. OTPの書き込み確認
再起動後、正しくフラグが書き込まれたかターミナルで確認します。
vcgencmd otp_dump | grep 17:
コマンドの出力結果が 17:3020008a となっていれば、USBブートが無事に有効化されています。
4. USBドライブのセットアップ
- パソコンで Raspberry Pi 公式サイト から「Raspberry Pi Imager」をダウンロードして起動します。
- 接続したUSBメモリ(またはSSD)に、好みのOSを書き込みます。
- 書き込みが完了したら、USBドライブを一度PCから取り外し、ラズパイに接続します。
5. USBから起動する
- microSDカードをラズパイから抜きます。
- USBドライブ(またはUSBハブに挿したUSBドライブ)を、ラズパイ本体のデータ通信用Micro-USBポートに接続します。
- 電源を供給すると、USBメモリから直接起動します。
メリット・デメリット
基本のメリット・デメリットは初代Zero Wと共通ですが、スペック向上により以下の部分に変化があります。
🔋 デメリット:消費電力がさらにシビアに
Zero 2 WはクアッドコアCPUに進化し、本体の消費電力が初代より増えています。
- 初代以上に電源(5V / 2.5A以上)の安定性が求められます。
- 初代ではギリギリ動いていたスマホ用の充電器なども、Zero 2 WにUSBストレージを繋いだ状態では、電力不足(電圧降下)で高確率でシステムが落ちる原因になります。
🏎️ デメリット:USB 2.0の速度制限はそのまま
CPU性能は大幅にアップしましたが、USBポートの規格は「USB 2.0」のままです。
- 高速な外付けSSDを繋いでも、データの転送速度自体はUSB 2.0の理論値(最大480Mbps)に制限されます。
- そのため、「大容量化」や「SDカードの寿命回避」には効果的ですが、「劇的な読み書きの高速化」は期待できません。
🛠️ 結論として必要なもの
Zero 2 WでUSBブートをする場合も、以下の環境を推奨します。
- 電源:必ず Raspberry Pi公式などの 5V / 2.5A(または3.0A)のACアダプター を用意する。
- ストレージ:消費電力を抑えたいなら大手メーカー製のUSB 3.0対応USBメモリ。SSDを使うならセルフパワー(電源付き)のUSBハブを必ず経由させる。
SDカードの中身をUSBメモリへ
現在お使いのSDカードの内容を、そのまま引き継いでUSBブートに移行することができます。
アプリの設定、保存したデータ、ログイン情報、ネットワーク設定などもすべてそっくりそのまま丸ごとコピーできます。
移行するための手順は、ラズパイの画面(デスクトップ環境)があるかどうかで2種類の方法に分かれます。
方法A:デスクトップ画面(GUI)がある場合(一番簡単)
Raspberry Pi OSに標準搭載されている「SD Card Copier」というツールを使うのが最も簡単で確実です。
- USB機器を接続する:現在起動中のラズパイに、移行先となるUSBメモリやSSDを接続します。
- ツールを起動する:デスクトップ左上の「メニュー(ラズパイのアイコン)」⇒「アクセサリ」⇒「SD Card Copier」を開きます。
- コピー元とコピー先を指定する:
- Copy From Device:本体のmicroSDカード(
/dev/mmcblk0など)を選択 - Copy To Device:接続したUSBストレージ(
/dev/sdaなど)を選択 - New Partition UUIDs:チェックを外す(※チェックを外すことで、SDカードと全く同じ識別子を引き継げるため、設定ファイルを書き換える手間がなくなり、そのままUSBから起動できるようになります)。
- Copy From Device:本体のmicroSDカード(
- コピーを開始する:[Start] を押すとデータが上書きされる警告が出ますので、[Yes] を選んで開始します。
- 完了後:ラズパイをシャットダウンし、microSDカードを抜いてから電源を入れると、USBからそのまま同じ内容で起動します。
方法B:画面がない場合(CUI / SSH接続のみ)
画面がない(CUI)環境の場合は、ラズパイ専用の優秀なクローンツール「rpi-clone」をコマンドでインストールして使います。
- ツールのインストール:ターミナルで以下のコマンドを順番に実行します。
bashsudo apt update sudo apt install -y git git clone https://github.com/billw2/rpi-clone.git cd rpi-clone sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
- USBのデバイス名を確認:USBストレージを挿し、
lsblkコマンドで名前(大体sdaです)を確認します。 - クローンを実行:以下のコマンドでコピーを開始します(末尾は確認した名前。例として
sda)。
bashsudo rpi-clone sda
- 途中で「本当に進めていいか?(
yes/no)」と聞かれるのでyesと入力します。 - 最後に「Hit Enter when ready to unmount…」と表示されたら、
Enterキーを押して終了します。 - 完了後:
sudo poweroffで電源を切り、microSDカードを抜いてから起動すれば、USBからの起動に切り替わります。
⚠️ 移行前の最終チェック
現在のSDカードのままで前のステップで説明した「USBブートの有効化設定(program_usb_boot_mode=1)」と「再起動確認」をあらかじめ済ませておいてください。有効化されていれば、中身をコピーした後にSDカードを抜くだけで自動的にUSBから立ち上がります。