Fix change grub numeration if mbr device change.

netsetup
Mike Hiretsky 14 years ago
parent ed82da05f6
commit 7387551be9

@ -395,6 +395,33 @@ class fillVars(object, glob_attr):
"""Install list filesystem for partition devices"""
return self.Get('os_disk_format')
def get_os_install_disk_grub(self):
"""List grub id for partition devices"""
def swapfirstnum(x,first,second):
disk,delimeter,part = x.partition(',')
if disk == str(first):
return "%d,%s"%(second,part)
elif disk == str(second):
return "%d,%s"%(first,part)
return x
curDiskGrub = self.getAttributeFromHash('os_disk_hash','grub')
bootDev=sorted(
filter(lambda x:x[0] in ('/','/boot'),
zip(self.Get('os_install_disk_mount'),
self.Get('os_disk_grub'))),
key=lambda x:x[0],reverse=True)
if bootDev:
bootDev=bootDev[0][1].partition(',')[0]
bootDevName = filter(lambda x:str(x[1])==bootDev,
zip(self.Get('os_device_dev'),
self.Get('os_device_map')))
if bootDevName:
if bootDevName[0][0] == self.Get('os_install_mbr'):
return map(lambda x:swapfirstnum(x,bootDevName[0][1],0),
curDiskGrub)
return curDiskGrub
def get_os_disk_grub(self):
"""List grub id for partition devices"""
return self.getAttributeFromHash('os_disk_hash','grub')

@ -1373,7 +1373,7 @@ class cl_install(color_print, SignalInterrupt):
def installGrubBootloader(self,target):
"""Install boot loader
Perform grub installation to disk, which has root partition
"""
grubProcess = process("/sbin/grub",

@ -102,6 +102,9 @@ class Data:
# list grub id for partition devices
os_disk_grub = {}
# install list grub id for partition devices (depend from mbr)
os_install_disk_grub = {}
# type of partition devices (primary, extended or logical)
os_disk_part = {}

Loading…
Cancel
Save