[PATCH] Regenerate initrd on live installations (#994180)

Vratislav Podzimek vpodzime at redhat.com
Thu Sep 5 13:32:43 UTC 2013


Fedora now uses --host-only initrds that don't have all keymaps, just the one
that was set in the /etc/vconsole.conf at the time of initrd generation.

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 pyanaconda/install.py | 19 +++++++++++++++----
 pyanaconda/iutil.py   |  5 +++++
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/pyanaconda/install.py b/pyanaconda/install.py
index ab00369..0a42b2e 100644
--- a/pyanaconda/install.py
+++ b/pyanaconda/install.py
@@ -27,6 +27,7 @@ from pyanaconda.progress import progress_report, progressQ
 from pyanaconda.users import createLuserConf, getPassAlgo, Users
 from pyanaconda import flags
 from pyanaconda import timezone
+from pyanaconda import iutil
 from pyanaconda.i18n import _
 from pyanaconda.threads import threadMgr
 import logging
@@ -53,11 +54,16 @@ def doConfiguration(storage, payload, ksdata, instClass):
     from pyanaconda.kickstart import runPostScripts
 
     step_count = 5
-    # if a realm was discovered,
-    # increment the counter as the
-    # real joining step will be executed
+
+    # if a realm was discovered, increment the counter as the real joining step
+    # will be executed
     if ksdata.realm.discovered:
-        step_count = 6
+        step_count += 1
+
+    # one more step for regenerating initrd in live installations (see #994180)
+    if flags.flags.livecdInstall:
+        step_count += 1
+
     progressQ.send_init(step_count)
 
     # Now run the execute methods of ksdata that require an installed system
@@ -89,6 +95,11 @@ def doConfiguration(storage, payload, ksdata, instClass):
         ksdata.addons.execute(storage, ksdata, instClass, u)
         ksdata.configured_spokes.execute(storage, ksdata, instClass, u)
 
+    # see rhbz#994180
+    if flags.flags.livecdInstall:
+        with progress_report(_("Generating initrd")):
+            iutil.regenerate_initrd()
+
     if ksdata.realm.discovered:
         with progress_report(_("Joining realm: %s") % ksdata.realm.discovered):
             ksdata.realm.execute(storage, ksdata, instClass)
diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
index 4e362ff..dd6eb9d 100644
--- a/pyanaconda/iutil.py
+++ b/pyanaconda/iutil.py
@@ -742,3 +742,8 @@ def lowerASCII(s):
     locale-independent.
     """
     return string.translate(_toASCII(s), _ASCIIlower_table)
+
+def regenerate_initrd(root=ROOT_PATH):
+    """Regenerate initrd with dracut."""
+
+    execWithRedirect("dracut", ["-f"], root=ROOT_PATH)
-- 
1.7.11.7



More information about the anaconda-patches mailing list