見出し画像

「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を量産・展開している方の参考になれば幸いです。

いいなと思ったら応援しよう!

コメント

2
コメントするには、 ログイン または 会員登録 をお願いします。
日川のプロフィールへのリンク
日川

コメントありがとうございます! そのような方法もあるのですね! 私自身、今までbulls eyeをずっとメインで使っていたので、新しいOSについて知らないことも多く、勉強になります。ありがとうございます!

パイ愛好家のプロフィールへのリンク
パイ愛好家

良い記事をありがとうございます。 なるほど、Bookwormでrpi-cloneを使うときはそのような注意が必要なのですね。 大変勉強になりました。 私も、Bookwormになってから、初回起動前にcmdline.txtの root=PARTUUID=xxxxxxx-02 を root=/dev/mmcblk0p2 に変えてしまい、それで起動するようにし…

製造業の中の人|工場DXを現場から少しずつ進めています 大きな予算もなく、一人で試行錯誤しながらRaspberry Pi・AWS・PLCを組み合わせてIoT化を実践中。うまくいったこと・ハマったことを記事にしています。 「同じ現場系エンジニアの役に立てれば」という気持ちです。
「rpi-cloneでSDをクローンしたのに起動しない!?」Bookworm以降でハマった原因と対処法|日川
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1