about summary refs log tree commit diff
path: root/modules/virtualisation
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-22 18:16:56 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-22 18:18:05 +0100
commit434260c772622408b1503a4ff2b65bfd900f3c80 (patch)
tree706b88adfc9e7c173e6f870d66b1aa050f04b94c /modules/virtualisation
parentca4f93d3ae6cda9ae23e53334af67029fcb48e54 (diff)
downloadnixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar.gz
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar.bz2
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar.lz
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar.xz
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.tar.zst
nixlib-434260c772622408b1503a4ff2b65bfd900f3c80.zip
Work around a bug in unionfs
Unionfs cannot delete directories that contain open deleted files.
This broke a Nix test.

http://hydra.nixos.org/build/3843354
Diffstat (limited to 'modules/virtualisation')
-rw-r--r--modules/virtualisation/qemu-vm.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/virtualisation/qemu-vm.nix b/modules/virtualisation/qemu-vm.nix
index 9d9581b96c63..eb800e52ab27 100644
--- a/modules/virtualisation/qemu-vm.nix
+++ b/modules/virtualisation/qemu-vm.nix
@@ -293,7 +293,7 @@ in
 
         mkdir /unionfs-chroot/rw-store
         mount -t tmpfs -o "mode=755" none /unionfs-chroot/rw-store
-        unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768 /rw-store=RW:/ro-store=RO $targetRoot/nix/store
+        unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768,hide_meta_files /rw-store=RW:/ro-store=RO $targetRoot/nix/store
       ''}
     '';
 
@@ -313,7 +313,13 @@ in
       )
     '';
 
-  virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
+  virtualisation.pathsInNixDB =
+    [ config.system.build.toplevel
+      # This path from the initrd must be registered as valid because
+      # unionfs uses it from the target Nix store (?).  FIXME: get
+      # unionfs to use the path from the Nix store instead.
+      config.system.build.extraUtils
+    ];
 
   virtualisation.qemu.options = [ "-vga std" "-usbdevice tablet" ];