You cannot change only a few bytes in a sector without reading / writing only 512 bytes. So you really need RAM for the buffer.
However, there are ways to pre-assign the file space or update the FAT to anyone who writes. This will even save write cycles, but can lead to data loss when the power is turned off before the FAT update (however, this may not ruin the file system if it is executed correctly).
As you state that these are cheap ArduinoNano (clones - presumably), you can just use two of them related to UART / SPI / i2C - everything is available, even 8 bit bit-bang will work.
One does what is needed, and the other only for processing SD card / FAT.
Reminds me of the Comodore 64 and its 1541 floppy drive, which also included a small processor (well, "MCU", but not one chip).
source share