Solved Upgrading from 13 to 14, caught in boot loader hell?

Hello!

I feel like I've been here before, and I was able to fix it with relative ease, but today, I'm stuck...

Upgraded 13.x to 14.x, reboot, and well -it won't. Okay, I've seen this before and research suggest I'm correct - I didn't update my bootloader files.

Running zfs as zroot.. Create 14.5-RELEASE USB stick, boot to interactive shell.

Mount /dev/ada0p1 on /tmp/foo. I can see the old bootloader: BOOTx64.efi.

Attempt to copy /boot/loader.efi to /tmp/foo/efi/boot/loader.efi..

"Input output error".. If I try to simply make a backup copy of the existing BOOTx64.efi, I get "arguement list too long".. Wtf?

Try various flavors of the same thing - try switching to the boot mirror at ada1p1.

All the same thing - for no amount of money and effort can I get the new boot loader to copy into the partition!

Working on the console via KVM, which makes cut and paste of actual error messages a pain in the ass, but I am following what appears to be a quite common recovery recipe that can be found on the web easily. So, I am not the first one to be stuck here..

mkdir /tmp/foo (this works.)
mount -t msdosfs -o longnames /dev/ada0p1 /mnt/foo (this works.)
cp /boot/loader.efi /mnt/foo/efi/boot/loader.efi (this fails..)

I can touch an empty file, but if I try to redirect some test into it, it fails with "write error on std out".

Thanks for any thoughts!


Any thoughts on what I might be doing wrong?
 
I'm not so sure that it's a problem with the loader unless you did zpool upgrade.
What are the messages you get when you try to boot normally?
 
  • Like
Reactions: mro
is the efi partition big enough , has place free ?
df -h
Ah.. Looking at gpart, I see the partition is only 800k - enough to fit the boot loader, but NOT enough to hold a backup of the old loader and the new loader at the same time! THANK YOU! Pretty misleading messages for the most part..

So, I was able to copy loader.efi to /dev/ada0p1 after mounting and removing the old bootloader.. BUT..

Still won't boot.

I did rename the loader to match the original name, aka: BOOTx86.efi, which also matches the... The.. Oh, wait..

I RE-renamed the boot loader file to BOOTx64.efi, which matches the contents of startup.nsh..

root@laatikko:/tmp/foo/efi/boot # ls -la
total 649
drwxr-xr-x 1 root wheel 512 Apr 16 2018 .
drwxr-xr-x 1 root wheel 512 Apr 16 2018 ..
-rwxr-xr-x 1 root wheel 662528 Mar 29 13:46 BOOTx64.efi
-rwxr-xr-x 1 root wheel 12 Apr 16 2018 startup.nsh
root@laatikko:/tmp/foo/efi/boot # cat startup.nsh
BOOTx64.efi
root@laatikko:/tmp/foo/efi/boot #

Sooo.. I'd say "saved"!, but now it appears my update is borked in some way I can't quite see how to recover from?

root@laatikko:/tmp/foo/efi/boot # pkg info
ld-elf.so.1: Shared object "libssl.so.111" not found, required by "pkg"
root@laatikko:/tmp/foo/efi/boot #

I thought, oh, I should just re-light up the upgrade, but:

root@laatikko:/tmp/foo/efi/boot # freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 14.3-RELEASE-p10.
root@laatikko:/tmp/foo/efi/boot # freebsd-update install
No updates are available to install.
Run 'freebsd-update [options] fetch' first.
root@laatikko:/tmp/foo/efi/boot #

So... I've booted, I can gain a shell via SSH, but it's clear some of my shared libraries are borked for some reason..

I'm gonna try to upgrade to 14.5 from 14.3 and see if perhaps that helps my situation.

THANKS SO MUCH for the lead - making progress - the goal, of course is an upgrade to 15 so I can forget about this for another decade or so.. ;-)
 
All fixed up - upgrade to 15.0-P5 a success, all jails updated.. AND, tested boot from both boot mirrors - all appears well!

This is SOLVED!
 
Code:
ld-elf.so.1: Shared object "libssl.so.111" not found, required by "pkg"
The pkg binary you were running was built against OpenSSL 1.1 (FreeBSD 13) and you had upgraded to FreeBSD 14 which is OpenSSL 3.0.

Upgrading to 15 (OpenSSL 3.5) has meant you are running an upgraded/different pkg built against the available version of OpenSSL.

It's a moot point for you, but just in case someone stumbles across the same message.
 
Back
Top