aboutsummaryrefslogtreecommitdiff
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
guix-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