diff options
-rw-r--r-- | fstab.py | 24 | ||||
-rw-r--r-- | iw/rootpartition_gui.py | 3 | ||||
-rw-r--r-- | lilo.py | 4 | ||||
-rw-r--r-- | silo.py | 4 | ||||
-rw-r--r-- | textw/partitioning_text.py | 2 |
5 files changed, 27 insertions, 10 deletions
@@ -129,11 +129,14 @@ class Fstab: else: return None - def getBootPartitionMaxCyl(self): + # returns max cylinder, starting counting from 1 + # reads DIRECTLY from drive partition table, not the desired + # partition table we construct at the start of the install + # in disk druid/autopartitioning!!! + def getBootPartitionMaxCylFromDrive(self): bootpart = self.getBootDevice() boothd = self.getMbrDevice() - maxcyl = None try: @@ -157,12 +160,27 @@ class Fstab: maxcyl = (sector+size) / string.atoi(bootgeom[2]) maxcyl = maxcyl / string.atoi(bootgeom[1]) - log("Boot part ends on cyl %s" % maxcyl) + log("Boot part %s ends on cyl %s" % (bootpart, maxcyl)) os.remove ('/tmp/' + boothd) return maxcyl + # returns max cylinder, starting counting from 1 + # this is read from the ddruid object of the partitioning scheme we + # are currently building up from disk druid/autopartitioning + # NOT guaranteed to be same as getBootPartitionMaxCylFromDrive() result + def getBootPartitionMaxCylFromDesired(self): + bootpart = self.getBootDevice() + boothd = self.getMbrDevice() + (drives, raid) = self.partitionList() + + for (dev, devName, type, start, size, maxcyl) in drives: + if dev == bootpart: + log ("maxcyl of %s is %d" % (dev, maxcyl)) + return maxcyl + + return None def getMbrDevice(self): return self.driveList()[0] diff --git a/iw/rootpartition_gui.py b/iw/rootpartition_gui.py index 97d9d8217..746a8f6b7 100644 --- a/iw/rootpartition_gui.py +++ b/iw/rootpartition_gui.py @@ -390,10 +390,9 @@ class LBA32WarningWindow(InstallWindow): if iutil.getArch() != "i386": return INSTALL_NOOP - if self.todo.fstab.getBootPartitionMaxCyl() > 1023: + if self.todo.fstab.getBootPartitionMaxCylFromDesired() > 1023: vbox = GtkVBox (FALSE, 5) - if not self.todo.fstab.edd: label = GtkLabel ( _("You have put the partition containing the kernel (the " @@ -275,9 +275,9 @@ class LiloConfiguration: useLBA32 = 0 if self.edd: from log import log - maxcyl = fstab.getBootPartitionMaxCyl() + maxcyl = fstab.getBootPartitionMaxCylFromDrive() if maxcyl > 1023: - log("Using lba32") + log("Maximum cyling is %d, using lba32" % maxcyl) useLBA32 = 1 if (self.liloDevice == "mbr"): @@ -102,7 +102,7 @@ class SiloInstall: self.siloImages = {} nSolaris = 0 nSunOS = 0 - for (dev, devName, type, start, size) in drives: + for (dev, devName, type, start, size, maxcyl) in drives: # ext2 and raid partitions get listed if # 1) they're / # 2) they're not mounted @@ -152,7 +152,7 @@ class SiloInstall: i = i - 1 boothd = bootpart[:i+1] (drives, raid) = fstab.partitionList() - for (dev, devName, type, start, size) in drives: + for (dev, devName, type, start, size, maxcyl) in drives: i = len (dev) - 1 while i > 0 and dev[i] in string.digits: i = i - 1 diff --git a/textw/partitioning_text.py b/textw/partitioning_text.py index 8a341102f..830685947 100644 --- a/textw/partitioning_text.py +++ b/textw/partitioning_text.py @@ -351,7 +351,7 @@ class LBA32WarningWindow: if iutil.getArch() != "i386": return INSTALL_NOOP - if todo.fstab.getBootPartitionMaxCyl() > 1023: + if todo.fstab.getBootPartitionMaxCylFromDesired() > 1023: if not todo.fstab.edd: rc = ButtonChoiceWindow(screen, _("Boot Partition Warning"), _("You have put the partition containing the kernel (the " |