parent
7d8060b9e3
commit
dc43817ead
@ -0,0 +1,80 @@
|
|||||||
|
From e5619c9d094833fd9d256c2c8d1ad22fc43b3b13 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adam Williamson <awilliam@redhat.com>
|
||||||
|
Date: Fri, 9 Nov 2018 14:42:28 -0800
|
||||||
|
Subject: [PATCH] Re-generate BLS loader file snippets on live installs
|
||||||
|
(#1648472)
|
||||||
|
|
||||||
|
Currently, on live installs, the BLS loader snippets that are
|
||||||
|
part of the live image itself - in /boot/loader/entries - are
|
||||||
|
simply rsync'ed into the installed system along with everything
|
||||||
|
else. This is no good in most cases because they point to
|
||||||
|
`/boot/vmlinuz-(foo)` and `/boot/initramfs-(foo)` (since the
|
||||||
|
live image itself does not have a separate /boot partition),
|
||||||
|
whereas most installs will have a separate /boot partition so
|
||||||
|
the path specified in the config snippet should not include
|
||||||
|
`/boot`. (The files are also named for the machine ID that was
|
||||||
|
used during live image generation, which will not be the machine
|
||||||
|
ID of the installed system; I'm not sure exactly what the
|
||||||
|
consequences of this are, probably nothing major but it may be
|
||||||
|
somehow an issue when the kernel is removed, perhaps.)
|
||||||
|
|
||||||
|
To fix this, we should exclude these files from the rsync, and
|
||||||
|
instead do something to have them re-generated after the rsync
|
||||||
|
has run. There are a few different ways and places we could do
|
||||||
|
this, but my choice is to run `kernel-install` in live payload
|
||||||
|
postInstall. This seems like it should be fairly robust. In
|
||||||
|
testing it does the job, both BIOS and UEFI installs that I
|
||||||
|
tested installed cleanly and booted successfully. Note that
|
||||||
|
`kernel-install` must run *after* `/etc/machine-id` exists in
|
||||||
|
the install root, or it will bail immediately and do nothing.
|
||||||
|
Note that at present, the 'Generating rescue image' step in
|
||||||
|
`install()` actually results in the generation of a machine ID,
|
||||||
|
so this could be done any time after that, but doing it after
|
||||||
|
the explicit failsafe machine ID generation in `postInstall()`
|
||||||
|
seems safest.
|
||||||
|
|
||||||
|
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||||
|
---
|
||||||
|
pyanaconda/payload/livepayload.py | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/pyanaconda/payload/livepayload.py b/pyanaconda/payload/livepayload.py
|
||||||
|
index 04f7e2b79..2749f540e 100644
|
||||||
|
--- a/pyanaconda/payload/livepayload.py
|
||||||
|
+++ b/pyanaconda/payload/livepayload.py
|
||||||
|
@@ -48,6 +48,7 @@ from pyanaconda.anaconda_loggers import get_packaging_logger
|
||||||
|
log = get_packaging_logger()
|
||||||
|
|
||||||
|
from pyanaconda.errors import errorHandler, ERROR_RAISE
|
||||||
|
+from pyanaconda.flags import flags
|
||||||
|
from pyanaconda.progress import progressQ
|
||||||
|
from blivet.size import Size
|
||||||
|
import blivet.util
|
||||||
|
@@ -143,6 +144,7 @@ class LiveImagePayload(ImagePayload):
|
||||||
|
# file system boundaries
|
||||||
|
args = ["-pogAXtlHrDx", "--exclude", "/dev/", "--exclude", "/proc/",
|
||||||
|
"--exclude", "/sys/", "--exclude", "/run/", "--exclude", "/boot/*rescue*",
|
||||||
|
+ "--exclude", "/boot/loader/", "--exclude", "/boot/efi/loader/",
|
||||||
|
"--exclude", "/etc/machine-id", INSTALL_TREE + "/", util.getSysroot()]
|
||||||
|
try:
|
||||||
|
rc = util.execWithRedirect(cmd, args)
|
||||||
|
@@ -194,9 +196,16 @@ class LiveImagePayload(ImagePayload):
|
||||||
|
super().postInstall()
|
||||||
|
|
||||||
|
# Make sure the new system has a machine-id, it won't boot without it
|
||||||
|
+ # (and nor will some of the subsequent commands)
|
||||||
|
if not os.path.exists(util.getSysroot() + "/etc/machine-id"):
|
||||||
|
+ log.info("Generating machine ID")
|
||||||
|
util.execInSysroot("systemd-machine-id-setup", [])
|
||||||
|
|
||||||
|
+ for kernel in self.kernelVersionList:
|
||||||
|
+ if flags.blscfg:
|
||||||
|
+ log.info("Regenerating BLS info for %s", kernel)
|
||||||
|
+ util.execInSysroot("kernel-install", ["add", kernel, "/lib/modules/{0}/vmlinuz".format(kernel)])
|
||||||
|
+
|
||||||
|
@property
|
||||||
|
def spaceRequired(self):
|
||||||
|
return Size(util.getDirSize("/") * 1024)
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
Summary: Graphical system installer
|
Summary: Graphical system installer
|
||||||
Name: anaconda
|
Name: anaconda
|
||||||
Version: 30.10
|
Version: 30.10
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+ and MIT
|
License: GPLv2+ and MIT
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
URL: http://fedoraproject.org/wiki/Anaconda
|
URL: http://fedoraproject.org/wiki/Anaconda
|
||||||
@ -19,6 +19,9 @@ URL: http://fedoraproject.org/wiki/Anaconda
|
|||||||
# make dist
|
# make dist
|
||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
|
|
||||||
|
# Fix Rawhide live image boot fail bug #1648472
|
||||||
|
Patch0: 0001-Re-generate-BLS-loader-file-snippets-on-live-install.patch
|
||||||
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
# Versions of required components (done so we make sure the buildrequires
|
||||||
# match the requires versions of things).
|
# match the requires versions of things).
|
||||||
|
|
||||||
@ -251,6 +254,7 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# use actual build-time release number, not tarball creation time release number
|
# use actual build-time release number, not tarball creation time release number
|
||||||
@ -353,6 +357,9 @@ update-desktop-database &> /dev/null || :
|
|||||||
%{_prefix}/libexec/anaconda/dd_*
|
%{_prefix}/libexec/anaconda/dd_*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 09 2018 Adam Williamson <awilliam@redhat.com> - 30.10-2
|
||||||
|
- Backport PR #1688 to fix Rawhide bug #1648472
|
||||||
|
|
||||||
* Tue Nov 06 2018 Martin Kolman <mkolman@redhat.com> - 30.10-1
|
* Tue Nov 06 2018 Martin Kolman <mkolman@redhat.com> - 30.10-1
|
||||||
- Make the pyanaconda/image.py more pep8 (jkonecny)
|
- Make the pyanaconda/image.py more pep8 (jkonecny)
|
||||||
- Test image repodata folder based on treeinfo file (jkonecny)
|
- Test image repodata folder based on treeinfo file (jkonecny)
|
||||||
|
Loading…
Reference in New Issue
Block a user