summaryrefslogtreecommitdiffstats
path: root/partitioning.py
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2001-08-23 23:26:57 +0000
committerJeremy Katz <katzj@redhat.com>2001-08-23 23:26:57 +0000
commit6e625eeda072ce35ed3553de9067d74c28cff5e8 (patch)
tree0ecfea67e6f6414a13f731f1c9fec01c6362a921 /partitioning.py
parent2b37e8e7fd7f36e1f9285f147792fbcaf7c5e5c1 (diff)
downloadanaconda-6e625eeda072ce35ed3553de9067d74c28cff5e8.tar.gz
anaconda-6e625eeda072ce35ed3553de9067d74c28cff5e8.tar.xz
anaconda-6e625eeda072ce35ed3553de9067d74c28cff5e8.zip
restore zerombr semantics to what the docs describe (52361)
Diffstat (limited to 'partitioning.py')
-rw-r--r--partitioning.py35
1 files changed, 23 insertions, 12 deletions
diff --git a/partitioning.py b/partitioning.py
index 1450abd46..bc9f4586b 100644
--- a/partitioning.py
+++ b/partitioning.py
@@ -862,6 +862,9 @@ class Partitions:
# reinitialize all partitions to default labels?
self.reinitializeDisks = 0
+ # zero mbr flag for kickstart
+ self.zeroMbr = 0
+
# partition method
self.useAutopartitioning = 1
self.useFdisk = 0
@@ -1363,15 +1366,15 @@ class DiskSet:
del disk
self.refreshDevices()
- def refreshDevices (self, intf = None, initAll = 0):
+ def refreshDevices (self, intf = None, initAll = 0, zeroMbr = 0):
self.disks = {}
- self.openDevices(intf, initAll)
+ self.openDevices(intf, initAll, zeroMbr)
def closeDevices (self):
for disk in self.disks.keys():
del self.disks[disk]
- def openDevices (self, intf = None, initAll = 0):
+ def openDevices (self, intf = None, initAll = 0, zeroMbr = 0):
if self.disks:
return
for drive in self.driveList ():
@@ -1399,7 +1402,12 @@ class DiskSet:
disk = parted.PedDisk.open(dev)
self.disks[drive] = disk
except parted.error, msg:
- if not intf:
+ recreate = 0
+ if zeroMbr:
+ log("zeroMBR was set and invalid partition table found "
+ "on %s" % (dev.path[5:]))
+ recreate = 1
+ elif not intf:
DiskSet.skippedDisks.append(drive)
continue
else:
@@ -1413,13 +1421,15 @@ class DiskSet:
DiskSet.skippedDisks.append(drive)
continue
else:
- try:
- dev.disk_create(getDefaultDiskType())
- disk = parted.PedDisk.open(dev)
- self.disks[drive] = disk
- except parted.error, msg:
- DiskSet.skippedDisks.append(drive)
- continue
+ recreate = 1
+ if recreate == 1 and not flags.test:
+ try:
+ dev.disk_create(getDefaultDiskType())
+ disk = parted.PedDisk.open(dev)
+ self.disks[drive] = disk
+ except parted.error, msg:
+ DiskSet.skippedDisks.append(drive)
+ continue
# check that their partition table is valid for their architecture
ret = checkDiskLabel(disk, intf)
@@ -1503,7 +1513,8 @@ def partitionObjectsInitialize(diskset, partitions, dir, intf):
return
# read in drive info
- diskset.refreshDevices(intf, partitions.reinitializeDisks)
+ diskset.refreshDevices(intf, partitions.reinitializeDisks,
+ partitions.zeroMbr)
checkNoDisks(diskset, intf)