To clear this up a bit, there is a key in batocera-boot.conf which defines where to look for the userdata in. By default, this is “INTERNAL”, which tells Batocera to “look at the next immediate partition on the disk you booted from”. If instead it says “ANYEXTERNAL”, it looks for the first partition not on the disk that was booted from (on a computer this makes little sense because of how unreliable that is, but for SBCs or handhelds where it’s only physically feasible to have a single additional external storage this makes more sense).
When you want to specify a different drive, you would need to set this key to “DEV” followed by the GUID of the disk partition you wish to use. When you are selecting which partition you want to use as your external storage from the “system storage” menu in the user interface, this is essentially what you are doing.
The network option is not available to be picked from the menu, it must be manually configured. It’s on the “list of things to do but aren’t really that important so it will always get pushed down as other more important things need addressing”. While the network option is selected, the “system storage” field will appear as blank in the menu. Simply entering the menu will cause it to override the boot configuration with the default value.
The confusion arises from the usage of external referring to any drive that is not the boot drive, a holdover from the SBC focused days. When people are inserting a USB into the system, they consider that to be the “external” drive, when if that’s the drive you’re running Batocera from then it’s technically the “internal” drive.
The solution would be to overhaul the naming system entirely, but then that means everyone who’s learned the legacy way would have to relearn everything again. At this point in time, it’s simply not worth the effort to do that and rewrite all the documentation.