[pve-devel] [RFC pve-container 5/6] vzdump: userns support
Wolfgang Bumiller
w.bumiller at proxmox.com
Thu Nov 12 14:00:28 CET 2015
---
src/PVE/LXC.pm | 8 ++++++++
src/PVE/LXC/Create.pm | 4 +---
src/PVE/VZDump/LXC.pm | 6 +++++-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 07ac4fc..ccab284 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -2411,4 +2411,12 @@ sub parse_id_maps {
return ($id_map, $rootuid, $rootgid);
}
+sub userns_command {
+ my ($id_map) = @_;
+ if (@$id_map) {
+ return ['lxc-usernsexec', (map { ('-m', join(':', @$_)) } @$id_map), '--'];
+ }
+ return [];
+}
+
1;
diff --git a/src/PVE/LXC/Create.pm b/src/PVE/LXC/Create.pm
index 441b445..853a840 100644
--- a/src/PVE/LXC/Create.pm
+++ b/src/PVE/LXC/Create.pm
@@ -25,12 +25,10 @@ sub next_free_nbd_dev {
sub restore_archive {
my ($archive, $rootdir, $conf) = @_;
- my $userns_cmd = [];
-
# we always use the same mapping: 'b:0:100000:65536'
my ($id_map, $rootuid, $rootgid) = PVE::LXC::parse_id_maps($conf);
+ my $userns_cmd = PVE::LXC::userns_command($id_map);
if (@$id_map) {
- $userns_cmd = ['lxc-usernsexec', (map { ('-m', join(':', @$_)) } @$id_map), '--'];
PVE::Tools::run_command(['chown', '-R', "$rootuid:$rootgid", $rootdir]);
}
diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm
index f138588..72ad9c0 100644
--- a/src/PVE/VZDump/LXC.pm
+++ b/src/PVE/VZDump/LXC.pm
@@ -105,6 +105,9 @@ sub prepare {
$task->{hostname} = $conf->{'hostname'} || "CT$vmid";
+ my ($id_map, $rootuid, $rootgid) = PVE::LXC::parse_id_maps($conf);
+ $task->{userns_cmd} = PVE::LXC::userns_command($id_map);
+
PVE::LXC::foreach_mountpoint($conf, sub {
my ($name, $data) = @_;
my $volid = $data->{volume};
@@ -278,7 +281,8 @@ sub archive {
my $snapdir = $task->{snapdir};
my $tmpdir = $task->{tmpdir};
- my $tar = ['tar', 'cpf', '-', '--totals',
+ my $userns_cmd = $task->{userns_cmd};
+ my $tar = [@$userns_cmd, 'tar', 'cpf', '-', '--totals',
@$PVE::LXC::COMMON_TAR_FLAGS,
'--one-file-system', '--warning=no-file-ignored'];
--
2.1.4
More information about the pve-devel
mailing list