Win32DiskImager says SD card too small even though I'm trying to write an 8gb image to an 8gb SD card
Use SDImager.exe instead. It will write disk image until it runs out of room on the SD card. Most Linux images have blank (allocated) space at the end of the image so normally the unwritable data is not important.
https://sourceforge.net/projects/sdimager/