From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 03B571FF0E0 for ; Thu, 09 Jul 2026 10:21:06 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 77F3821493; Thu, 09 Jul 2026 10:20:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783366858; x=1783971658; 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:content-type; bh=x5IYW1LXPacsQHWfjK1mofdEMXlnS0Hgls0rlvJ0MSM=; b=CQDMqh/KsyeOpA7+YnfbRLO7Z5wEUmd2/t3hYIq0A2YnO4BqOoqxQjfzouarYPo+zC Oq+6RXektlQbpYYWnMqdjwDkYxsx73wB4RQaIzMYDZEk1D+FNQfeuPDOcxPhdPROYxuZ ZaOLU4TpmtIc1seI3F1Ay2eoVb9yC3FQ1QrzKDYb/d7894REktu8hvmxZtKHwYfaBunA X1OZzk5WFcYC8J8Rdju+znRgSwI7ZiEYbg55h9tlSnearmoV2whZcZOx+SRiNevr5fpr Bn8TPBxhoi8ynsH/G/614o81iEQkoc08tQmWJjyJn29j0s3Jo4lWTxE1dp23WYXCHe7g XjDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783366858; x=1783971658; 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:content-type; bh=x5IYW1LXPacsQHWfjK1mofdEMXlnS0Hgls0rlvJ0MSM=; b=PtFReBV+6axaomhpLOPKj1cheHQ4igMXJavgNJHP7JaDhtpyeG044JJHyJS/8pnr5m vczfk/PZMNzaww5Bxfc9emLJyr/BehBdER5581Pa8bO+4v4PAo+wmhPR4KvdYU7cD6lC 32E+CO+drPm77Fw0Oepz1xiD7v0S7RcKg7ah7/ZUOnCevYpz9GwEo2PLGqFND+nodPYq cA5MKnWEjy6ei8OohaItrktYBdq/8797nbEMbHovnSgq9tG+eIH+tKBgQbVSu/vFcPlT QnymDX+A0yb6+U3uxpIg4/1vOxI/972aw2SGedKM0Cl4AEbq4PqyUVDFYV+adoIWkrE3 vvvA== X-Gm-Message-State: AOJu0Yw3RfC9uyu0dj2AddY7jPZ1Z8GIswa2FSb1wsAzML21BhsN/QY7 ekCHHM9EJ3qXhp8sT59C8bEzZqemD1szm4WjbM3ANgJQDhVYBM8A4naOR2+I5Cik X-Gm-Gg: AfdE7cmrtQ9/00MRahsKrypblj6e9w0qWlTh+hPGmxRyDgnZrJMGLwxLjA+d5PT90GF Iqh2RWh7ik05T8sdtYo+/nnsRcGOpP0yme8384VA5TOY1ZxMS8trZnwbsVBDTa04wB66ORR+6lb Vvwc9lrRNcQOVbS4Lgbn0v+KS8YjSdwhJQOz5ZPJoex28BGQ6QrELbroJWLi6HK54N7QfWYhUOS PTn8+GyzpG6iWEqddmdRUUndCstcKB+DlVyTX29jIkXh8skWZGL8GKXANUDhlj8wb0doxtPQFvP gPFDN5YFPUb3el4TIgNnbPnVZcxTZHhlWxgTEOOQ4dzuerKgsJV4Qe9usZqHlXY7LKRAVjn4SsL KPtvHgW9tga8tEuoT/YFMhV7ogNMnIehlO29z8Tgp/qOW9beQAL+qszBifuecioiu0KXNw3NUJ8 bOsZ1KQL7R5tDxXuTQVhURsIjg X-Received: by 2002:a05:6000:2407:b0:46f:558:a43f with SMTP id ffacd0b85a97d-47de6697a52mr1852561f8f.4.1783366858280; Mon, 06 Jul 2026 12:40:58 -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:39:34 +0200 Message-ID: <20260706193934.279992-7-copystring@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260706193934.279992-1-copystring@gmail.com> References: <20260706193934.279992-1-copystring@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 3 AWL 0.330 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 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: 2JTAMBD6VESGQ6BFXQXZNKPPJRODMMJY X-Message-ID-Hash: 2JTAMBD6VESGQ6BFXQXZNKPPJRODMMJY X-Mailman-Approved-At: Thu, 09 Jul 2026 10:20:40 +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