ui: efi: default to new 4MB format and allow pre-enrolled keys

to allow "real" secure boot, at least real enough for Windows 11 ;)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2021-10-05 20:05:20 +02:00
parent 80ddbcdf53
commit fd12adfb32
2 changed files with 23 additions and 16 deletions

View File

@ -24,8 +24,14 @@ Ext.define('PVE.qemu.EFIDiskInputPanel', {
me.drive.file = values.hdstorage + ":1"; me.drive.file = values.hdstorage + ":1";
} }
// always default to newer 4m type with secure boot support, if we're
// adding a new EFI disk there can't be any old state anyway
me.drive.efitype = '4m';
me.drive['pre-enrolled-keys'] = values.preEnrolledKeys;
delete values.preEnrolledKeys;
me.drive.format = values.diskformat; me.drive.format = values.diskformat;
var params = {}; let params = {};
params[confid] = PVE.Parser.printQemuDrive(me.drive); params[confid] = PVE.Parser.printQemuDrive(me.drive);
return params; return params;
}, },
@ -39,6 +45,7 @@ Ext.define('PVE.qemu.EFIDiskInputPanel', {
setDisabled: function(disabled) { setDisabled: function(disabled) {
let me = this; let me = this;
me.down('pveDiskStorageSelector').setDisabled(disabled); me.down('pveDiskStorageSelector').setDisabled(disabled);
me.down('proxmoxcheckbox[name=preEnrolledKeys]').setDisabled(disabled);
me.callParent(arguments); me.callParent(arguments);
}, },
@ -56,6 +63,18 @@ Ext.define('PVE.qemu.EFIDiskInputPanel', {
disabled: me.disabled, disabled: me.disabled,
hideSize: true, hideSize: true,
}, },
{
xtype: 'proxmoxcheckbox',
name: 'preEnrolledKeys',
checked: true,
fieldLabel: gettext("Pre-Enroll keys"),
disabled: me.disabled,
//boxLabel: '(e.g., Microsoft secure-boot keys')',
autoEl: {
tag: 'div',
'data-qtip': gettext('Enroll standard distribution and Microsoft secure boot keys.'),
},
},
{ {
xtype: 'label', xtype: 'label',
text: gettext("Warning: The VM currently does not uses 'OVMF (UEFI)' as BIOS."), text: gettext("Warning: The VM currently does not uses 'OVMF (UEFI)' as BIOS."),

View File

@ -22,24 +22,11 @@ Ext.define('PVE.qemu.SystemInputPanel', {
values['serial' + values.vga.substr(6, 1)] = 'socket'; values['serial' + values.vga.substr(6, 1)] = 'socket';
} }
var efidrive = {};
if (values.hdimage) {
efidrive.file = values.hdimage;
} else if (values.hdstorage) {
efidrive.file = values.hdstorage + ":1";
}
if (values.diskformat) {
efidrive.format = values.diskformat;
}
delete values.hdimage; delete values.hdimage;
delete values.hdstorage; delete values.hdstorage;
delete values.diskformat; delete values.diskformat;
if (efidrive.file) { delete values.preEnrolledKeys; // efidisk
values.efidisk0 = PVE.Parser.printQemuDrive(efidrive);
}
return values; return values;
}, },
@ -122,7 +109,7 @@ Ext.define('PVE.qemu.SystemInputPanel', {
fieldLabel: gettext('Add EFI Disk'), fieldLabel: gettext('Add EFI Disk'),
}, },
{ {
xtype: 'pveDiskStorageSelector', xtype: 'pveEFIDiskInputPanel',
name: 'efidisk0', name: 'efidisk0',
storageContent: 'images', storageContent: 'images',
bind: { bind: {
@ -134,6 +121,7 @@ Ext.define('PVE.qemu.SystemInputPanel', {
disabled: true, disabled: true,
hidden: true, hidden: true,
hideSize: true, hideSize: true,
usesEFI: true,
}, },
], ],