Over the course of the week-end, I (finally) upgraded from FreeNAS 11.3 to TrueNAS Core 12.0.
One of the most notable things with the new version is that it is strongly discouraged to use a USB stick as boot drive. Since my NAS has an internal USB port for a boot stick, it is of course what I have been using since the beginning: a very small SanDisk Cruzer Fit of 16GB. Good opportunity to use that old (but unused) Intel SSD of 40GB that has been forgotten in the unnamed box of electronics.
My initial thought was to unplug everything from the motherboard, the data hard drives, the boot USB stick, the ethernet cable, and install TrueNAS on the SSD. Not only is that a bit on the paranoid side, it is also completely unnecessary. It turns out plugging in the SSD and adding it to the ZFS boot pool was enough to seamlessly upgrade my boot storage to a two-disk mirror. As a side-effect, my boot pool is limited by the smaller disk but I now have a mirrored boot pool. Yay for redundancy. 16GB is enough for now anyway, the main disk space use is on OS upgrade to create a new boot environment. That does not happen so often to me (sic).
It is worth noting that the NAS do have a fifth SATA port, for the optional ODD (Optical Disk Drive). I decided to flash the BIOS with a well-known community mod to allow disabling the IDE mode on this fifth port, thus allowing the full SATA-3Gbps bandwidth.
If the USB stick comes to fail, I will still be able to boot the NAS from the SSD (which is the boot drive anyway). When that happens, I might get a USB-to-SATA adapter and fit another small SSD somewhere in the NAS enclosure to keep the mirrored boot pool.
Back to the upgrade: booting off a USB stick with TrueNAS Core 12.0 and selecting the "upgrade" process went as smooth as can be expected. And… that's it, the NAS is up-to-date now. I am still impressed by how little maintenance is actually needed for FreeNAS/TrueNAS. Setting things up do take some time, though.