Добавлена проверка таблицы разделов при установке на btrfs

master3.3
Mike khiretskiy 11 years ago
parent 93ce4d9af5
commit 28a277f6aa

@ -29,6 +29,7 @@ from calculate.lib.utils.device import (getUdevDeviceInfo,getDeviceType,
getPartitionType,getPartitionDevice,getRaidPartitions,
getLvmPartitions,getPartitionSize, humanreadableSize,
getUUIDDict,getCommonDeviceName)
from calculate.install.variables.autopartition import Sizes
from calculate.lib.utils.files import (listDirectory,pathJoin,readFile,FStab,
isMount)
from calculate.install.distr import PartitionDistributive
@ -1682,6 +1683,10 @@ class VariableOsInstallMbr(LocationHelper,Variable):
_("For Flash install, you need only one disk"))
if self.Get('os_install_uefi_set') == 'on':
return
useBtrfs = "btrfs" in self.Select('os_install_disk_format',
where='os_install_disk_mount',
_in=('/','/boot'),
sort="DESC")[:1]
for mbrDisk in value:
if self.Get('cl_autopartition_set') == 'on':
tableOnBootDisk = self.Get('cl_autopartition_table')
@ -1696,12 +1701,27 @@ class VariableOsInstallMbr(LocationHelper,Variable):
if tableOnBootDisk == "gpt":
raise VariableError(_("You need a disk with a dos "
"table for Flash install"))
if tableOnBootDisk == "dos" and useBtrfs:
raise VariableError(_("You need a disk with a gpt "
"table for install on btrfs"))
if rootType in ("usb-hdd","hdd") and tableOnBootDisk == "gpt":
bios_grub = self.Select('os_disk_parent',
where='os_disk_id',eq='EF02')
if not mbrDisk in bios_grub:
efisize = self.Select('os_disk_size',
where=['os_disk_id','os_disk_parent'],
func=lambda os_disk_id,os_disk_parent:(
os_disk_id == 'EF02' and os_disk_parent == mbrDisk),
limit=1)
if not efisize:
raise VariableError(
_("Disk %s must have a 'bios_grub' partition")%mbrDisk)
# проверка размера EF02 при установке на btrfs
elif useBtrfs:
bios_grub_size = self.Get('cl_autopartition_bios_grub_size')
if (efisize.isdigit() and bios_grub_size.isdigit() and
int(efisize) < int(bios_grub_size)):
raise VariableError(
_("Disk {diskname} must have a 'bios_grub' "
"partition with size at least {size}Mb").format(
diskname=mbrDisk,size=int(bios_grub_size)/Sizes.M))
if value:
if self.Get('os_grub2_path'):
self.checkForGrub2()
@ -1709,12 +1729,14 @@ class VariableOsInstallMbr(LocationHelper,Variable):
self.checkForLegacyGrub()
def checkForGrub2(self):
"""Check current disk configuration for installation for install
GRUB2"""
"""
Проверить текущую конфигурацию диска для установки GRUB2
"""
grubDiskType=self.Select('os_install_disk_parent',
where='os_install_disk_mount',
_in=('/','/boot'),
sort="DESC",limit=1)
if "lvm-raid" in grubDiskType:
raise VariableError(
_("Grub does not support booting from a RAID assembled from a LVM")

Loading…
Cancel
Save