[PATCHv2] Regenerate initrd at the end of the installation (#994180)

Vratislav Podzimek vpodzime at redhat.com
Fri Sep 6 13:39:02 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 | 16 +++++++++++-----
 pyanaconda/iutil.py   |  6 ++++++
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/pyanaconda/install.py b/pyanaconda/install.py
index ab00369..c5969ab 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
@@ -52,12 +53,13 @@ def _writeKS(ksdata):
 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
+    step_count = 6
+
+    # 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
+
     progressQ.send_init(step_count)
 
     # Now run the execute methods of ksdata that require an installed system
@@ -89,6 +91,10 @@ def doConfiguration(storage, payload, ksdata, instClass):
         ksdata.addons.execute(storage, ksdata, instClass, u)
         ksdata.configured_spokes.execute(storage, ksdata, instClass, u)
 
+    # see rhbz#994180
+    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..31d7f12 100644
--- a/pyanaconda/iutil.py
+++ b/pyanaconda/iutil.py
@@ -742,3 +742,9 @@ def lowerASCII(s):
     locale-independent.
     """
     return string.translate(_toASCII(s), _ASCIIlower_table)
+
+def regenerate_initrd(root=ROOT_PATH):
+    """Regenerate initrd with dracut."""
+
+    print "Generating initrd"
+    execWithRedirect("dracut", ["-f", "--regenerate-all"], root=ROOT_PATH)
-- 
1.7.11.7



More information about the anaconda-patches mailing list