From 60d1f118c9218973c099ea1baf4c0aa2f21f6c30 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
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