Skip to content

Releases: pacnpal/fatgrow

Release list

fatgrow 1.0.0

Choose a tag to compare

@pacnpal pacnpal released this 09 May 21:37

fatgrow 1.0.0 — first stable release

Native macOS FAT32 partition + filesystem resizer. Combined MBR slot
plus FAT32 grow on a whole disk in one shot. No libparted required, no
GParted Live USB, no Linux VM.

Validated end-to-end on real hardware

  • 8.2 GiB USB stick, 3.0 GiB FAT32 → 7.58 GiB FAT32
  • All 4,934 files preserved
  • fsck_msdos passes phases 1, 2, 3 with no errors
  • Both FAT copies remain byte-identical
  • macOS auto-mounts the resized volume cleanly

Feature set

  • fatgrow --info <target> — read-only inspection: MBR, FAT12/16/32 BPB, FSInfo
  • fatgrow --grow --size max --i-have-a-backup /dev/diskN — combined MBR
    slot + FAT32 grow
  • fatgrow --grow --size <SIZE> --i-have-a-backup <slice|image> — bare-FAT
    grow on a slice or image file
  • --dry-run — print the plan without touching disk
  • --resume — re-enter using checkpoint at /var/tmp/fatgrow-<volid>.ckpt
  • Refuses dirty filesystems, mounted slices, target ≤ current
  • Auto unmount + fsck_msdos -y at end of every successful real-disk grow

Known limitations (planned for future versions)

  • FAT16 / FAT12 grow — refuses with clear error
  • Filesystem shrink — refuses
  • GPT slot edit — refuses (read-only GPT detection only)
  • Code signing / notarization — the binary is unsigned

See CHANGELOG.md
for the full list and roadmap.

Install

curl -LO https://github.com/pacnpal/fatgrow/releases/download/v1.0.0/fatgrow-1.0.0-macos-universal.tar.gz
curl -LO https://github.com/pacnpal/fatgrow/releases/download/v1.0.0/fatgrow-1.0.0-macos-universal.tar.gz.sha256
shasum -a 256 -c fatgrow-1.0.0-macos-universal.tar.gz.sha256
tar -xzf fatgrow-1.0.0-macos-universal.tar.gz
cd fatgrow-1.0.0-macos-universal
xattr -d com.apple.quarantine ./fatgrow   # if downloaded via browser
./fatgrow --version

Read this before running anything

This tool directly rewrites partition tables and filesystem metadata.
A wrong device path, an unplugged USB stick mid-write, or undetected
hardware faults can destroy every byte on the target disk.

ALWAYS take a dd image first:

sudo dd if=/dev/rdiskN of=$HOME/diskN-backup.img bs=4m status=progress
shasum -a 256 $HOME/diskN-backup.img > $HOME/diskN-backup.sha256

fatgrow --grow refuses without --i-have-a-backup. /dev/disk0 (the
boot disk) is refused outright. Aimed at external/removable media.

Full safety + recovery instructions in the
README.

Verifying the download

shasum -a 256 -c fatgrow-1.0.0-macos-universal.tar.gz.sha256
xattr -d com.apple.quarantine ./fatgrow   # if downloaded via browser

Universal binary (arm64 + x86_64). 133 KB. Zero runtime dependencies
beyond macOS itself.