I recently got myself a Rock64 board to replace my hot and noisy Odroid XU4 as a home NAS server.
Rock64 is a relatively new SBC released in late 2017, so all development on this board is basically at its infancy.

Coming to install my favorite SBC OS Dietpi (highly recommended), I encountered this error:

Insufficient free space on rootfs.
0 MB available, 500 MB required.

It basically means that the partition sizes originally flashed with Etcher are incorrect (too small). I could confirm that by running df -h, where the root / device showed 100% used.
I knew from previous experience that partitions are being resized on first boot. Or at least they’re supposed to be.
I was not sure which partitions I was supposed to resize in order to fix this, so I looked online, only to find out that this error is not very well documented.

Eventually I found a nice and straightforward solution on Dietpi’s Github issues page here. Here’s what I ended up doing:

  1. Found out root partition / from previous command df -h. It turned out to be the 7th partition, or /dev/mmcblk1p7 (Mind the 7 from now on).
  2. gdisk /dev/mmcblk1wyy
  3. fdisk /dev/mmcblk1
    • d → Delete a partition
    • 7 → Partition number
    • n → Create a new partition
    • 7 → Partition number
    • Enter → First sector (default value)
    • Enter → Last sector (default value - use all available space)
    • y → In case the following error message shows up: Partition 7 contains a ext4 signature. Do you want to remove the signature?
    • At the end, the following error message may pop up and can be ignored: Re-reading the partition table failed. Device or resource busy.
  4. partprobe
  5. resize2fs /dev/mmcblk1p7
  6. reboot

I’m sure this bug will eventually be fixed and there won’t be any need to manually resizing partitions, but for the time being I think it’s the easiest solution that can be executed from inside the system itself while it’s running.