From 60d1f118c9218973c099ea1baf4c0aa2f21f6c30 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Thu, 25 Jun 2009 22:23:23 -0500 Subject: linhes-config: try to write a valid partition table if one doesn't exist. Works for new disks. --- abs/core-testing/LinHES-config/PKGBUILD | 2 +- abs/core-testing/LinHES-config/mv_install.py | 31 +++++++++++++++++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD index 676c13f..cc67e21 100755 --- a/abs/core-testing/LinHES-config/PKGBUILD +++ b/abs/core-testing/LinHES-config/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-config pkgver=2.0 -pkgrel=25 +pkgrel=26 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev ) pkgdesc="Install and configure your system" depends=(bc libstatgrab mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo) diff --git a/abs/core-testing/LinHES-config/mv_install.py b/abs/core-testing/LinHES-config/mv_install.py index 87fbaae..9d70a55 100755 --- a/abs/core-testing/LinHES-config/mv_install.py +++ b/abs/core-testing/LinHES-config/mv_install.py @@ -219,16 +219,33 @@ def umount_bind_chroot(): runcmd(cmd) +def blank_table(diskdevice): + logging.debug(" writing new parition table for %s", diskdevice) + logging.debug("parition table before:") + cmd = "fdisk -l %s" %diskdevice + runcmd(cmd) + + cmd = "echo w |fdisk %s" %diskdevice + runcmd(cmd) + + logging.debug("parition table after:") + cmd = "fdisk -l %s" %diskdevice + runcmd(cmd) + def partitions_removeall(diskdevice, label): logging.info("Removing all partitions for %s %s", label, diskdevice) - device = parted.getDevice(diskdevice) - partdisk = parted.Disk(device) - partdisk.deleteAllPartitions() - if data_config.NOOPDEBUG == "FALSE": - partdisk.commit() + try: + device = parted.getDevice(diskdevice) + partdisk = parted.Disk(device) + partdisk.deleteAllPartitions() + if data_config.NOOPDEBUG == "FALSE": + partdisk.commit() + for partition in partdisk.partitions: + print "type: %s" %partition.type + except: + logging.debug(" Error reading parition table, attempting to write a blank one") + blank_table(diskdevice) - for partition in partdisk.partitions: - print "type: %s" %partition.type def create_partitions(diskdevice, size, ptype, startsector): logging.debug("_____Create partitions______") -- cgit v0.12