···
selectPartitionTableLayout =
65
-
{ useEFIBoot, useDefaultFilesystems }:
66
-
if useDefaultFilesystems then if useEFIBoot then "efi" else "legacy" else "none";
67
+
useDefaultFilesystems,
70
+
if useDefaultFilesystems then
73
+
else if useBootPartition then
···
label = rootFilesystemLabel;
340
-
partitionTableType = selectPartitionTableLayout { inherit (cfg) useDefaultFilesystems useEFIBoot; };
352
+
partitionTableType = selectPartitionTableLayout {
353
+
inherit (cfg) useBootPartition useDefaultFilesystems useEFIBoot;
installBootLoader = cfg.installBootLoader;
touchEFIVars = cfg.useEFIBoot;
···
virtualisation.bootPartition = mkOption {
type = types.nullOr types.path;
434
-
default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null;
435
-
defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null'';
449
+
if cfg.useEFIBoot then
450
+
"/dev/disk/by-label/${espFilesystemLabel}"
451
+
else if cfg.useBootPartition then
452
+
"/dev/disk/by-label/BOOT"
455
+
defaultText = literalExpression ''
456
+
if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}"
457
+
else if cfg.useBootPartition then "/dev/disk/by-label/BOOT"
example = "/dev/disk/by-label/esp";
The path (inside the VM) to the device containing the EFI System Partition (ESP).
···
This is best-effort and may break with unconventional partition setups.
Use `virtualisation.useDefaultFilesystems` for a known-working configuration.
955
+
virtualisation.useBootPartition = mkEnableOption null // {
957
+
If enabled for legacy MBR VMs, the VM image will have a separate boot
958
+
partition mounted at /boot.
959
+
useBootPartition is ignored if useEFIBoot == true.