anchor.diff:            Run <literal>VBoxManage modifyvm --help</literal> to see more options.
           '';
        };
  +      extraDisk = mkOption {
  +        description = ''
  +          Optional extra disk/hdd configuration.
  +          The disk will be an 'ext4' partition on a separate VMDK file.
  +        '';
  +        default = null;
  +        example = {
  +          label = "storage";
  +          mountPoint = "/home/demo/storage";
  +          size = 100 * 1024;
  +        };
  +        type = types.nullOr (types.submodule {
  +          options = {
  +            size = mkOption {
  +              type = types.int;
  +              description = "Size in MiB";
  +            };
  +            label = mkOption {
  +              type = types.str;
  +              default = "vm-extra-storage";
  +              description = "Label for the disk partition";
  +            };
  +            mountPoint = mkOption {
  +              type = types.str;
  +              description = "Path where to mount this disk.";
  +            };
  +          };
  +        });
  +      };
       };
     };
   
  
positive.code:           echo "creating VirtualBox pass-through disk wrapper (no copying involved)..."
            VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
  
            echo "creating VirtualBox VM..."
            vmName="${cfg.vmName}";
            VBoxManage createvm --name "$vmName" --register \
  
negative.code:         '';
      };
  
      fileSystems = {
        "/" = {
          device = "/dev/disk/by-label/nixos";
          autoResize = true;
          fsType = "ext4";
        };
      } // (lib.optionalAttrs (cfg.extraDisk != null) {
        ${cfg.extraDisk.mountPoint} = {
          device = "/dev/disk/by-label/" + cfg.extraDisk.label;
          autoResize = true;
          fsType = "ext4";
        };
      });
  
      boot.growPartition = true;
      boot.loader.grub.device = "/dev/sda";
  