i have a hard drive (my old ps3 phat 80gig drive) runnig with retropie. Although i did a fairly simple thing.
Basically i first checked if the drive worked (got powered / came out of sleep) correctly with the pi once that was done i created a “roms” folder on the drive with the same subdirectories as the ones that are availible on the sdcards rom folder (~/RetroPie/roms)
then i moved all my roms to that folder on the hard drive (you could do this beforehand as well, i mean not using the pi). One i was sure all my roms were moved / copied to the hard disk i removed the folder on the sdcard and then basically just created a symbolic link to the hard disk. (ln -s path/to/harddisksystemsromfolder originalromfoldername when being in the directory where the subdirectory existed) and then it seems as if the folders exist in the same location on the sd card except they are linking to the roms folder on the hard disk. this seems to work fine for me and i’m not doing it for all systems just a few.
you could probably do this for the complete roms folder instead of system per system.
i also edited /etc/fstab to make the harddisk Always mount on the same point, make pi user the owner of the folder (otherwise it was read only access only with me).
that’s what i did but i was lazzy 🙂