Raspberry Pi4 最小サイズでのimageファイル作成手順
Raspberry Piのバックアップなどの目的でimageファイルを作成することがありますが、その容量を小さくする方法を紹介します。
作成したimageファイルが大きいために、バックアップ/レストア作業に時間がかかったり、レストアに失敗することもあります。
そのような問題点を解決するためimageファイルの縮小は欠かせません。
環境は以下となります。
環境:Raspberry Pi 4、UbuntuMATE
では早速手順を紹介します。
用意する物
・ubuntuがインストールされたPC
・PC用のSDカードリーダ
imageファイル縮小のメリット
imageファイルを小さくするメリットですが、以下の3点が挙げられます。
・SDカードの個体差の影響を受けにくい
・imageファイルサイズ以上であればより使用しているSDカードより容量の小さなSDへも使用可能
・バックアップ、レストア時間が短縮できる
領域最小化手順
1.Raspberry Piをシャットダウンし、microSDカードを抜いてPCに接続
2.superキーを押下しアクティビティを開き、Disksと検索してDisksを起動
3.左のPanelから対象SDカードを選択
4.Partition2 (Ext4)を選択
5.歯車マークを押下
6.Resizeを選択
7.スライダーを最小より1GB大きい状態に移動
8.実行
ダイアログが閉じ、Job欄がRepairing FilesystemsかResizing Filesystemになったことを確認
実行終了まで待つ
Valumes欄(ディスク容量)にFree Spaceができれば完了
9.terminalを開く
10. 該当するSDカードを探す
df -h
↑の画像のような出力が表示されるので/media/user名/system-bootとなっているFilesystemを探す
(例)/dev/sda1
11. partitionサイズの確認
前手順で調べたFilesystemから末尾の1を抜いた名前を【filesystem名】とし、↓のコマンドを実行する
sudo fdisk -l 【filesystem名】
私の場合はfilesystem名が/dev/sda1だったので、sudo fdisk -l /dev/sda
実行すると↓のようなログが出力される。
12.最終行に表示される、4列目のEnd(最後、最後までと表示される場合あり)の値を控える
デバイスの末尾に1がついている方(/dev/sda1)はシステム領域で250MBくらいあります。
デバイスの末尾に2がついている方(/dev/sda2)がRaspberry Piとして使用している領域となります。
単位が512Bのため大きな値が記載されています。
13.Ctrl + C で終了。
backup / restore 手順
1.terminalを開く
2. SDカードのドライブ名を確認する
df -h
領域最小化手順10.で調べた内容と同じはずですが念のため確認してください。
3.ドライブをアンマウントする
前手順で調べたFilesystemから末尾の1を抜いた名前を【filesystem名】とし、↓のコマンドを実行する。
umount 【filesystem名】 (例)umount /dev/sdb
4.バックアップコマンドを実行
領域最小化手順 13で控えた値を2048で割った値を切り上げます。
→控えた値が512B単位でバックアップは1MB単位で実行するため、
1MB単位でのサイズを計算しています。
>>> 33730559 / 2048 16469.99951171875 →16470
sudo dd bs=1M if=【ドライブ名】 of=【保存先】 count=カウント (例) sudo dd bs=1M if=/dev/rdisk3 of=./RPi4.img count=31729
5.復元する場合は前手順のドライブ名と保存先を入れ替えます。
sudo dd bs=1M if=【保存先】 of=【ドライブ名】 (例) sudo dd bs=1M if=./RPi4.img of=/dev/rdisk3