ラズパイで使うOSイメージをサイズ縮小してmicroSDへ書き込む方法
想定読者:
- ラズパイで64GBのmicroSDで環境構築したので、OSイメージごとバックアップしたいけど、手元に32GBのmicroSDしかない人
- 怒らない人
準備:
A. microSD A (OSの入ったもの)
B. microSD B (サイズを小さくしたOSを入れたいもの)
C. USB接続のmicroSDリーダー
D. Ubuntu22.04をインストールしたラズパイ (パーティションサイズ変更に使うだけなので、アレンジ可)
手順
OSイメージ(64GB)をリサイズする
- 準備DのUbuntu22.04を起動
- Diskユーティリティを起動
- 準備CのmicroSDリーダーを接続
- 準備AのmicroSD A を挿入
- 64GBを30GBへResizeする
リサイズしたOSイメージ(30GB)を保存
- ディスク名称の確認
$ sudo fdisk -l
# 容量みてデバイス名をみつけてください
リサイズしたOSイメージのセクター数を確認する
- ddで書き込むカウント数を算出します
$ sudo fdisk -l
...
Disk /dev/sdf: 59.69 GiB, 64088965120 bytes, 125173760 sectors
Disk model: STORAGE DEVICE
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3d39aab4
Device Boot Start End Sectors Size Id Type
/dev/sdf1 * 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/sdf2 526336 59121663 58595328 27.9G 83 Linux
1セクター512バイトで、1MBで2048セクターゆえ、
上記のセクター数から、
# カウント数を求める
59121663 ÷ 2048 = 28611
OSイメージを保存する
sudo dd if=/dev/sdb of=/tmp/raspi-image.img bs=1M count=28611
ただし、下記とする
- リサイズしたOSのmicroSDのデバイス名:/dev/sdb
- 保存先 : /tmp/raspi-image.img