The 3B+ has USB booting supported by default so you just need to flash one of these Stretch based images ( I suggest the Kolibri one ) to your USB device and it will boot when plugged in.
These questions have some pretty lengthy/complicated answers but I’ll try to explain it all. Sorry if it’s long.
There are a few big issues I ran into when using multiple storage devices.
The pi won’t boot sometimes because it doesn’t know which device to boot from. USB devices seem to get named randomly so sometimes your boot device will be /dev/sda1 and other times it’s called /dev/sda2 or something else. This is a big issue because even though USB devices are less prone to corruption, this did corrupt my USB flash drives multiple times and I had to re-flash the image.
USB storage devices aren’t usable by just plugging them in unless it’s the boot device so you need to set it up to be automatically mounted at boot time to a specific path. This is also a problem due to the naming issue as it’s not reliable to expect your drive to have the same path to mount it every time.
The other issue I’ve seen is that USB booting from a flash drive can cause power issues ( low voltage warnings ) if you don’t have a proper power supply. If you’re using multiple flash drives and not drives with their own power supplies low voltage warnings happen more often.
If you get that working then you can just create a symbolic link between that device and /var/www/modules ( the modules path ) using the ln command to get it to act as more module storage. That symbolic link might need to be remade every time the drive is mounted so it would have to be written into a script. You may be able to use a MicroSD and a USB flash drive at the same time but you’d probably have to boot from the USB drive and use a symbolic link for the MicroSD. I’m not sure if that would work but it may take some work. It is something that I’m going to look at in the future and automating but I ran into issues so the best thing to do is use a single device for now.
For performance, the MicroSD is a known bottleneck with pis. Using a fast MicroSD helps significantly and the difference is very noticeable. Even though some cards are labeled as class 10 they can still be slow. I have not done extensive comparisons between USB and MicroSD but if you’re using a slower MicroSD then USB will definitely be better. What I have tested extensively is USB Booting when using the pi as a desktop PC. It significantly speeds up the performance in that area and even made the pi0w a usable desktop and made web browsing smooth. I suspect this would be the same running RACHEL. The only issue is the USB ports share the same bus as the wifi. This means it might slow down the Wifi when under heavy load. Especially when writing files/installing modules, but that is also an issue with MicroSDs. So with all of that, my preference is USB.
For the ethernet issue, the problem is that you need to connect the pi to the internet to install content. There is no desktop in this image for performance reasons so if you want to use a keyboard/mouse/monitor and connect your pi to the internet over wifi, it all has to be done in the command line for now. It can be done but it’s pretty advanced so that’s why I suggest using an ethernet port. I don’t know how advanced you are but these are the steps once you’ve logged in with username and password pi/rachel.
- “sudo systemctl stop hostapd” (stop the wifi hotspot service )
- “sudo systemctl start wpa_supplicant” ( Enable wpa_supplicant to connect over wifi )
- Follow this guide to connect to your wifi.
- Once it’s connected, get the ip address of your pi from your router page or using the “ifconfig” command
- Use a browser on a PC or other device that is connected to that same router and put in http://theipaddress
- log into the admin interface with admin/Rachel+1 and install content.
Hopefully after reboot it works. This is another thing I’m going to be making a lot easier through the admin interface in the future but for now this is the only way. Hope that all makes sense.