From 1ab48bdc2d642952c8e29f8bd7689e2ecc458a9b Mon Sep 17 00:00:00 2001 From: jonathan Date: Sat, 11 Oct 2025 19:19:58 +0200 Subject: [PATCH] added own service for creating overlays --- .../nimux-zfs-mount.service | 1 + .../usr/lib/nimux/nimux-early-mount.xsh | 23 +++++++++++++++++++ rootfs-overlay/usr/lib/nimux/nimux-firstlogin | 0 .../systemd/system/nimux-zfs-mount.service | 23 +++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 120000 rootfs-overlay/etc/systemd/system/local-fs-pre.target.wants/nimux-zfs-mount.service create mode 100755 rootfs-overlay/usr/lib/nimux/nimux-early-mount.xsh create mode 100644 rootfs-overlay/usr/lib/nimux/nimux-firstlogin create mode 100644 rootfs-overlay/usr/lib/systemd/system/nimux-zfs-mount.service diff --git a/rootfs-overlay/etc/systemd/system/local-fs-pre.target.wants/nimux-zfs-mount.service b/rootfs-overlay/etc/systemd/system/local-fs-pre.target.wants/nimux-zfs-mount.service new file mode 120000 index 0000000..a2c1d47 --- /dev/null +++ b/rootfs-overlay/etc/systemd/system/local-fs-pre.target.wants/nimux-zfs-mount.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/nimux-zfs-mount.service \ No newline at end of file diff --git a/rootfs-overlay/usr/lib/nimux/nimux-early-mount.xsh b/rootfs-overlay/usr/lib/nimux/nimux-early-mount.xsh new file mode 100755 index 0000000..0a1bbea --- /dev/null +++ b/rootfs-overlay/usr/lib/nimux/nimux-early-mount.xsh @@ -0,0 +1,23 @@ +#!/bin/xonsh --no-rc +# Nimux Early Mount (xonsh) + +#mount /mnt +print("mount /mnt") +/bin/mount /mnt + +# mount root on future accesable place +print("re-mount rootfs") +/bin/mkdir -p /mnt/rootfs +/bin/mount --bind / /mnt/rootfs +/bin/mount --make-rprivate /mnt/rootfs/ + +# import zpool +print("import zpool") +/sbin/zpool import nimux-zfs + +# overlay etc and home with a persistant zfs dataset +print("overlay mount etc") +/bin/unionfs -o cow,nonempty /mnt/rootfs.overlay/etc=RW:/mnt/rootfs/etc=RO /etc +print("overlay mount home") +/bin/unionfs -o cow,nonempty /mnt/rootfs.overlay/home=RW:/mnt/rootfs/home=RO /home + diff --git a/rootfs-overlay/usr/lib/nimux/nimux-firstlogin b/rootfs-overlay/usr/lib/nimux/nimux-firstlogin new file mode 100644 index 0000000..e69de29 diff --git a/rootfs-overlay/usr/lib/systemd/system/nimux-zfs-mount.service b/rootfs-overlay/usr/lib/systemd/system/nimux-zfs-mount.service new file mode 100644 index 0000000..8d34a09 --- /dev/null +++ b/rootfs-overlay/usr/lib/systemd/system/nimux-zfs-mount.service @@ -0,0 +1,23 @@ +[Unit] +Description=Nimux early mount: ZFS import + overlay for /etc and /home +DefaultDependencies=no +After=systemd-udev-settle.service +Wants=systemd-udev-settle.service +Before=local-fs-pre.target local-fs.target +Wants=local-fs-pre.target +Conflicts=shutdown.target + +[Service] +Type=oneshot +RemainAfterExit=yes +Environment=XONSH_HISTORY_BACKEND=none +Environment=XONSH_CACHE_DIR=/dev/null +Environment=XONSH_DATA_DIR=/dev/null +Environment=HOME=/tmp/xonsh-home +ExecStart=/usr/lib/nimux/nimux-early-mount.xsh +TimeoutStartSec=30s + + +[Install] +WantedBy=local-fs-pre.target +