From 2ea9a70efe91c90c9ad0bec8b7f720bdc544c6fc Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Mon, 26 Mar 2012 20:29:49 +0200 Subject: [PATCH 1/2] dom0+vm: qvm-block --attach-file Allow to attach disk image from different VM as block device. File attached with qvm-block -A will be visible as loopX device and as such can be detached. File path will be in device description. --- misc/block_add_change | 10 ++++++++++ misc/qubes_block.rules | 3 --- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/misc/block_add_change b/misc/block_add_change index 3d675aa..e1b25ca 100755 --- a/misc/block_add_change +++ b/misc/block_add_change @@ -16,6 +16,11 @@ if [ -n "`ls -A /sys/$DEVPATH/holders 2> /dev/null`" ]; then xenstore-rm "$XS_KEY" exit 0 fi +# ... and "empty" loop devices +if [ "$MAJOR" -eq 7 -a ! -d /sys/$DEVPATH/loop ]; then + xenstore-rm "$XS_KEY" + exit 0 +fi # Special case for CD if [ "$ID_TYPE" = "cd" ]; then @@ -26,6 +31,11 @@ if [ "$ID_TYPE" = "cd" ]; then fi MODE=r fi + +# Special description for loop devices +if [ -d /sys/$DEVPATH/loop ]; then + DESC=$(cat /sys/$DEVPATH/loop/backing_file) +fi xenstore-write "$XS_KEY/desc" "$DESC" "$XS_KEY/size" "$SIZE" "$XS_KEY/mode" "$MODE" # Make sure that block backend is loaded diff --git a/misc/qubes_block.rules b/misc/qubes_block.rules index 1a0864e..343553f 100644 --- a/misc/qubes_block.rules +++ b/misc/qubes_block.rules @@ -6,9 +6,6 @@ SUBSYSTEM!="block", GOTO="qubes_block_end" # Skip xen-blkfront devices ENV{MAJOR}=="202", GOTO="qubes_block_end" -# Skip loop devices -ENV{MAJOR}=="7", GOTO="qubes_block_end" - # Skip device-mapper devices ENV{MAJOR}=="253", GOTO="qubes_block_end" From 9a55fb3765b73b47055f07604c1fdf3e4b7147ec Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Wed, 28 Mar 2012 00:43:59 +0200 Subject: [PATCH 2/2] vm/init: Use the same default services for TemplateVM as for AppVM (#503) Actually it already was done in traditional init.d script, so do the same in systemd version. --- vm-systemd/qubes-sysinit.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vm-systemd/qubes-sysinit.sh b/vm-systemd/qubes-sysinit.sh index dc93de5..65c3606 100755 --- a/vm-systemd/qubes-sysinit.sh +++ b/vm-systemd/qubes-sysinit.sh @@ -4,6 +4,7 @@ DEFAULT_ENABLED_NETVM="network-manager qubes-network" DEFAULT_ENABLED_PROXYVM="meminfo-writer qubes-network qubes-firewall qubes-netwatcher" DEFAULT_ENABLED_APPVM="meminfo-writer cups" +DEFAULT_ENABLED_TEMPLATEVM=$DEFAULT_ENABLED_APPVM DEFAULT_ENABLED="meminfo-writer" XS_READ=/usr/bin/xenstore-read @@ -30,6 +31,7 @@ TYPE=`$XS_READ qubes_vm_type 2> /dev/null` [ "$TYPE" == "AppVM" ] && DEFAULT_ENABLED=$DEFAULT_ENABLED_APPVM [ "$TYPE" == "NetVM" ] && DEFAULT_ENABLED=$DEFAULT_ENABLED_NETVM [ "$TYPE" == "ProxyVM" ] && DEFAULT_ENABLED=$DEFAULT_ENABLED_PROXYVM +[ "$TYPE" == "TemplateVM" ] && DEFAULT_ENABLED=$DEFAULT_ENABLED_TEMPLATEVM # Enable default services for srv in $DEFAULT_ENABLED; do