Done. diff --git a/PVE/OpenVZ.pm b/PVE/OpenVZ.pm index a16d4fc..7788f66 100644 --- a/PVE/OpenVZ.pm +++ b/PVE/OpenVZ.pm @@ -1244,13 +1244,13 @@ sub replacepw { }
sub set_rootpasswd { - my ($privatedir, $opt_rootpasswd) = @_; + my ($opt_rootpasswd, $rootdir) = @_; - my $pwfile = "$privatedir/etc/passwd"; + my $pwfile = "$rootdir/etc/passwd"; return if ! -f $pwfile; - my $shadow = "$privatedir/etc/shadow"; + my $shadow = "$rootdir/etc/shadow"; if ($opt_rootpasswd !~ m/^\$/) { my $time = substr (Digest::SHA::sha1_base64 (time), 0, 8); diff --git a/PVE/API2/OpenVZ.pm b/PVE/API2/OpenVZ.pm index 06fe60b..60ef124 100644 --- a/PVE/API2/OpenVZ.pm +++ b/PVE/API2/OpenVZ.pm @@ -406,15 +406,23 @@ __PACKAGE__->register_method({ } } else { - PVE::Tools::file_set_contents($basecfg_fn, $rawconf); - my $cmd = ['vzctl', '--skiplock', 'create', $vmid, - '--ostemplate', $archive, '--private', $private]; - run_command($cmd); - - # hack: vzctl '--userpasswd' starts the CT, but we want - # to avoid that for create - PVE::OpenVZ::set_rootpasswd($private, $password) - if defined($password); + PVE::Tools::file_set_contents($basecfg_fn, $rawconf); + my $cmd = ['vzctl', '--skiplock', 'create', $vmid, + '--ostemplate', $ostmp, '--private', $private]; + run_command($cmd); + my $rootdir = PVE::OpenVZ::get_rootdir($conf, $vmid); + + $cmd = ['/usr/sbin/vzctl', '--skiplock', 'mount', $vmid]; + run_command($cmd); + die "Cannot mount $vmid" if !PVE::OpenVZ::check_mounted($conf, $vmid); + + # hack: vzctl '--userpasswd' starts the CT, but we want + # to avoid that for create + PVE::OpenVZ::set_rootpasswd($password, $rootdir) + if defined($password); + + $cmd = ['/usr/sbin/vzctl', '--skiplock', 'umount', $vmid]; + run_command($cmd); } PVE::AccessControl::add_vm_to_pool($vmid, $pool) if $pool; On Mon, Oct 28, 2013 at 12:20 PM, Dietmar Maurer <diet...@proxmox.com>wrote: > > Of course, we can use "vzctl mount", but then function set_rootpasswd > must be > > rewrited to use "vzctl mount" for simfs too. > > I guess that is the correct way to implement it. > > > -- С уважением, Шестаков Игорь Сеть дата-центров "Селектел"
_______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel