I won’t be able to answer everything, but as a general rule I have observed various programs running on Linux which do not recognize fat32 (VFAT) or NTFS partitions (e.g., vlc). If you have an option to format as ext4, then this could simplify your life (or perhaps not…but it is fairly trivial to switch to ext4 if nothing depends on VFAT).
Note also that non-Linux filesystems do not understand many of the Linux permissions. I believe chown though should work if you use sudo, and if the mount is writable.
In many cases you would need to add a VFAT kernel module to use VFAT, but that just depends. Some installs already include this. Sometimes you need to install VFAT user space tools as well.
Note that “fdisk” is an older partitioning tool, and is not intended to work with the newer GPT partitions, but generally speaking fdisk should able to see or list such partitions despite not having the ability to create such partitions. The correct tool to use for this is “gdisk” (e.g., “sudo gdisk -l /dev/mmcblk1” to list the first SD card, mmcblk1, on a dev kit carrier board).
A better tool is to list block devices:
Note that the “-f” lists UUID and mount point. If you want a specific SD card partition to mount in a particular place automatically, or to be limited to a particular mount point, then the UUID is a good way to do this. If your UUID (as a contrived example, please adjust for your case) is “01234ABCD”, and if you happen to have the mount point “/usr/local/sd”, then this would allow mounting to the correct location with simpler commands than normal, but also not require the device during boot via this line in “/etc/fstab” (also assumes “ext4”, but it could be “vfat”):
# "noauto" means the mount will not occur automatically, but if you issue the
# "sudo mount /usr/local/sd" command, then the mount will work there for that exact
UUID=01234ABCD /usr/local/sd ext4 noauto,owner 0 0