SDカードの中身全体を,ファイルとしてバックアップ(ラズベリーパイ)
書き戻し先には、元の SD カードと同じ容量か、それ以上の容量の SD カードが必要である.
Windows パソコンも使う.
【サイト内の Raspberry Pi 関連ページ】
小型コンピュータ Raspberry Pi について: 別ページ »にまとめ
1. 空き領域を 0 で埋める(ラズベリーパイ本体での操作)
ディスクイメージファイルは、SD カードの未使用領域も含めた全体をコピーしたものである.未使用領域を 0 で埋めておくと、圧縮したときのファイルサイズが小さくなる.
- ダミーファイルを作成して、空き領域を 0 で埋める
次のコマンドを実行.
空き領域がなくなるまで書き込みが続き、最後に「No space left on device」と表示されて終了する.これは想定どおりの動作である.
しばらく待つ.
sudo dd if=/dev/zero of=/home/mydummy bs=1M status=progress sync
- ファイルシステムの使用状況を確認
使用率が 100% になっている.
df -h
- ダミーファイルの削除
次のコマンドを実行.
削除後、使用率が元に戻ることを確認する.
sudo rm -f /home/mydummy sync df -h
- ラズベリーパイのシステムを停止する
次のコマンドを実行.
停止したことを確認してから、SD カードを抜く.
sudo shutdown now
2. ディスクイメージファイルの作成(Windows パソコンでの操作)
- Windows パソコンで,Win32 Disk Imager をインストール
- Windows パソコンに,先ほどの SD カードを挿入する
- Windows パソコンで,Win32 Disk Imager を起動する
- 「Image File」に、保存先のファイル名(拡張子は .img)を指定する
- 「Device」で、SD カードのドライブレターを選ぶ
ドライブレターの選択を間違えないこと.書き込み操作(Write)を誤って実行すると、選んだドライブの内容が消える.
- 「Read」をクリックする
SD カードの内容がディスクイメージファイルとして保存される.
- 終了の確認
- ディスクイメージファイルを圧縮する
SD カードの容量と同じサイズのファイルができるため、圧縮して保存する.空き領域を 0 で埋めてあるので、圧縮率は高くなる.
3. 別の方法
- SD Card Copier(Raspberry Pi OS に同梱)
USB の SD カードリーダに接続した別の SD カードへ、動作中の Raspberry Pi から直接コピーできる.コピー先の容量が元より小さくても、使用領域が収まれば複製できる.ファイルとしての保存ではなく、SD カードから SD カードへの複製である.
- Linux の dd コマンド
Linux パソコンに SD カードを接続し、次の形式のコマンドでイメージファイルを作成できる.デバイス名(下の例では /dev/sdX)は lsblk コマンドで確認する.
sudo dd if=/dev/sdX of=./backup.img bs=4M status=progress sync - PiShrink
Linux 上で動作するスクリプトであり、作成済みのイメージファイルから未使用領域を取り除いて小さくできる.小さくしたイメージは、書き込み後の初回起動時にパーティションが自動拡張される.