「rpi-cloneでSDをクローンしたのに起動しない!?」Bookworm以降でハマった原因と対処法
私は Raspberry Pi Zero 2 W を設備に取り付け、
設備から給電し、GPIO経由でI/O信号を取り込んだり、
PLCのデータを RS485 や Ethernet 経由で取得したりしています。
いろいろな設備に取り付けるため、まず安定した環境を1つ構築し、
それをクローン(コピー)して、設備ごとに細部を調整する運用をしています。
Zero 2 W なので基本的にデスクトップ環境は入れず、
CLI(コマンドライン)で作業しています。
そんな私が SDカードの複製に使っているのが rpi-clone です。
🚀 rpi-cloneのメリット
rpi-cloneには、他のSDカードコピー方法にはない便利な特徴があります。
起動中のRaspberry Piでもクローン可能 通常、SDカードのコピーはOSを停止してから行う必要がありますが、rpi-cloneは稼働中のラズパイから直接クローンを作成できます。設備に組み込んだ状態でも作業できるため、ダウンタイムを最小化できます。
SDカードにそのままコピーできる USBカードリーダーで接続したSDカードに対して、即座にコピーを実行可能。余計な手順や外部PCを使う必要がなく、ラズパイ単体で完結します。
コピー速度が速い rpi-cloneは差分コピーに対応しているため、初回以降は変更部分だけを反映できます。これにより、再クローン時の処理が非常に高速になり、運用効率が大幅に向上します。初回も使用済み領域のみをコピー対象とするため、全セクタをコピーするWin32DiskImagerと比べると空き領域が多いSDカードであれば断然早いです。
🌀 trixie登場、そしてBookworm問題
最近、Debianの新バージョン「trixie」がリリースされ、
Raspberry Pi Imager の Legacy が Bookworm に置き換わりました。
Bookwormからはネットワーク設定が NetworkManager に変わり、
デスクトップ環境も Wayland 化。
RealVNC が使えなくなるなど、変更点が非常に多く、
慣れた Bullseye 環境をクローンして使っていた方も多いと思います。
しかし、今後を見据えて新環境にも対応しておきたいと思い、
AIの力も借りながら、前回の記事では nmcli による
ネットワーク設定方法をまとめました。
これで一安心……と思っていたのも束の間。
⚠️ クローンしたのに起動しない!
新しく作ったBookworm環境をいつものように
rpi-clone でコピーしたところ、クローン先が起動しない。
rpi-cloneの実行自体はエラーもなく、
「問題なく完了した」と思っていたのですが、
SSHで接続しても反応なし。
急遽モニターをつないでブートログを確認すると——
Begin: Running /scripts/local-block ... done
このメッセージが何度も繰り返され、最後に
(initramfs)
という表示で止まってしまいました。
原因がわからず、フォーマットとクローンを何度も繰り返すこと約1時間。
同じように悩む人が出ないよう、今回は
「正しいrpi-clone手順」と「起動しない原因・対処法」 をまとめます。
🧩 rpi-cloneによるSDカードクローン手順(Bookworm対応)
1️⃣ メインSDカード(A)を準備
まずは普段どおりに Raspberry Pi OS をインストールし、
ネットワーク設定や初期設定まで済ませておきます。
これがクローン元のSDカード(A)です。
2️⃣ rpi-cloneのセットアップ
2-1. gitのインストール
sudo apt install git
2-2. rpi-cloneの取得
git clone https://github.com/billw2/rpi-clone.git
3️⃣ クローン先SDカードを接続して確認
クローン先のSDカードをUSBカードリーダー経由で接続します。
デバイス名を確認:
lsblk
出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 28.3G 0 disk
└─sda1 8:1 1 28.3G 0 part
mmcblk0 179:0 0 28.3G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 27.8G 0 part /
起動中のSDカード → /dev/mmcblk0
クローン先のSDカード → /dev/sda
4️⃣ クローン実行
cd rpi-clone
sudo rpi-clone -f /dev/sda
オプション解説:
-f:既存パーティションを削除して強制的にクローン(空カードならOK)
実行中に聞かれます:
Initialize and clone to the destination disk sda? (yes/no):
→ yes
Optional destination ext type file system label (16 chars max):
→ そのまま Enter
完了後、
Hit Enter when ready to unmount the /dev/sda partitions ...
と出たら Enter を押して終了。
5️⃣ クローン結果の確認
lsblk
出力例:
sda
├─sda1 512M
└─sda2 27.8G
同じ構成になっていればOK。
🧭 Bookworm以降で起動しない原因と対処法
Bookworm以降では、パーティションの PARTUUID が
ブート構成ファイル内と一致していないと起動しません。
rpi-cloneはコピー元のPARTUUIDをそのまま引き継いでしまうため、
このズレが原因で「initramfsで停止」する現象が起こります。
✅ 対処手順:PARTUUIDの修正
1. blkidでUUID確認
sudo blkid
例:
/dev/mmcblk0p2: PARTUUID="844659f3-02"
...
/dev/sda2: PARTUUID="0169d253-02"
2. クローン先をマウント
sudo mkdir /mnt/sda1
sudo mkdir /mnt/sda2
sudo mount /dev/sda1 /mnt/sda1
sudo mount /dev/sda2 /mnt/sda2
3. /etc/fstab の確認
sudo nano /mnt/sda2/etc/fstab
PARTUUID=0169d253-01 /boot/firmware vfat defaults 0 2
PARTUUID=0169d253-02 / ext4 defaults,noatime 0 1
blkid で確認した値と一致していればOKです。
4. /boot/firmware/cmdline.txt の修正
sudo nano /mnt/sda1/cmdline.txt
修正前:
root=PARTUUID=844659f3-02
修正後:
root=PARTUUID=0169d253-02
保存(Ctrl + O → Enter → Ctrl + X)で完了。
🔁 これで再起動すればOK!
これでBookworm環境でもrpi-cloneで作成したSDカードが
問題なく起動するようになります。
🧠 まとめ
rpi-clone は便利だが、Bookworm以降ではPARTUUIDの修正が必要
initramfsで止まる原因のほとんどはこのUUID不一致
クローン後は /etc/fstab と /boot/firmware/cmdline.txt の確認を忘れずに
💬 おわりに
Bullseyeまでは問題なく使えていたrpi-cloneも、
Bookwormからの仕様変更で思わぬトラップが増えています。
現場で同じように設備を管理している方や、
Raspberry Piを量産・展開している方の参考になれば幸いです。


コメントありがとうございます! そのような方法もあるのですね! 私自身、今までbulls eyeをずっとメインで使っていたので、新しいOSについて知らないことも多く、勉強になります。ありがとうございます!
良い記事をありがとうございます。 なるほど、Bookwormでrpi-cloneを使うときはそのような注意が必要なのですね。 大変勉強になりました。 私も、Bookwormになってから、初回起動前にcmdline.txtの root=PARTUUID=xxxxxxx-02 を root=/dev/mmcblk0p2 に変えてしまい、それで起動するようにし…