背景
自宅のラズパイにTVサーバを導入している。結構ほしいTV番組をTailscale経由で外出時でも不意に後で見たい番組を録画しておけるので便利なのだ。
ふとある時気づいたのだが、そういえばこのTVシステムのSDカードのバックアップとっていないなぁということで、急遽バックアップを取った時のメモです。
結論
条件
以下の条件でバックアップ・リストアを実施
- バックアップ時のSDカードはリストア時のSDカードより容量が大きい(128GBだが、メーカ違いでサイズ合わず)
そのため、イメージの縮小化が必要。
得られた知識
- ddやWin32DiskImagerでバックアップを取るのはいいが、リストア先のSDカードのサイズはバックアップ元より大きい方が良い(メーカ・型番違いでサイズが微妙に異なるのでそのままリストアできないため)
- PiShrinkでバックアップイメージを縮小するも、ファイルシステムのセクタサイズもそのままバックアップされているため、raspi-configでサイズ拡張できない
未検証だが、Win32DiskImagerでバックアップリストアしたからかもしれない。ddならそのあたりはうまいことやってくれるのだろうか? - リストアしたSDカードの縮小した部分をSDカード容量一杯まで拡張するために、Windows OS + minitool partition wizardで拡張を試みるも、縮小化した部分がext4フォーマットなのでできず。そのためLinux + GPartedを利用し、無事拡張できることを確認した。
メモ (今後実施するかもしれないので)
バックアップ
Windows + Win32 Disk Imagerを利用しバックアップした。
注意点はSDカードサイズ分だけ容量を消費するので、空き領域を事前に確認しておくこと
イメージの縮小化
WSL + PyShrinkを利用し、縮小化を実施した。
コマンドプロンプトを開いて以下を実行することでWSLをインストールする。
wsl --install
WSLを開いて以下を実行することでPiShrinkをインストールする。
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
chmod +x pishrink.sh
以下を実行することでバックアップイメージを縮小化する。
(念のため、元のバックアップイメージを取っておいた方が良い)
# Eドライブに移動する
cd /mnt/e/raspi_back
# 縮小化する
sudo pishrink.sh backup_image.img
結果26GBまで縮小化できた。
なんでこんなに容量使っているのかな…Dockerのせいかな…
リストア
Windows + Win32 Disk Imagerを利用しリストアした。
縮小部分の拡張化
Linux(ubuntu) + GPartedを利用し/root領域(/dev/mmcblk0p7)を拡張した。
(GUIで操作するだけ)
動作確認
リストアしたSDカードをラズパイに挿入して動作確認。
連携しているシステムがそのままそっくり動いたら問題なし!