try to overlay flatpak in live session

this is a bit complicated unfortunately
This commit is contained in:
Harald Sitter
2024-09-28 14:07:20 +02:00
parent 8d3de329df
commit e5042c1c12
4 changed files with 45 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2024 Harald Sitter <sitter@kde.org>
set -eux
if ! grep "kdeos.live=1" /proc/cmdline; then
echo "kdeos.live=1 not in cmdline"
exit 1
fi
if [ "$(readlink --canonicalize /dev/disk/by-label/KDEOSLive)" != "$(readlink --canonicalize /dev/gpt-auto-root)" ]; then
echo "gpt-auto-root is not KDEOSLive"
exit 1
fi
# Replicate what systemd-volatile-root does. Unfortunately we can't just use the volatile root because you can't
# overlay with an overlay. This means we potentialy claim a lot of RAM (25% for root + 15% for flatpaks).
# Not ideal but there's no way I can see to get access to the volatile-sysroot (it gets unmounted and removed
# before systemd-volatile-root exits).
mkdir --mode 0700 /run/kde-linux/
mkdir --mode 0700 /run/kde-linux/overlay-var-lib-flatpak
mount -t tmpfs tmpfs /run/kde-linux/overlay-var-lib-flatpak -o mode=0755,size=15%,nr_inodes=1m
mkdir --mode 0755 /run/kde-linux/overlay-var-lib-flatpak/upper
mkdir --mode 0755 /run/kde-linux/overlay-var-lib-flatpak/work
mount -t overlay overlay /var/lib/flatpak \
-o lowerdir=/var/lib/flatpak,upperdir=/run/kde-linux/overlay-var-lib-flatpak/upper,workdir=/run/kde-linux/overlay-var-lib-flatpak/work

View File

@@ -44,7 +44,7 @@ cat <<- EOF > "$normal_dir/var-lib-flatpak.mount"
# Generated by $(basename "$0")
[Unit]
Description=Mount unit for /var/lib/flatpak
Before=systemd-volatile-root.service
Before=kde-linux-volatile-var-lib-flatpak.service
[Mount]
What=/dev/disk/by-label/KDEOSLive

View File

@@ -13,6 +13,7 @@ enable cups.service
enable kde-linux-btrfs.service
enable kde-linux-live-setup.service
enable kde-linux-volatile-var-lib-flatpak.service
enable plasma-setup-live-system.service
enable kdeos-overlay.service
enable var-lib-snapd-snap.mount

View File

@@ -0,0 +1,14 @@
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2024 Harald Sitter <sitter@kde.org>
[Unit]
Description=Volatile /var/lib/flatpak File Systems
Before=display-manager.service
After=var.mount
ConditionKernelCommandLine=kdeos.live=1
[Service]
ExecStart=/usr/bin/_kde-linux-volatile-flatpak
[Install]
WantedBy=multi-user.target