From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id CF38F1FF0E0 for ; Thu, 09 Jul 2026 10:22:45 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id EE4E42165A; Thu, 09 Jul 2026 10:20:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783366866; x=1783971666; darn=lists.proxmox.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x5IYW1LXPacsQHWfjK1mofdEMXlnS0Hgls0rlvJ0MSM=; b=Sd0CPTKH0psmyp/F+Oq9l1U5+6itS8+Kd1ZLljsHhZDH7W0NINLY3kGa7np2JGACbg mwJZXraAXxxoAnxjP3iFuZjY9ErkcNE94eC5xiDJx+bfQ3V5VEiHKCuHAF/Tx0HFJDXG XDFLJ7Y86zn1JznN1MeJbcwNzxTd5M65PDwlIlWVOdIFJmuQx0cv9wOcCLw+1/7eHemt EEI7BFhl6A+dFhbnQGIypXRwzU0/MJb0Q6KtOsDriSC78D3NYS6okooVM34tB+DGNU8p uC0mWhGAkfrGt9JmYHSfajPbdQrUeVNF9flGFRkU4fKQk0CiliBH9T6Udxi+xLMMXswc pmzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783366866; x=1783971666; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=x5IYW1LXPacsQHWfjK1mofdEMXlnS0Hgls0rlvJ0MSM=; b=FeL4PlGWdRJ5aQVl7qs6NEnt1I2kbsGpEgiFcixjOE3Ian3KZly4qs3FA0KfAtJe5E qofpAaZYjXjHlYlURqBqRGq5Qx8Hm/vwgxpSKulGXDYZdZkyFgZqS8xpoQZWdij2ErhL 19ZZ1tmgaPYcdDDw+lWsv5h+2FE42GyDNVl6h5FfyS2TUnadO31lKvZJJeqSWfAsciex oP0bJK94QqmmElKQMjyIlMVGM7wqWt4tvGXdfk5vnF4BhNCSh91HApoKsdkPq845mgy/ WiDNnCZ1eUyoFtC2r3Iwnz+PY+x7U3vEkd6rJdMkN27OCnde3NEEWo2MLgfTDQJQzkpZ iOdQ== X-Gm-Message-State: AOJu0YwJp3wnbTMHIqBIQyXMiXeIIp8WUBtkfGRguJ7817ZleJL3/WrO ezuyZxgPJjdfEvvxoOo1u8Oa6OVtK4gSdEpJD4hcgfis+MLUWBqMPoqumAhhcDgl X-Gm-Gg: AfdE7cm6qgWnvyrLjOHPcXbXo39q4QApQ/wvlc6gT76HZhRhVxeKc5xENUT5kJOmo1O k3gEY0Se3pfr9KA8GlEvejR/ZNFEan+pSkVhJ3q+Za2kzzG4y9PSKzpfLUyFnzFUCGc/FDBfpPT 1V1LAJ+rqpetcnSwBlPyShUqK8PGLDeW1zsBjaqU/8JueeFcjyAO8a8i4fJflhvFiVidWK7xMr+ ZTwJvyh1ihP0GnK37QqZTwwk6GzvoaXur7DXaTg8fUwLxJKAV0fV6Q2AAjSNosYuRVsApfA9Zk1 BJpyB5tU8iIhWGKOEQQZIYPsfoLOPaapNSNKITv7YVNpPS8PDy3nTjjHi/TUlRWLrHPqbvm1rSm zLYdZOMCqTfFN33RhSROBVDsh7QkreO1h8ARBetPdDOR12Gb6lM865Bqp0uXwfwy51lZeJ9kXuM jWgLju1PScH+W5yQ== X-Received: by 2002:adf:e909:0:b0:475:f0c2:5b02 with SMTP id ffacd0b85a97d-47de66e3b93mr1580313f8f.56.1783366866365; Mon, 06 Jul 2026 12:41:06 -0700 (PDT) From: copystring To: pve-devel@lists.proxmox.com subject: SPAM: [RFC PATCH pve-docs] pct: document OCI rootfs replacement semantics Date: Mon, 6 Jul 2026 21:40:59 +0200 Message-ID: <20260706194059.280257-7-copystring@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260706194059.280257-1-copystring@gmail.com> References: <20260706194059.280257-1-copystring@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 3 AWL -0.285 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy FORGED_GMAIL_RCVD 1 'From' gmail.com does not match 'Received' headers FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust RCVD_IN_SBL_CSS 3.558 Received via a relay in Spamhaus SBL-CSS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record X-MailFrom: copystring@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: 6BZBDOWMZPNNSW42BPGI7E2N6QVIUEI2 X-Message-ID-Hash: 6BZBDOWMZPNNSW42BPGI7E2N6QVIUEI2 X-Mailman-Approved-At: Thu, 09 Jul 2026 10:20:43 +0200 CC: copystring X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Document that replacing an OCI-based container rootfs changes only rootfs, keeps separate mpX mount points, and leaves the previous rootfs as an unused volume for recovery. Also point out that data stored only on / is not carried over. Signed-off-by: copystring --- pct.adoc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pct.adoc b/pct.adoc index cd3130f..aded5a9 100644 --- a/pct.adoc +++ b/pct.adoc @@ -368,6 +368,39 @@ view of a storage. Once the template is on a storage, you can create the container with `pct create` or use the wizard in the web interface. +Replacing the Rootfs from an OCI Image +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For an existing OCI-based container, `pct replace-rootfs-from-oci` can replace +the container's `rootfs` with the contents of another OCI image archive. This is +an offline operation and requires the container to be stopped. + +WARNING: This operation replaces the active `/` filesystem of the container. +Data that is stored only on the old `rootfs` will not be part of the newly +active `rootfs`. Separate mount points configured as `mp0`, `mp1`, and so on are +kept unchanged. + +The previous `rootfs` is kept as an `unusedX` volume entry after a successful +replacement. This allows manual recovery or rollback, but it also means that the +old volume continues to use storage space until it is explicitly cleaned up. + +By default, OCI-derived runtime settings such as the entrypoint, environment, +OS type and architecture are updated to match the new image. Use +`--update-oci-config 0` to only switch the `rootfs` while preserving the existing +runtime settings. + +Before replacing the `rootfs`, make sure that all persistent application data is +stored on separate mount points or backed up. The operation does not try to +detect application data directories such as `/data` or `/config`. + +For example, to replace the `rootfs` of container `999` with a new OCI image +archive: + +---- +# pct replace-rootfs-from-oci 999 local:vztmpl/alpine-3.21.tar \ + --confirm-rootfs-replace 1 +---- + [[pct_settings]] Container Settings ------------------ -- 2.55.0.windows.2