From: Mark Huang Date: Tue, 22 Aug 2006 22:03:00 +0000 (+0000) Subject: always regenerate initrd before booting in case hardware changes or new kernel is... X-Git-Tag: myplc-0_4-rc3~1 X-Git-Url: http://git.onelab.eu/?p=bootmanager.git;a=commitdiff_plain;h=688d3a471e2e0a6f63fcf4d3515f7e96c65c04ef always regenerate initrd before booting in case hardware changes or new kernel is installed --- diff --git a/source/BootManager.py b/source/BootManager.py index 76b42e5..c4eea37 100755 --- a/source/BootManager.py +++ b/source/BootManager.py @@ -191,6 +191,7 @@ class BootManager: InstallInit.Run( self.VARS, self.LOG ) if ValidateNodeInstall.Run( self.VARS, self.LOG ): WriteModprobeConfig.Run( self.VARS, self.LOG ) + MakeInitrd.Run( self.VARS, self.LOG ) WriteNetworkConfig.Run( self.VARS, self.LOG ) # the following step should be done by NM UpdateNodeConfiguration.Run( self.VARS, self.LOG ) diff --git a/source/steps/InstallUninitHardware.py b/source/steps/InstallUninitHardware.py index a54534f..df99515 100644 --- a/source/steps/InstallUninitHardware.py +++ b/source/steps/InstallUninitHardware.py @@ -70,9 +70,6 @@ def Run( vars, log ): except OSError, e: pass - log.write( "Unmounting proc.\n" ) - utils.sysexec( "umount %s/proc" % SYSIMG_PATH, log ) - log.write( "Shutting down swap\n" ) utils.sysexec( "swapoff %s" % PARTITIONS["swap"], log ) diff --git a/source/steps/InstallWriteConfig.py b/source/steps/InstallWriteConfig.py index 2d1582c..ee5a0cc 100644 --- a/source/steps/InstallWriteConfig.py +++ b/source/steps/InstallWriteConfig.py @@ -130,33 +130,6 @@ def Run( vars, log ): if method == "dhcp": utils.sysexec( "cp /etc/resolv.conf %s/etc/" % SYSIMG_PATH, log ) - # the kernel rpm should have already done this, so don't fail the - # install if it fails - log.write( "Mounting /proc in system image\n" ) - utils.sysexec_noerr( "mount -t proc proc %s/proc" % SYSIMG_PATH, log ) - - # mkinitrd references both /etc/modprobe.conf and /etc/fstab - # as well as /proc/lvm/global. The kernel RPM installation - # likely created an improper initrd since these files did not - # yet exist. Re-create the initrd here. - log.write( "Making initrd\n" ) - - # trick mkinitrd in case the current environment does not have device mapper - fake_root_lvm= False - if not os.path.exists( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]) ): - fake_root_lvm= True - utils.makedirs( "%s/dev/mapper" % SYSIMG_PATH ) - rootdev= file( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]), "w" ) - rootdev.close() - - initrd, kernel_version= systeminfo.getKernelVersion(vars,log) - utils.removefile( "%s/boot/%s" % (SYSIMG_PATH, initrd) ) - utils.sysexec( "chroot %s mkinitrd /boot/initrd-%s.img %s" % \ - (SYSIMG_PATH, kernel_version, kernel_version), log ) - - if fake_root_lvm == True: - utils.removefile( "%s/%s" % (SYSIMG_PATH,PARTITIONS["mapper-root"]) ) - log.write( "Writing node install version\n" ) utils.makedirs( "%s/etc/planetlab" % SYSIMG_PATH ) ver= file( "%s/etc/planetlab/install_version" % SYSIMG_PATH, "w" ) diff --git a/source/steps/WriteModprobeConfig.py b/source/steps/WriteModprobeConfig.py index a50fcc4..d50ef4d 100644 --- a/source/steps/WriteModprobeConfig.py +++ b/source/steps/WriteModprobeConfig.py @@ -13,6 +13,7 @@ import utils import systeminfo import BootAPI import ModelOptions +import notify_messages def Run( vars, log, filename = "/etc/modprobe.conf"): """ diff --git a/source/steps/__init__.py b/source/steps/__init__.py index 912c6ff..16550f3 100644 --- a/source/steps/__init__.py +++ b/source/steps/__init__.py @@ -31,5 +31,6 @@ __all__ = ["ReadNodeConfiguration", "InstallPartitionDisks", "InstallUninitHardware", "InstallWriteConfig", + "MakeInitrd", "WriteNetworkConfig", "WriteModprobeConfig"]