X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=b8ed2779f6573ed406a12cec845027c5006a0764;hb=079edecc5b1d51bb23c197741ea76cad58351c50;hp=a4dc8ed439ba416b345b1c06caf29e978e3ea8e8;hpb=6cff6590dc1d10005b73d9e765d8c34ede131a59;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index a4dc8ed..b8ed277 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -41,13 +41,14 @@ declare -a ENTER_SHELL=() declare -a OPTS_VCONTEXT_CREATE=() declare -a OPTS_VCONTEXT_MIGRATE=() declare -a OPTS_VCONTEXT_ENTER=() +OPT_VCONTEXT_CHROOT=--chroot declare -a OPTS_VATTRIBUTE=( --flag fakeinit ) declare -a OPTS_VSCHED=() declare -a OPTS_ENV=() declare -a OPTS_VTAG_CREATE=() declare -a OPTS_VTAG_ENTER=() declare -a OPTS_VMEMCTRL=() -declare -a OPTS_VSPACE=() +declare -a OPTS_VSPACE=( --default ) declare -a STOPCMD_PREPARE=() @@ -405,6 +406,8 @@ function _generateFlagOptions isAvoidNamespace "$vdir" || { USE_VNAMESPACE=1 CHCONTEXT_FLAG_OPTS=( "${CHCONTEXT_FLAG_OPTS[@]}" --flag namespace ) + ! $_VSERVER_INFO - FEATURE PIVOT_ROOT || \ + OPT_VCONTEXT_CHROOT=--pivot-root } } @@ -940,6 +943,8 @@ function mountVserver local ns_opt=$2 local vdir=$1/vdir local mtab_src + local extra_opt= + local real_vdir test -e "$cfgdir"/fstab -o \ -e "$cfgdir"/fstab.local -o \ @@ -960,8 +965,11 @@ function mountVserver isNamespaceCleanup "$cfgdir" && \ _namespaceCleanup "$cfgdir" + real_vdir=$(getPhysicalDir "$vdir") isAvoidNamespace "$cfgdir" || \ - $_SECURE_MOUNT --rbind -n -o dev "$vdir" "/" + $_SECURE_MOUNT --rbind -n -o dev "$vdir" "$real_vdir" + ! $_VSERVER_INFO - FEATURE PIVOT_ROOT || \ + $_SECURE_MOUNT -n -o shared,rec "$real_vdir" "$real_vdir" } function _umountVserverInternal