SYSTEMD-SYSEXT(8) systemd-sysext SYSTEMD-SYSEXT(8) (NAME) systemd-sysext, systemd-sysext.service, systemd-sysext-initrd.service, systemd-sysext-sysroot.service, systemd-confext, systemd- confext.service, systemd-confext-initrd.service, systemd-confext- sysroot.service - (SYNOPSIS) systemd-sysext [OPTIONS...] COMMAND systemd-sysext.service systemd-confext [OPTIONS...] COMMAND systemd-confext.service (DESCRIPTION) systemd-sysext / . - -- /usr/ /opt/ . /usr/ / /opt/ . . /usr/ /opt/ "overlayfs" /usr/ /opt/ (""). -- (" "). /usr/ /opt/ . . /usr/ /opt/ . /etc/ /var/ . . /usr/ /opt/ . --mutable= Mutable= "" . . sysext.conf(5) . . (overlayfs) . : 1. btrfs 2. GPT UAPI.2[1] 3. ( erofs squashfs ext4) systemd-nspawn(1) --directory=/--image= RootDirectory=/RootImage= . Verity . /etc/extensions/ /run/extensions/ /var/lib/extensions/ . . /var/lib/extensions/ . .raw . initrd /.extra/sysext/ . . systemd-stub(7) EFI . systemd-sysext.service systemd-confext.service . . ( systemd-sysusers(8)) initrd systemd-sysext-sysroot.service systemd-confext-sysroot.service . /var/ /sysroot/var/lib/extensions/ /sysroot/var/lib/confexts/ . systemd-sysext.service systemd-confext.service . [2] . : . systemd-sysext.service systemd-confext.service basic.target ( DefaultDependencies=no ) /usr/ /opt/ /etc/ . initrd initrd systemd-sysext-initrd.service systemd-confext-initrd.service . : initrd ( ) . / : . ( .raw) /etc/extensions/ "" (/) . rd.systemd.sysext= rd.systemd.confext= systemd.sysext= systemd.confext= . systemd-sysext-sysroot.service systemd-confext-sysroot.service systemd.sysext= systemd.confext= initrd. : /usr/lib/extension-release.d/extension-release.NAME os-release : ID= "_any" . ID= "_any" SYSEXT_LEVEL= ( ) . VERSION_ID= . ARCHITECTURE= "_any" uname(2) ConditionArchitecture= systemd.unit(5) . EXTENSION_RELOAD_MANAGER= 1 . [2] . /usr/lib/os-release ( /usr/ ). extension-release os-release . systemd-confext systemd-sysext(8) /usr /opt confext /etc . confext /etc/ . sysext . "nosuid" ( --noexec=false ) "noexec" . sysext confext . confext /etc/ . sysext --mutable= . "" . /run/confexts/ /var/lib/confexts/ /usr/lib/confexts/ /usr/local/lib/confexts/ . . /var/lib/confexts/ . confext .raw confext . sysext confext /etc/extension-release.d/extension-release.NAME ( user.extension-release.strict xattr(7)) ID= VERSION_ID= CONFEXT_LEVEL . confext . (USES) ( strace(1) gdb(1) / ). : . -- -- . . ( "" DESTDIR=/var/lib/extensions/mytest make install && systemd-sysext refresh /usr/ .) /usr/ ( ) . systemd-confext . . . . systemd-confext . (MUTABILITY) /usr/ /opt/ . /etc/ . . : 1. disabled: /var/lib/extensions.mutable/ . . 2. auto: . /var/lib/extensions.mutable/ . 3. enabled: /var/lib/extensions.mutable/ . 4. import: disabled /var/lib/extensions.mutable/ . 5. ephemeral: enabled /var/lib/extensions.mutable/ systemd-sysext . . 6. ephemeral-import: ephemeral /var/lib/extensions.mutable/ import . --mutable= "" . ephemeral /var/lib/extensions.mutable/ . /usr/ /var/lib/extensions.mutable/usr/ /opt/ /var/lib/extensions.mutable/opt/ /etc/ /var/lib/extensions.mutable/etc/ . usr/ opt/ etc/ /var/lib/extensions.mutable/ . : /var/lib/extensions.mutable/etc/ -> /etc/ /var/lib/extensions.mutable/usr/ -> /usr/ /var/lib/extensions.mutable/opt/ -> /opt/ . /var/lib/extensions.mutable/ /var/lib/extensions.mutable/ ( /tmp/) . ephemeral . 256. (COMMANDS) sysext confext : status status ( /usr/ /opt/ sysext /etc/ confext) . 248. merge /usr/ /opt/ "overlayfs" . . confext /etc/ . 248. unmerge "overlayfs" merge /usr/ /opt/ sysext /etc/ confext . 248. refresh unmerge merge: "overlayfs" . / "overlayfs" . unmerge "overlayfs" . "overlayfs" . -- . 248. list . 248. -h, --help . --version . (OPTIONS) --root= "overlayfs" /usr/ /opt/ sysext /etc/ confext . 248. --force /usr/ /opt/ sysext /etc/ confext . 248. --always-refresh=yes|no /usr/ /opt/ sysext /etc/ confext . . ( ). overlayfs . 260. --image-policy=policy systemd.image-policy(7) . . "root=verity+signed+encrypted+unprotected+absent:usr=verity+signed+encrypted+unprotected+absent" root /usr/ . "root=verity+signed+encrypted+unprotected+absent" . initrd /.extra/sysext/ : "root=signed+absent:usr=signed+absent" . 254. --mutable=BOOL|auto|import|ephemeral|ephemeral-import|help . "help" . no . . 256. auto /usr/ /opt/ /etc/ /var/lib/extensions.mutable/ . "" . 256. yes . /var/lib/extensions.mutable/ . 256. import /var/lib/extensions.mutable/ . 256. ephemeral /var/lib/extensions.mutable/ . 256. ephemeral-import /var/lib/extensions.mutable/ . 256. help . 259. 256. --noexec=BOOL /etc/ "MS_NOEXEC" . . 254. --no-reload merge unmerge refresh EXTENSION_RELOAD_MANAGER= 1 . 255. --no-pager . --no-legend . --json=MODE JSON . : "short" ( ) "pretty" ( ) "off" ( JSON ). (EXIT STATUS) 0 . (SEE ALSO) systemd(1), sysext.conf(5), systemd-nspawn(1), systemd-stub(7), importctl(1) (NOTES) 1. UAPI.2 https://uapi- group.org/specifications/specs/discoverable_partitions_specification 2. https://systemd.io/PORTABLE_SERVICES systemd 261.2 SYSTEMD-SYSEXT(8)