Browse Source

Allow to provide customized DispVM home directly in the template VM

This significantly speeds up DispVM creation for large customized
homes, since no data has to be copied, and instead CoW is used.
qubesuser 8 years ago
parent
commit
f380c346cf
2 changed files with 12 additions and 8 deletions
  1. 6 4
      misc/dispvm-prerun.sh
  2. 6 4
      vm-systemd/mount-dirs.sh

+ 6 - 4
misc/dispvm-prerun.sh

@@ -3,10 +3,12 @@
 apps="/usr/libexec/evinced"
 apps="/usr/libexec/evinced"
 
 
 #If user have customized DispVM settings, use its home instead of default dotfiles
 #If user have customized DispVM settings, use its home instead of default dotfiles
-if [ -e /rw/home/user/.qubes-dispvm-customized ]; then
-	cp -af /rw/home/user /home/
-else
-	cat /etc/dispvm-dotfiles.tbz | tar -xjf- --overwrite -C /home/user --owner user 2>&1 >/tmp/dispvm-dotfiles-errors.log
+if [ ! -e /home/user/.qubes-dispvm-customized ]; then
+	if [ -e /rw/home/user/.qubes-dispvm-customized ]; then
+		cp -af /rw/home/user /home/
+	else
+		cat /etc/dispvm-dotfiles.tbz | tar -xjf- --overwrite -C /home/user --owner user 2>&1 >/tmp/dispvm-dotfiles-errors.log
+	fi
 fi
 fi
 
 
 for app in $apps ; do
 for app in $apps ; do

+ 6 - 4
vm-systemd/mount-dirs.sh

@@ -79,10 +79,12 @@ if [ -e /var/run/qubes-service/qubes-dvm ]; then
     touch /etc/this-is-dvm
     touch /etc/this-is-dvm
 
 
     #If user have customized DispVM settings, use its home instead of default dotfiles
     #If user have customized DispVM settings, use its home instead of default dotfiles
-    if [ -e /rw/home/user/.qubes-dispvm-customized ]; then
-        cp -af /rw/home/user /home/
-    else
-        cat /etc/dispvm-dotfiles.tbz | tar -xjf- --overwrite -C /home/user --owner user 2>&1 >/tmp/dispvm-dotfiles-errors.log
+    if [ ! -e /home/user/.qubes-dispvm-customized ]; then
+        if [ -e /rw/home/user/.qubes-dispvm-customized ]; then
+            cp -af /rw/home/user /home/
+        else
+            cat /etc/dispvm-dotfiles.tbz | tar -xjf- --overwrite -C /home/user --owner user 2>&1 >/tmp/dispvm-dotfiles-errors.log
+        fi
     fi
     fi
 else
 else
     mount /home
     mount /home