diff options
author | Matt Wilson <msw@redhat.com> | 1999-08-22 16:48:16 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 1999-08-22 16:48:16 +0000 |
commit | 8982719ff7a88616af0e7315b0ab0f2742e43a0a (patch) | |
tree | a7a683dafa80a46127464e3b4bd824f3812a5228 | |
parent | d0981182ede7c04d730afd4cc27ca1c9fcaaded0 (diff) | |
download | anaconda-8982719ff7a88616af0e7315b0ab0f2742e43a0a.tar.gz anaconda-8982719ff7a88616af0e7315b0ab0f2742e43a0a.tar.xz anaconda-8982719ff7a88616af0e7315b0ab0f2742e43a0a.zip |
reworked lilo to support different kernels
-rw-r--r-- | todo.py | 76 |
1 files changed, 43 insertions, 33 deletions
@@ -401,6 +401,7 @@ class ToDo: self.liloDevice = None self.upgrade = 0 self.lilo = LiloConfiguration() + self.initrdsMade = {} def umountFilesystems(self): if (not self.setupFilesystems): return @@ -520,19 +521,23 @@ class ToDo: f.write(str (self.keyboard)) f.close() - def makeInitrd (self): - if not self.__dict__.has_key ("madeinitrd"): - initrd = "/boot/initrd-%s.img" % (self.kernelVersion,) - + def makeInitrd (self, kernelTag): + initrd = "/boot/initrd%s.img" % (kernelTag, ) + if not self.initrdsMade.has_key(initrd): iutil.execWithRedirect("/sbin/mkinitrd", [ "/sbin/mkinitrd", initrd, - self.kernelVersion ], + kernelTag[1:] ], stdout = None, stderr = None, searchPath = 1, root = self.instPath) - self.madeinitrd = 1 + self.initrdsMade[kernelTag] = 1 + return initrd def makeBootdisk (self): + kernel = self.hdList['kernel'] + kernelTag = "%s-%s-%s" % (kernel['name'][6:], kernel['version'], + kernel['release']) + self.makeInitrd () w = self.intf.waitWindow ("Creating", "Creating boot disk...") rc = iutil.execWithRedirect("/sbin/mkbootdisk", @@ -540,9 +545,9 @@ class ToDo: "--noprompt", "--device", "/dev/fd0", - self.kernelVersion ], - stdout = None, stderr = None, searchPath = 1, - root = self.instPath) + kernelTag[1:] ], + stdout = None, stderr = None, + searchPath = 1, root = self.instPath) w.pop() if rc: raise ToDoError, "boot disk creation failed" @@ -553,12 +558,6 @@ class ToDo: self.lilo.read (self.instPath + '/etc/lilo.conf') elif not self.liloDevice: return - kernelVersion = "%s-%s" % (self.kernelPackage[rpm.RPMTAG_VERSION], - self.kernelPackage[rpm.RPMTAG_RELEASE]) - initrd = "/boot/initrd-%s.img" % (kernelVersion,) - - self.makeInitrd () - if self.liloDevice: self.lilo.addEntry("boot", '/dev/' + self.liloDevice) self.lilo.addEntry("map", "/boot/map") @@ -567,20 +566,37 @@ class ToDo: self.lilo.addEntry("timeout", "50") self.lilo.addEntry("default", "linux") - sl = LiloConfiguration() - sl.addEntry("label", "linux") - if os.access (self.instPath + initrd, os.R_OK): - sl.addEntry("initrd", initrd) - if not self.mounts.has_key ('/'): return - (dev, type, size) = self.mounts['/'] - sl.addEntry("root", '/dev/' + dev) - sl.addEntry("read-only") + (rootDev, type, size) = self.mounts['/'] - kernelFile = "/boot/vmlinuz-" + kernelVersion - - self.lilo.addImage ("image", kernelFile, sl) + sl = LiloConfiguration() + + label = "linux" + kernelList = [] + if (self.hdList.has_key('kernel-smp') and + self.hdList['kernel-smp'].selected): + kernelList.append((label, self.hdList['kernel-smp'])) + label = "linux-up" + kernelList.append((label, self.hdList['kernel'])) + + for (label, kernel) in kernelList: + kernelTag = "%s-%s-%s" % (kernel['name'][6:], kernel['version'], + kernel['release']) + + initrd = self.makeInitrd (kernelTag) + + sl.addEntry("label", label) + if os.access (self.instPath + initrd, os.R_OK): + sl.addEntry("initrd", initrd) + + sl.addEntry("read-only") + + sl.addEntry("root", '/dev/' + rootDev) + + kernelFile = "/boot/vmlinuz" + kernelTag + + self.lilo.addImage ("image", kernelFile, sl) for (type, name, config) in self.lilo.images: # remove entries for missing kernels (upgrade) @@ -627,16 +643,10 @@ class ToDo: if comp.selected: comp.select (1) self.comps['Base'].select(1) - self.kernelPackage = self.hdList['kernel'] if (self.hdList.has_key('kernel-smp') and isys.smpAvailable()): - self.kernelPackage.selected = 0 - self.kernelPackage = self.hdList['kernel-smp'] - self.kernelPackage.selected = 1 + self.hdList['kernel-smp'].selected = 1 - self.kernelVersion = "%s-%s" % (self.kernelPackage[rpm.RPMTAG_VERSION], - self.kernelPackage[rpm.RPMTAG_RELEASE]) - return self.comps def writeNetworkConfig (self): |