Merge branch 'master' of git://git.qubes-os.org/marmarek/core
This commit is contained in:
commit
6ec0a4a2f4
36
dom0/aux-tools/prepare_volatile_img.sh
Executable file
36
dom0/aux-tools/prepare_volatile_img.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "`id -u`" != "0" ]; then
|
||||
exec sudo $0 $*
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
FILENAME=$1
|
||||
ROOT_SIZE=$2
|
||||
SWAP_SIZE=$[ 1024 ]
|
||||
|
||||
if [ -z "$ROOT_SIZE" -o -z "$FILENAME" ]; then
|
||||
echo "Usage: $0 <filename> <root.img size in MB>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -e "$FILENAME" ]; then
|
||||
echo "$FILENAME already exists, not overriding"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TOTAL_SIZE=$[ $ROOT_SIZE + $SWAP_SIZE + 512 ]
|
||||
truncate -s ${TOTAL_SIZE}M "$FILENAME"
|
||||
sfdisk --no-reread -u M "$FILENAME" > /dev/null 2> /dev/null <<EOF
|
||||
0,${SWAP_SIZE},S
|
||||
,${ROOT_SIZE},L
|
||||
EOF
|
||||
|
||||
kpartx -s -a "$FILENAME"
|
||||
loopdev=`losetup -j "$FILENAME"|tail -n 1 |cut -d: -f1`
|
||||
looppart=`echo $loopdev|sed 's:dev:dev/mapper:'`
|
||||
mkswap -f ${looppart}p1 > /dev/null
|
||||
kpartx -s -d ${loopdev}
|
||||
losetup -d ${loopdev} || :
|
||||
chown --reference `dirname "$FILENAME"` "$FILENAME"
|
@ -106,6 +106,7 @@ dom0_vm = None
|
||||
qubes_appmenu_create_cmd = "/usr/lib/qubes/create_apps_for_appvm.sh"
|
||||
qubes_appmenu_remove_cmd = "/usr/lib/qubes/remove_appvm_appmenus.sh"
|
||||
qubes_pciback_cmd = '/usr/lib/qubes/unbind_pci_device.sh'
|
||||
prepare_volatile_img_cmd = '/usr/lib/qubes/prepare_volatile_img.sh'
|
||||
|
||||
yum_proxy_ip = '10.137.255.254'
|
||||
yum_proxy_port = '8082'
|
||||
@ -1238,6 +1239,15 @@ class QubesVm(object):
|
||||
|
||||
# Only makes sense on template based VM
|
||||
if source_template is None:
|
||||
# For StandaloneVM create it only if not already exists (eg after backup-restore)
|
||||
if not os.path.exists(self.volatile_img):
|
||||
if verbose:
|
||||
print >> sys.stderr, "--> Creating volatile image: {0}...".format (self.volatile_img)
|
||||
f_root = open (self.root_img, "r")
|
||||
f_root.seek(0, os.SEEK_END)
|
||||
root_size = f_root.tell()
|
||||
f_root.close()
|
||||
subprocess.check_call([prepare_volatile_img_cmd, self.volatile_img, str(root_size / 1024 / 1024)])
|
||||
return
|
||||
|
||||
if verbose:
|
||||
@ -1400,7 +1410,7 @@ class QubesVm(object):
|
||||
notify_function ("info", "Starting the '{0}' VM...".format(self.name))
|
||||
elif verbose:
|
||||
print >> sys.stderr, "Starting the VM '{0}'...".format(self.name)
|
||||
xid = self.start(verbose=verbose, notify_function=notify_function)
|
||||
xid = self.start(verbose=verbose, start_guid = gui, notify_function=notify_function)
|
||||
|
||||
except (IOError, OSError, QubesException) as err:
|
||||
raise QubesException("Error while starting the '{0}' VM: {1}".format(self.name, err))
|
||||
|
@ -1364,5 +1364,8 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
||||
retcode = subprocess.call (["cp", "-nrp", backup_dom0_home_dir + '/' + f, home_file])
|
||||
if retcode != 0:
|
||||
error_callback("*** Error while copying file {0} to {1}".format(backup_dom0_home_dir + '/' + f, home_file))
|
||||
retcode = subprocess.call(['sudo', 'chown', '-R', local_user, home_dir])
|
||||
if retcode != 0:
|
||||
error_callback("*** Error while setting home directory owner")
|
||||
|
||||
# vim:sw=4:et:
|
||||
|
@ -26,6 +26,7 @@ YUM_OPTS=
|
||||
GUI=
|
||||
CHECK_ONLY=
|
||||
ALL_OPTS=$*
|
||||
QVMRUN_OPTS=
|
||||
# Filter out some yum options and collect packages list
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
@ -60,6 +61,10 @@ if [ "$GUI" == "1" -a -n "$PKGS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$GUI" != "1" ]; then
|
||||
QVMRUN_OPTS=--nogui
|
||||
fi
|
||||
|
||||
# Do not start VM automaticaly when running from cron (only checking for updates)
|
||||
if [ "$CHECK_ONLY" == "1" ] && ! xl domid $UPDATEVM > /dev/null 2>&1; then
|
||||
echo "ERROR: UpdateVM not running, not starting it in non-interactive mode" >&2
|
||||
@ -73,11 +78,11 @@ qvm-sync-clock
|
||||
echo "Checking for dom0 updates" >&2
|
||||
|
||||
# Start VM if not running already
|
||||
qvm-run -a $UPDATEVM true || exit 1
|
||||
qvm-run $QVMRUN_OPTS -a $UPDATEVM true || exit 1
|
||||
|
||||
/usr/lib/qubes/qrexec_client -d "$UPDATEVM" -l 'tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf 2>/dev/null' 'user:tar x -C /var/lib/qubes/dom0-updates' 2> /dev/null
|
||||
|
||||
qvm-run --pass-io $UPDATEVM "/usr/lib/qubes/qubes_download_dom0_updates.sh --doit --nogui $ALL_OPTS"
|
||||
qvm-run $QVMRUN_OPTS --pass-io $UPDATEVM "/usr/lib/qubes/qubes_download_dom0_updates.sh --doit --nogui $ALL_OPTS"
|
||||
RETCODE=$?
|
||||
if [ "$CHECK_ONLY" == "1" ]; then
|
||||
exit $RETCODE
|
||||
|
@ -145,6 +145,7 @@ cp aux-tools/remove_appvm_appmenus.sh $RPM_BUILD_ROOT/usr/lib/qubes
|
||||
cp aux-tools/cleanup_dispvms $RPM_BUILD_ROOT/usr/lib/qubes
|
||||
cp aux-tools/startup-dvm.sh $RPM_BUILD_ROOT/usr/lib/qubes
|
||||
cp aux-tools/startup-misc.sh $RPM_BUILD_ROOT/usr/lib/qubes
|
||||
cp aux-tools/prepare_volatile_img.sh $RPM_BUILD_ROOT/usr/lib/qubes
|
||||
cp qmemman/server.py $RPM_BUILD_ROOT/usr/lib/qubes/qmemman_daemon.py
|
||||
cp ../misc/meminfo-writer $RPM_BUILD_ROOT/usr/lib/qubes/
|
||||
cp ../qrexec/qrexec_daemon $RPM_BUILD_ROOT/usr/lib/qubes/
|
||||
@ -440,6 +441,7 @@ fi
|
||||
/usr/lib/qubes/fix_dir_perms.sh
|
||||
/usr/lib/qubes/startup-dvm.sh
|
||||
/usr/lib/qubes/startup-misc.sh
|
||||
/usr/lib/qubes/prepare_volatile_img.sh
|
||||
%attr(4750,root,qubes) /usr/lib/qubes/qfile-dom0-unpacker
|
||||
%if %{use_systemd}
|
||||
%{_unitdir}/qubes-block-cleaner.service
|
||||
|
Loading…
Reference in New Issue
Block a user