summary refs log tree commit diff
path: root/nixos/modules/virtualisation/virtualbox-image.nix
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2016-08-27 03:01:51 +0100
committerobadz <obadz-git@obadz.com>2016-08-27 03:02:53 +0100
commit80660f8261ad77535dd8fbbcc764ff7f4e739896 (patch)
tree830c1580720ed25dec6e2accf7574e39af516e1f /nixos/modules/virtualisation/virtualbox-image.nix
parent58db7f508f815ac7c1e12e3abd8f7d0fcf25a0cb (diff)
downloadnixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar.gz
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar.bz2
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar.lz
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar.xz
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.tar.zst
nixpkgs-80660f8261ad77535dd8fbbcc764ff7f4e739896.zip
virtualbox-image: use vmdk wrapper instead of vdi copy (avoids 1 disk copy)
Diffstat (limited to 'nixos/modules/virtualisation/virtualbox-image.nix')
-rw-r--r--nixos/modules/virtualisation/virtualbox-image.nix12
1 files changed, 6 insertions, 6 deletions
diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix
index fbb5998616f..4f8ea265100 100644
--- a/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixos/modules/virtualisation/virtualbox-image.nix
@@ -31,13 +31,13 @@ in {
 
       postVM =
         ''
-          echo "creating VirtualBox disk image..."
-          ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -O vdi $diskImage disk.vdi
-          rm $diskImage
-
-          echo "creating VirtualBox VM..."
           export HOME=$PWD
           export PATH=${pkgs.linuxPackages.virtualbox}/bin:$PATH
+
+          echo "creating VirtualBox pass-through disk wrapper (no copying invovled)..."
+          VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
+
+          echo "creating VirtualBox VM..."
           vmName="NixOS ${config.system.nixosLabel} (${pkgs.stdenv.system})"
           VBoxManage createvm --name "$vmName" --register \
             --ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
@@ -50,7 +50,7 @@ in {
             --usb on --mouse usbtablet
           VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
           VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
-            --medium disk.vdi
+            --medium disk.vmdk
 
           echo "exporting VirtualBox VM..."
           mkdir -p $out