Browse Source

Merge remote-tracking branch 'origin/pr/220'

* origin/pr/220:
  init/setup-rwdev: don't write a journal in DispVMs
  init/functions: fix DispVM detection
Marek Marczykowski-Górecki 4 years ago
parent
commit
7e9756081b
2 changed files with 12 additions and 2 deletions
  1. 1 1
      init/functions
  2. 11 1
      init/setup-rwdev.sh

+ 1 - 1
init/functions

@@ -66,7 +66,7 @@ is_templatevm() {
 }
 
 is_dispvm() {
-    [ "$(qubes_vm_type)" = "DisposableVM" ]
+    [ "$(qubesdb-read /type)" = "DispVM" ]
 }
 
 is_fully_persistent() {

+ 11 - 1
init/setup-rwdev.sh

@@ -1,5 +1,9 @@
 #!/bin/sh
 
+# Source Qubes library.
+# shellcheck source=init/functions
+. /usr/lib/qubes/init/functions
+
 set -e
 
 dev=/dev/xvdb
@@ -16,7 +20,13 @@ if [ -e "$dev" ] ; then
     if cmp --bytes $private_size "$dev" /dev/zero >/dev/null && { blkid -p "$dev" >/dev/null; [ $? -eq 2 ]; }; then
         # the device is empty, create filesystem
         echo "Virgin boot of the VM: creating private.img filesystem on $dev" >&2
-        if ! content=$(mkfs.ext4 -m 0 -q "$dev" 2>&1) ; then
+        # journals are only useful on reboot, so don't write one in a DispVM
+        if is_dispvm ; then
+            journal="-O ^has_journal"
+        else
+            journal="-O has_journal"
+        fi
+        if ! content=$(mkfs.ext4 -m 0 -q "$journal" "$dev" 2>&1) ; then
             echo "Virgin boot of the VM: creation of private.img on $dev failed:" >&2
             echo "$content" >&2
             echo "Virgin boot of the VM: aborting" >&2