PR

MacでRaspberry PiのOSを完全バックアップ&復元する手順【ddコマンド】

IoT / システム
この記事は約9分で読めます。

今回は、Raspberry PiのOSバックアップをMacで行い、その後新しいmicroSDカードに復元する方法について説明します。これで、Raspberry Piの設定や環境を丸ごとコピーして、新しいSDカードに移行できるようになります。

スポンサーリンク

Finderでコピーする方法との違い

FinderでmicroSDカードをコピーする場合、表示されるのはbootfs(FAT32パーティション)だけです。これにより、OSの実行ファイルや設定ファイルなどの重要な部分はコピーできません。

一方、ddコマンドを使うことで、microSDカード全体(すべてのパーティション、ブート領域、設定ファイルなど)を丸ごとバックアップすることができます。これにより、OSの完全なクローンを作成することができ、Raspberry Piに新しいmicroSDを挿しても、元と同じように起動・使用することが可能です。

この記事では、ddコマンドを使ってOSの完全バックアップと復元を行います。

バックアップの所要時間の目安(参考値)

  • 16GB: 約1〜5分
  • 32GB: 約2〜10分
  • 64GB: 約4〜20分

※ カードの速度やMacのスペックにより異なります。復元にもほぼ同じ時間がかかります。


1. Raspberry PiのOSをバックアップする

Step 1: microSD接続前のディスク状態を確認

まず、microSDカードを接続する前に、現在Macに接続されているディスクの状態を確認します。ターミナルを開き、以下のコマンドを実行します。

diskutil list
microSD接続前のdiskutil list結果

この時点では、Mac内蔵のディスク(disk0、disk3など)のみが表示されます。このリストを覚えておいてください。

Step 2: microSDを接続して、追加されたディスクを特定

次に、Raspberry Piに使っているmicroSDカードをMacに接続します。

再度、同じコマンドを実行します。

diskutil list
microSD接続後のdiskutil list結果

新たに表示されたディスクがRaspberry PiのmicroSDです。上の例では、/dev/disk4(32GB)が追加されています。このディスクには、Windows_FAT_32(bootパーティション)と Linux(rootパーティション)という2つのパーティションが含まれており、これがRaspberry Pi OSの特徴です。

このディスク番号(/dev/disk4)を次のステップで使用しますので、覚えておいてください。

【補足】ディスクユーティリティで確認する方法

ターミナルに慣れていない方は、macOSの「ディスクユーティリティ」アプリでも確認できます。

  1. アプリケーション → ユーティリティ → ディスクユーティリティ を開く
  2. 左側のサイドバーで「表示」メニューから「すべてのデバイスを表示」を選択
  3. 新たに追加されたディスク(例: 「Apple SDXC Reader Media」)を選択
  4. 右下の「装置」欄に表示される 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: バックアップを作成

次に、バックアップを作成します。以下のコマンドを実行して、バックアップイメージを作成します。

重要・警告
以下のコマンドの if=/dev/rdisk4 の 4 の数字は、あなたの環境によって異なります。
この番号を絶対に間違えないでください。Step 2 で確認したmicroSDカードの番号であることを何度も確認してください。
もし間違った番号(例えばMac本体のディスク)を指定すると、Mac上のデータがすべて消去され、起動しなくなります。

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分程度)。実行中は画面に何も表示されず、止まっているように見えますが、バックグラウンドで処理が進んでいます。

進捗を確認したい場合
Control + T を押すと、現在の進行状況が表示されます。
※ macOSのバージョンによっては動作しない場合があります

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.imgraspberrypi_backup.img.gz

実際のデータ内容によって圧縮率は変わります。私の環境では、32GB → 約6.5GBまで圧縮できました。

復元時は事前に解凍します。

gunzip $HOME/Downloads/raspberrypi_backup.img.gz

2. 新しいmicroSDにバックアップを復元する

重要
復元に使用する新しいmicroSDカードは、バックアップ元のカードと同じ容量、またはそれ以上の容量(例: 32GBからバックアップした場合、32GB, 64GB, 128GBのカードなど)である必要があります。

Step 1: 新しいmicroSDをMacに接続

新しいmicroSDカードをMacに接続します。ターミナルで再度ディスク番号を確認します。

diskutil list

このコマンドで、新しいmicroSDのディスク番号(例えば、/dev/disk5)を正確に確認します。

Step 2: microSDをアンマウント

書き込みのために、新しいmicroSDをアンマウント(接続解除)します。
(例: ディスク番号が /dev/disk5 だった場合)

diskutil unmountDisk /dev/disk5

Step 3: バックアップイメージを復元

バックアップイメージを新しいmicroSDに復元するために、以下のコマンドを実行します。

重要・警告
以下のコマンドの of=/dev/rdisk5 の 5 の数字は、あなたの環境によって異なります。
Step 1 で確認した「新しいmicroSDカード」の番号であることを絶対に確認してください。
もし間違った番号(例えばMac本体のディスク)を指定すると、そのディスクのデータがすべて上書きされ、消去されます。

(例: バックアップ元が 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」を選択し、再起動すると全容量が使えるようになります。

Raspberry Pi OSの最新版では、初回起動時に自動的にパーティションが拡張されることもあります。

最後に、新しいmicroSDをRaspberry Piに挿し、正常に起動するか確認します。元の環境とまったく同じように起動・動作すれば、バックアップと復元の作業は完了です!

この記事が役立った方は、ぜひシェアしてください!
それではまた( ^_^)/~~~

コメント

タイトルとURLをコピーしました