Now the new BLS stuff - https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault - has landed in Rawhide, default live installs are broken.
The problem is that the BLS entries in /boot/loader/entries are wrong. The paths they give for the kernel and initramfs have /boot at the start, but they should not, for an installed system with a /boot partition. That is, they look like this:
but they should look like this:
I *think* the reason for this is that the files are simply rsync'ed across by the live install process. They don't get regenerated during the live install at all. The code for the rsync invocation during a live install looks like this:
cmd = "rsync"
args = ["-pogAXtlHrDx", "--exclude", "/dev/", "--exclude", "/proc/",
"--exclude", "/sys/", "--exclude", "/run/", "--exclude", "/boot/*rescue*",
"--exclude", "/etc/machine-id", INSTALL_TREE + "/", util.getSysroot()]
rc = util.execWithRedirect(cmd, args)
we can see that it's excluding various things, including /boot/*rescue* , but it's *not* excluding /boot/loader. So that presumably gets rsynced straight across. And nothing in live post-install causes the entries to get re-generated, I don't think. (During a non-live install, I expect the entries get generated during kernel or grub2 package install).
I'm currently experimenting with possible fixes for this. I think we need to exclude the BLS snippet dirs from the rsync, and do something in live postinstall to regenerate the entries.
Seems like an obvious Beta blocker, as all live installs fail to boot (unless you happen to use custom partitioning and don't create a /boot , or disable BLS with the anaconda parameter to do that).
Since it's the weekend now (so this won't likely get reviewed till Monday) but I'd really like a non-screwed Rawhide compose to test other stuff, I sent out a build of anaconda with this fix patched in, for now:
The fix worked and was merged to master, so let's close this.