From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 8FDAFC8F6; Sun, 14 Dec 2025 01:48:22 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 13AFBC99C; Sun, 14 Dec 2025 01:48:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 Received: from fout-a2-smtp.messagingengine.com (fout-a2-smtp.messagingengine.com [103.168.172.145]) by atuin.qyliss.net (Postfix) with ESMTPS id 8CFBFC98C for ; Sun, 14 Dec 2025 01:48:16 +0000 (UTC) Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id 5E7C0EC0652; Sat, 13 Dec 2025 20:48:14 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Sat, 13 Dec 2025 20:48:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1765676894; x= 1765763294; bh=HLl8nQvWvgKjn17T7nlOEG8TD0aFUtmae7cKbT93kCI=; b=E FP0Et31B1lLIrF5Gpqu4gsOUXfX++3ek/KF/YRpwyTryAYTMUkYqSmPyNC6JEcK6 3YFagtm+w69cvb1tCilqi3n8IdYm+18iiG0qsXN+YKyOBbxAfGc+/o90GrKsJOrp t4srkELlFOxVRqGkYdtBtQ8i9EjK++Ieln+/FoiKkTZ4L+yRoyyfAeLzxHiqpy51 uanzxy2YZaX3D16kjtiWPcmGui3vb7L5De4hCisoIwV/AQ9vdEBka0Mlkgj3k1BZ r095g1ROTVweQZtLJt8bHbE27bvenJDzH0zqonpTh5/Wq96b+NPnEjfzMaTZUmy+ nxUF+2uvgb2mMC7hkIcFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; t=1765676894; x=1765763294; bh=H Ll8nQvWvgKjn17T7nlOEG8TD0aFUtmae7cKbT93kCI=; b=YAzzeuOkEJ5eSatMZ h1I5yoxYN4QYwufAYBA5G1YiYnacv2zbdfAj1R5MjlEfj8afPE4n1MYcQkh+84KC +HFwhxi8NT49OL0HFaA58aOU9Vj4S8y1Z98sweE7Mlhpp+WN6Eyqa97DH1GEGjnq 84PBeqLQf7vytyOYKg5hh3R9/PpErif1gMib8UCPBXsBfgn28e8QXB1WF668HhAm NO1V5DHntrFWIC/tt8VM7B8ImjKBqDx7nDbiwU9sl7DBum65EP0cU4PEkBjtBpPw lIzFOBxDWlCiuQqnOUea/UTtkVC+A0kOm5jlEwQXx7A1eobscmtKW4B5MXL6AMsH Ocs+A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefvdeihecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeetlhihshhsrgcu tfhoshhsuceohhhisegrlhihshhsrgdrihhsqeenucggtffrrghtthgvrhhnpeegueeiud eukeekiedvteffgeekudfhudevvdelvdekhfefieetkeduudejffefgeenucevlhhushht vghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehhihesrghlhihsshgrrd hishdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep uggvmhhiohgsvghnohhurhesghhmrghilhdrtghomhdprhgtphhtthhopeguvghvvghlse hsphgvtghtrhhumhdqohhsrdhorhhg X-ME-Proxy: Feedback-ID: i12284293:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 13 Dec 2025 20:48:14 -0500 (EST) Received: by fw12.qyliss.net (Postfix, from userid 1000) id A5A9E7BF7223; Sun, 14 Dec 2025 02:48:11 +0100 (CET) From: Alyssa Ross To: devel@spectrum-os.org Subject: [PATCH v2 7/7] Documentation: document persistence Date: Sun, 14 Dec 2025 02:42:36 +0100 Message-ID: <20251214014229.775825-14-hi@alyssa.is> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251214014229.775825-2-hi@alyssa.is> References: <20251214014229.775825-2-hi@alyssa.is> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: MMLO6UHKCTASTW7GOUCFIZ752J4FIQ4B X-Message-ID-Hash: MMLO6UHKCTASTW7GOUCFIZ752J4FIQ4B X-MailFrom: hi@alyssa.is X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Demi Marie Obenour X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Signed-off-by: Alyssa Ross --- v2: new this round .../using-spectrum/vm-file-access.adoc | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/Documentation/using-spectrum/vm-file-access.adoc b/Documentation/using-spectrum/vm-file-access.adoc index 1546d57d..6189233f 100644 --- a/Documentation/using-spectrum/vm-file-access.adoc +++ b/Documentation/using-spectrum/vm-file-access.adoc @@ -2,11 +2,38 @@ :page-parent: Using Spectrum :page-nav_order: 1 -// SPDX-FileCopyrightText: 2024 Alyssa Ross +// SPDX-FileCopyrightText: 2024-2025 Alyssa Ross // SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0 -Spectrum VMs start without any access to user data, but the user can -grant VMs access to files while the VM is running. +Spectrum VMs start without any access to user data, and with all +application state being discarded when the VM exits, but these +restrictions can be softened at runtime as required. + +== Persistent application data + +To make an application VM persistent, run, for example, +`vm-set-persist gGKghi configured`, where "gGKghi" is the VM's ID (can +be found using xref:running-vms.adoc#basic-vm-commands[`lsvm`]) and +"configured" is the name to be given to this persistent application +instance. The VM's home directory will now be saved under the given +name. For now, names are scoped to only to a user data partition, not +to an application, so you cannot create instances of different +applications with the same name. + +Then, to start a VM with that persistent data in future, give the +instance name to `run-appimage` or `run-flatpak` as an extra argument. +This run of the application will also persist further changes to its +home directory under the same name. + +Persistent application data is stored as directories prefixed with +"persist." under Spectrum/data/spectrum/storage on the user data +partition. They can be manually renamed, and, as long as they are not +being used by a currently running VM, removed. + +For manually configured VMs, persistence can optionally be enabled +when the VM is imported, by providing the storage location as an extra +argument to `vm-import`. The name of each imported VM will be used as +its instance name. == File chooser portal -- 2.51.0