今回は、Raspberry PiのOSバックアップをMacで行い、その後新しいmicroSDカードに復元する方法について説明します。これで、Raspberry Piの設定や環境を丸ごとコピーして、新しいSDカードに移行できるようになります。
Finderでコピーする方法との違い
FinderでmicroSDカードをコピーする場合、表示されるのはbootfs(FAT32パーティション)だけです。これにより、OSの実行ファイルや設定ファイルなどの重要な部分はコピーできません。
一方、ddコマンドを使うことで、microSDカード全体(すべてのパーティション、ブート領域、設定ファイルなど)を丸ごとバックアップすることができます。これにより、OSの完全なクローンを作成することができ、Raspberry Piに新しいmicroSDを挿しても、元と同じように起動・使用することが可能です。
この記事では、ddコマンドを使ってOSの完全バックアップと復元を行います。
1. Raspberry PiのOSをバックアップする
Step 1: microSD接続前のディスク状態を確認
まず、microSDカードを接続する前に、現在Macに接続されているディスクの状態を確認します。ターミナルを開き、以下のコマンドを実行します。
diskutil list

この時点では、Mac内蔵のディスク(disk0、disk3など)のみが表示されます。このリストを覚えておいてください。
Step 2: microSDを接続して、追加されたディスクを特定
次に、Raspberry Piに使っているmicroSDカードをMacに接続します。
再度、同じコマンドを実行します。
diskutil list

新たに表示されたディスクがRaspberry PiのmicroSDです。上の例では、/dev/disk4(32GB)が追加されています。このディスクには、Windows_FAT_32(bootパーティション)と Linux(rootパーティション)という2つのパーティションが含まれており、これがRaspberry Pi OSの特徴です。
このディスク番号(/dev/disk4)を次のステップで使用しますので、覚えておいてください。
【補足】ディスクユーティリティで確認する方法
ターミナルに慣れていない方は、macOSの「ディスクユーティリティ」アプリでも確認できます。
- アプリケーション → ユーティリティ → ディスクユーティリティ を開く
- 左側のサイドバーで「表示」メニューから「すべてのデバイスを表示」を選択
- 新たに追加されたディスク(例: 「Apple SDXC Reader Media」)を選択
- 右下の「装置」欄に表示される disk4 などのディスク番号を確認

上の画像では以下のことが確認できます。
- ディスク名: 「Apple SDXC Reader Media」(SDカードリーダー経由で接続されている)
- 容量: 31.96 GB(32GBのmicroSDカード)
- 装置:
disk4(これがターミナルで使用するディスク番号) - パーティション:
- 「NO NAME」(534.8 MB)- bootパーティション(FAT32形式)
- 「disk4s2」(31.41 GB)- rootパーティション(Linux形式)
- 接続: 「Secure Digital」(SDカード規格)
- 場所: 「内蔵」(カードリーダーがMacに内蔵されている場合)
この2つのパーティション構成(小さいFAT32パーティション + 大きいLinuxパーティション)が、Raspberry Pi OSの特徴的な構造です。
Step 3: バックアップを作成
次に、バックアップを作成します。以下のコマンドを実行して、バックアップイメージを作成します。
sudo dd if=/dev/rdisk4 of=$HOME/Downloads/raspberrypi_backup.img bs=4m
sudo: 管理者権限で実行します(Macのパスワード入力を求められる場合があります)。if=/dev/rdisk4: 入力元のデバイス名。Step 2 で確認したmicroSDカードのデバイス名(例: disk4)の先頭にrを付けたもの(rdisk4)を指定します(rを付けると高速に動作します)。of=$HOME/Downloads/raspberrypi_backup.img: 出力先。バックアップイメージをダウンロードフォルダに保存します。: ブロックサイズを指定し、処理を高速化します。bs=4m
バックアップには時間がかかります(32GBで約2〜10分程度)。実行中は画面に何も表示されず、止まっているように見えますが、バックグラウンドで処理が進んでいます。
Step 4: バックアップ確認
バックアップが完了したら、以下のコマンドでファイルサイズを確認できます。
ls -lh $HOME/Downloads/raspberrypi_backup.img
表示されたファイルサイズが、バックアップ元のmicroSDカードの容量とほぼ同じ(例: 32GBカードなら約30GB〜32GB程度)であれば、バックアップは正常に作成されています。
【補足】バックアップファイルを圧縮する
32GBのmicroSDをバックアップすると、使用量に関わらず約32GBのファイルができます。保存容量を節約したい場合は圧縮できます。
gzip $HOME/Downloads/raspberrypi_backup.img
圧縮処理には数分〜十数分かかる場合があります。実行中は画面に何も表示されず、止まっているように見えますが、バックグラウンドで処理が進んでいます。
このコマンドを実行すると、元のファイル(.img)が自動的に削除され、代わりに .img.gz という圧縮ファイルが作成されます。raspberrypi_backup.img → raspberrypi_backup.img.gz
実際のデータ内容によって圧縮率は変わります。私の環境では、32GB → 約6.5GBまで圧縮できました。
復元時は事前に解凍します。
gunzip $HOME/Downloads/raspberrypi_backup.img.gz
2. 新しいmicroSDにバックアップを復元する
Step 1: 新しいmicroSDをMacに接続
新しいmicroSDカードをMacに接続します。ターミナルで再度ディスク番号を確認します。
diskutil list
このコマンドで、新しいmicroSDのディスク番号(例えば、/dev/disk5)を正確に確認します。
Step 2: microSDをアンマウント
書き込みのために、新しいmicroSDをアンマウント(接続解除)します。
(例: ディスク番号が /dev/disk5 だった場合)
diskutil unmountDisk /dev/disk5
Step 3: バックアップイメージを復元
バックアップイメージを新しいmicroSDに復元するために、以下のコマンドを実行します。
(例: バックアップ元が disk4、新しいSDが disk5 だった場合)
sudo dd if=$HOME/Downloads/raspberrypi_backup.img of=/dev/rdisk5 bs=4m
if=$HOME/Downloads/raspberrypi_backup.img: 入力元。先ほど作成したバックアップイメージのパスです。of=/dev/rdisk5: 出力先。Step 1 で確認した新しいmicroSDのデバイス名(rを付けたもの)を指定します。bs=4m: 高速化のための設定です。
復元にも時間がかかります。完了するまで待ちます。
Step 4: 書き込み完了後、取り出し
書き込みが完了したら、以下のコマンドでmicroSDを安全に取り出します。
(例: ディスク番号が /dev/disk5 だった場合)
diskutil eject /dev/disk5
これで、新しいmicroSDにバックアップを復元できました!
【補足】より大きなmicroSDに復元した場合
32GBのバックアップを64GBのカードに復元した場合、最初は32GB分しか使えません。残りの容量を使えるようにするには、Raspberry Piを起動後に以下を実行します:
sudo raspi-config
「Advanced Options」→「Expand Filesystem」を選択し、再起動すると全容量が使えるようになります。
最後に、新しいmicroSDをRaspberry Piに挿し、正常に起動するか確認します。元の環境とまったく同じように起動・動作すれば、バックアップと復元の作業は完了です!
この記事が役立った方は、ぜひシェアしてください!
それではまた( ^_^)/~~~


コメント