summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-11-30 16:14:12 +0100
committerLudovic Courtès <ludo@gnu.org>2017-11-30 18:14:57 +0100
commitf00515b4831cbeef7ef4ee9dcc0079ecdadb705b (patch)
tree8ad4aa71003b68c03da1cd4e877a505abc3ee7ab /gnu
parent1d0865c19a5a715d96b396fdb75b0b0b9c2389bb (diff)
downloadguix-f00515b4831cbeef7ef4ee9dcc0079ecdadb705b.tar.gz
vm: Filter out file systems that refer to UUIDs or labels.
* gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]:
Filter out things that refer to file system UUIDs or labels.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/system/vm.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 3ddb41d9a6..a5fe48e8f1 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -554,7 +554,13 @@ environment with the store shared with the host.  MAPPINGS is a list of
                 (or (string=? target (%store-prefix))
                     (string=? target "/")
                     (and (eq? 'device (file-system-title fs))
-                         (string-prefix? "/dev/" source)))))
+                         (string-prefix? "/dev/" source))
+
+                    ;; Labels and UUIDs are necessarily invalid in the VM.
+                    (and (file-system-mount? fs)
+                         (or (eq? 'label (file-system-title fs))
+                             (eq? 'uuid (file-system-title fs))
+                             (uuid? source))))))
             (operating-system-file-systems os)))
 
   (define virtual-file-systems