LUA ERROR: Can not open /boot/lua/loader.lua

I tried to install Freebsd 12.0 RC3 and got the same error as mentioned here:
Also on a amd64 box.

"Startup error in /boot/lua/loader.lua:
LUA ERROR: Cannot open /boot/lua/loader.lua:
no such file or directory"
"can't load kernel"

Is there a solution to fix this? Never had a problem to install version 11.
I wonder if I will be able to install the upcoming release: 12.0?

Thanks for any advice.


Staff member
Use the -RELEASE. The announcement should be in a few days[*], but the image is already available. The announcement will happen when all mirrors have caught up.

[*] Some time today actually.
I just upgraded from 11.2-RELEASE to 12.0-RELEASE, and now my system is broken in the exact same way. A simple ls /boot/ on the loader's terminal gives the message "open ´boot´ failed: no such file or directory". Is /boot/ empty, or somehow inaccessible? ls / still shows the directory to be present, but like most others its contents can't be listed.

Any idea on how this can be fixed?

Edit: Out of curiosity I tried to install from FreeBSD-12.0-RELEASE-amd64-dvd1.iso, as this is not a critical machine. Same thing happens even with a completely clean install.
I upgraded three 11.2 systems to 12.0 last night and had no issues. These are running ZFS, but only on a single disk without any mirroring or ZRAID. This means that the standard installer puts /boot on the same dataset as /. If you have a mirror/ZRAID I believe the installer creates a new dataset specifically for /boot? I'm wondering if that may have something to do with the issue you guys are seeing.
Hm, I'm using UFS, and everything is on one disklabel. It's an older BIOS-based machine in my case.

Edit: There is one more thing. When booting from the installation medium, or attempting to boot 12.0 from the system disk, when it lists the disks, it says something like "Error: Reading 1 to 0 on 1" or so, including a hex address (unure if the address points at RAM or disk). Not sure what the exact wording of the message was, but it looks like an I/O error. I just created a FreeBSD 11.2-RELEASE installation medium, and it doesn't show that message at all.

Will install 11.2 now to see whether it's a hardware issue or not.

Edit 2: Alright, 11.2 works. 12.0 doesn't, neither as an upgrade, nor as a fresh installation (to UFS on a BSD disklabel).
Right honorable operators, salute. I have a mind to try FreeBSD-12.0-RELEASE using MBR partitioning scheme and traditional BSD disklabel. Onwards I hope to reproduce the above labouring under difficulties. Coming after intence internalization, I shall plan for deliverance of evil (in all honesty this could take a month of Sundays).
Yup ran into this on a clean install, one other disk in the machine that shouldn't have been touched.
There's a bug report someone made but no answer to it yet.
Ok, in my case, I fixed it by choosing MBR for Boot. I'd had GPT, and I don't feel like playing with it at this point, MBR will work fine for me on this machine.
I guess next time I'm making a full backup of my FreeBSD notebook before attempting an upgrade to 12.x. :p

Because, upon reinstallation of 11.2 I chose to install to BSD disklabels again.

Deleted member 30996

Using the FreeBSD-12.0-RELEASE-amd64-memstick.img medium with UFS and BSD Partitioning I got the same error about not being able to load the kernel. I went with UFS and MBR and populating my ports tree now.

My em0 card was recognized without any problems.
So many problems with 12.0. Looks like is better to wait for 12.1? I am ready to install from scratch and I have redy FreeBSD-12.0-RELEASE-amd64-memstick.img but after all that reading I think it is safer to put on 11.2 which worked for me long time.
I have the same problem on FreeBSD in Hyper-V after 12.0-RELEASE upgrade.
What is the currdev and loaddev values from command 'show' in loader prompt ?
Is it normal to have different values that from lsdev returns ?
What is the right way to fix correct values for currdev and loaddev ?
I'm hitting the exact same problem here - running on Hyper-V with a BSD disklabel after using freebsd-update to upgrade from 11.2-RELEASE-p8 to 12.0-RELEASE-p2.

After upgrade but before reboot, if I copy /boot/kernel/kernel to /kernel, I can load it and boot into single user mode. The filesystem looks totally fine beyond that, I can see the files in /boot and everything appears normal.

Is there a limitation on the /boot directory in terms of which cylinder it's loaded on beyond which the boot1 loader can't see things?

I'm going to keep experimenting and see if I can figure out how to fix this.
When I interrupt BTX and try to boot from /boot/kernel/kernel, I get this:

Screenshot 2019-01-27 at 06.34.41.png
Tried copying the /boot directory before / after the update -

cp -Rp /boot /boot11
freebsd-update -r 12.0-RELEASE upgrade
freebsd-update install
cp -Rp /boot /boot12

Same error post boot.
Still can't ls /boot
Also can't ls /boot11 or /boot12
(/boot11 does not show up in the loader's file listing)

Do I just have a bad filesystem here?
As others have pointed out:

  1. Copy /boot/loader to /boot/loader.112
  2. Run freebsd-update -r 12.0-RELEASE upgrade
  3. Run freebsd-update install
  4. Copy /boot/loader.112 to /boot/loader
  5. Reboot
  6. Continue post-installation steps as usual.

Now on to my biggest ZFS system to see how much more trouble I can get into.