Изменена проверка совместимости --uefi и --mbr

* Перенесена проверка на одновременное использование --uefi --mbr из uncompatible в check
* Добавлена проверка корректности выбора --mbr*
* Исправлена список для выбора для GUI
master-3.5 3.5.7_alpha2
parent a62401e819
commit 221f24d6ff

@ -1976,12 +1976,13 @@ class VariableOsInstallUefi(LocationHelper, Variable):
return self.select('os_device_efi', return self.select('os_device_efi',
os_device_dev=efidev, limit=1) or efidev os_device_dev=efidev, limit=1) or efidev
return efidev return efidev
return map(transform, value) return filter(lambda x: x != "off", map(transform, value))
def choice(self): def choice(self):
deviceParentMap = self.ZipVars('os_device_efi', 'os_device_name') deviceParentMap = self.ZipVars('os_device_dev',
return [(efidisk, name or _("Unknown")) 'os_device_efi', 'os_device_name')
for efidisk, name in deviceParentMap return [(efidisk, "%s (%s)" % (name or _("Unknown"), dev))
for dev, efidisk, name in deviceParentMap
if efidisk] if efidisk]
def check(self, value): def check(self, value):
@ -2045,12 +2046,12 @@ class VariableOsInstallMbr(LocationHelper, Variable):
""" """
Disks for boot mbr Disks for boot mbr
""" """
type = "choice-list" type = "choiceedit-list"
element = "selecttable" element = "selecttable"
opt = ["--mbr"] opt = ["--mbr"]
metavalue = "MBR" metavalue = "MBR"
untrusted = True untrusted = True
check_after = ["os_install_uefi_set"] check_after = ["os_install_uefi"]
def init(self): def init(self):
self.label = _("Boot disk") self.label = _("Boot disk")
@ -2082,7 +2083,7 @@ class VariableOsInstallMbr(LocationHelper, Variable):
def choice(self): def choice(self):
deviceParentMap = self.ZipVars('os_device_mbr', 'os_device_name') deviceParentMap = self.ZipVars('os_device_mbr', 'os_device_name')
return [(mbrdisk, name or _("Unknown")) return [(mbrdisk, "%s (%s)" % (name or _("Unknown"), mbrdisk))
for mbrdisk, name in deviceParentMap for mbrdisk, name in deviceParentMap
if mbrdisk] if mbrdisk]
@ -2091,15 +2092,15 @@ class VariableOsInstallMbr(LocationHelper, Variable):
return filter(lambda x: x != "off", value) return filter(lambda x: x != "off", value)
def check(self, value): def check(self, value):
if self.Get('cl_autopartition_set') == "on": if self.GetBool('cl_autopartition_set'):
return return
rootType = self.Get('os_install_root_type') rootType = self.Get('os_install_root_type')
if rootType == "flash": if rootType == "flash":
if len(value) > 1: if len(value) > 1:
raise VariableError( raise VariableError(
_("For Flash install, you need only one disk")) _("For Flash install, you need only one disk"))
if self.Get('os_install_uefi_set') == 'on': if value and self.Get('os_install_uefi_set') == "on":
return raise VariableError(_("MBR is not used with the UEFI bootloader"))
useBtrfs = "btrfs" in self.Select('os_install_disk_format', useBtrfs = "btrfs" in self.Select('os_install_disk_format',
where='os_install_disk_mount', where='os_install_disk_mount',
_in=('/', '/boot'), _in=('/', '/boot'),
@ -2143,6 +2144,10 @@ class VariableOsInstallMbr(LocationHelper, Variable):
_("Your boot device must have a BIOS Boot " _("Your boot device must have a BIOS Boot "
"partition ({minsize})").format( "partition ({minsize})").format(
minsize=minsize)) minsize=minsize))
if mbrDisk not in self.Get('os_device_mbr'):
raise VariableError(
_("Device {device} has not BIOS Boot partition").format(
device=mbrDisk))
if value: if value:
if not self.Get('os_grub2_path'): if not self.Get('os_grub2_path'):
self.checkForLegacyGrub() self.checkForLegacyGrub()
@ -2169,8 +2174,6 @@ class VariableOsInstallMbr(LocationHelper, Variable):
""" """
Опция несовместима с использованием UEFI Опция несовместима с использованием UEFI
""" """
if self.Get('os_install_uefi_set') == "on" and self.Get():
return _("MBR is not used with the UEFI bootloader")
if self.Get('cl_autopartition_set') == "on": if self.Get('cl_autopartition_set') == "on":
return \ return \
_("The layout is not available with autopartitioning") _("The layout is not available with autopartitioning")

Loading…
Cancel
Save