@stephenw10
Well I figured out why loader.conf.local is seeming to be reverted. It's due to the script:
/etc/inc/pfsense-utils.inc
The fields I had been adding are specifically ones that are removed by this script.
/* These values should be removed from loader.conf and loader.conf.local
* As they will be replaced when necessary. */
$remove = array(
"hint.cordbuc.0",
"hint.e6000sw.0",
"hint.gpioled",
"hint.mdio.0.at",
"hint-model.",
"hw.e6000sw.default_disabled",
"hw.hn.vf_transparent",
"hw.hn.use_if_start",
"hw.usb.no_pf",
"net.pf.request_maxcount",
"vm.pmap.pti",
);
if (!$local) {
/* These values should only be filtered in loader.conf, not .local */
$remove = array_merge($remove, array(
"autoboot_delay",
"boot_multicons",
"boot_serial",
"comconsole_speed",
"comconsole_port",
"console",
"debug.ddb.capture.bufsize",
"hint.uart.0.flags",
"hint.uart.1.flags",
"net.link.ifqmaxlen",
"hint.hwpstate_intel.0.disabled",
"loader_conf_files",
"machdep.hwpstate_pkg_ctrl",
"net.pf.states_hashsize"
));
}
I had been adding the "hint.gpioled" fields that would normally be picked up by loading loader.conf.lua if the unit is detected as a Netgate 8200. However, I noticed that my configuration in loader.conf.local that configures the two "smbios" fields to trick the software into thinking it is truly installing on a Netgate 8200 wasn't always being picked up before loader.conf.lua was read and processed, so I thought adding it to loader.conf.local would be a safe bet. As it turns out, the script pfsense-utils.inc doesn't like me doing that and is removing these entries.
Mystery solved. Now if I can just figure out why the bootstrapping process is getting hung up at the start, I'll be golden.