23.09.1 to 24.03 Beta Not Setting Proper Boot Environment
-
Not exactly sure what's going on or how to debug this best but I was having issues between 24.03 beta builds where it would always boot back into a temp environment so I restored back to a previous snapshot of the VM where I was on 23.09.1 and tried to start "fresh".
Upgrading to the current 24.03.b.20240307.0536 build will create a backup boot environment called "default_20240307064036" and then set that to active which causes the system to boot up in 23.09.1 instead of staying on "default" which would boot into the newest beta build. So it would seem the system is setting the copied/backup boot environment as the target boot environment which is definitely not the right behavior. -
To add, what I was seeing prior to the snapshot revert was similar but not exactly the same. Instead the system would constantly set the previous boot environment as a temp boot environment and no matter how many times I rebooted it would always reboot into that temp environment until I deleted that boot environment marked as a temp boot environment and then rebooted and it would boot fine until the next build.
-
Go to update settings and check the defer reboot option. Try the upgrade again. Now take a screenshot of the BE list
-
@cmcdonald said in 23.09.1 to 24.03 Beta Not Setting Proper Boot Environment:
Go to update settings and check the defer reboot option. Try the upgrade again. Now take a screenshot of the BE list
Sure thing, this is after updating to today's build from 24.03.b.20240307.0536 and deferring the reboot:
-
Perfect, that's what it should look like. Now run the following commands:
bectl mount default touch /tmp/be_mount.XXXX/verbose_rc bectl unmount -f default
Reboot and watch the console.
You see a ton more output. I need this output
-
@cmcdonald Sounds good, is there a file that will be written to as well I can grab?
Otherwise I'll try to figure out how to grab all the console output from proxmox. -
@Lurick unfortunately no, the filesystem is read-only until later in the boot process. Maybe record a video of the proxmox console? You can email me at cmcdonald<at>netgate.com
-
This post is deleted! -
@cmcdonald
A bit confused because it's doing this but it keeps booting into the non-temp boot environment which is the old version. So it seems to be behaving backwards to what it should be doing?Current Boot Environment: default_20240308062713 Temporary Boot Environment: default Next Boot Environment: default_20240308062713
I did this and didn't see any additional output after rebooting either:
[24.03-BETA][admin@]/root: bectl mount default_20240308062713 boot environment is already mounted Failed to mount bootenv default_20240308062713 at temporary path (null) [24.03-BETA][admin@firewall]/root: bectl mount default /tmp/be_mount.2qOj [24.03-BETA][admin@firewall]/root: touch /tmp/be_mount.2qOj/verbose_rc [24.03-BETA][admin@firewall]/root: bectl unmount -f default
I did capture a couple videos though, will send those over shortly.
-
Sent both videos with links.
-
What version of CE did you upgrade from?
-
@cmcdonald I can't even remember at the moment, I might not have even done that since I think I started on 22.01 from the ISO but maybe it was the CE version available around that time. So maybe 2.5?
-
The problem is your boot loader is REALLY old. As old as whatever the first version you installed was. So old in fact that the loader at that time didn't even understand temporary boot environments.
We recently started updating the boot loader on EFI but haven't done the BIOS path yet. I'm working on that today.
In the mean time, I will circile back after lunch and give you instructions on how to update the boot loader manually.
-
@cmcdonald That makes sense, yah the VM has been around for a while now so that's not surprising!
-
-
/root: gpart show => 40 157286320 da0 GPT (75G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 155185152 3 freebsd-zfs (74G) 157284352 2008 - free - (1.0M)
-
@Lurick said in 23.09.1 to 24.03 Beta Not Setting Proper Boot Environment:
/root: gpart show => 40 157286320 da0 GPT (75G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 155185152 3 freebsd-zfs (74G) 157284352 2008 - free - (1.0M)
cool
so you'll want to do the following (assuming
default
is still the upgraded BE anddefault_20240308062713
is the old BE.bectl mount default gpart bootcode -b /tmp/be_mount.XXXX/boot/pmbr -p /tmp/be_mount.XXXX/boot/gptzfsboot -i 1 da0 bectl unmount -f default bectl activate -t default shutdown -r now
You should now boot into
default
at which point it will set itself to be the Next Boot Environment (assuming that it does boot properly) -
@cmcdonald Awesome, thanks!
It booted up just fine and without issue, just had to fix the typo, haha :)
Will monitor over the next couple of updates and make sure but hopefully that fixed it! -
And I will be teaching the
pfSense-boot
package how to update BIOS systems :) -
@cmcdonald
Awesome, just make sure you use default and not defaut ;)