From 434260c772622408b1503a4ff2b65bfd900f3c80 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 22 Jan 2013 18:16:56 +0100 Subject: [PATCH] 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 --- modules/virtualisation/qemu-vm.nix | 10 ++++++++-- 1 file 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" ];