X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FHarddisk.py;h=7500c33daae832f8df47e318385fc52feede2828;hp=838e83fc3422b3f42dc41464989f15d810591d18;hb=976241064bfb65e737bbfeeecfbd989c927be23f;hpb=8101d5122cc97cf971d513d9c294208d72ea5844 diff --git a/lib/python/Components/Harddisk.py b/lib/python/Components/Harddisk.py old mode 100644 new mode 100755 index 838e83f..7500c33 --- a/lib/python/Components/Harddisk.py +++ b/lib/python/Components/Harddisk.py @@ -212,7 +212,32 @@ class Harddisk: return False def createPartition(self): - cmd = 'printf "8,\n;0,0\n;0,0\n;0,0\ny\n" | sfdisk -f -uS ' + self.disk_path + def CheckPartedVer(): + cmd = 'parted --version' + lines = popen(cmd).readlines() + for l in lines: + if l.find("parted (GNU parted)") != -1: + ver = l.split()[3].strip() + break + try: + ver = float(ver) + except: + print "[CheckPartedVer] check parted version Failed!" + return 0 + return ver + + disk_size = self.diskSize() + + if disk_size > 2.2 * 1000 * 1000: # if 2.2 TB + setAlign = "" + partedVer = CheckPartedVer() + if partedVer >= 2.1: # align option is supported in version 2.1 or later + setAlign = "--align optimal" + cmd = 'parted %s %s --script mklabel gpt mkpart disk ext2 0%% 100%%' % ( setAlign, self.disk_path ) + + else: + cmd = 'printf "8,\n;0,0\n;0,0\n;0,0\ny\n" | sfdisk -f -uS ' + self.disk_path + res = system(cmd) if not self.checkPartionPath(self.partitionPath("1")): print "no exist : ", self.partitionPath("1")