sd-card-images/scripts/build-image

26 lines
632 B
Bash
Executable File

#!/bin/sh
# Build empty image
IMAGE="${1}"
set -ex
# Aim for a 4 GB card but with 5% unpartitioned as a margin
# >>> (0.95 * 4000000000 // 512) * 512
# 3800000000.0
rm -f "${IMAGE}"
fallocate -v -l 3800000000 "${IMAGE}" # 3,800,000,000 bytes
parted -s "${IMAGE}" mklabel msdos
parted -s "${IMAGE}" mkpart primary fat32 -- 4MiB 32MiB # 28 MiB (50,331,648 bytes)
parted -s "${IMAGE}" mkpart primary ext2 -- 32MiB -1
parted -s "${IMAGE}" set 2 boot on
# Create empty FAT partition
rm -f vfat.img
fallocate -l 28MiB vfat.img
mkfs.vfat vfat.img
# Copy FAT partition to image
dd if=vfat.img of="${IMAGE}" bs=1K seek=4K conv=notrunc