SYSTEMD-SYSEXT(8) systemd-sysext SYSTEMD-SYSEXT(8) systemd-sysext, systemd-sysext.service, systemd-sysext-initrd.service, systemd-confext, systemd-confext.service, systemd-confext-initrd.service - systemd-sysext [...] systemd-sysext.service systemd-confext [...] systemd-confext.service / 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-sysusers(8). [2] . : . systemd-sysext.service basic.target ( DefaultDependencies=no) /usr/ /opt/ . / : . ( .raw) /etc/extensions/ "" . : /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" ( --noexec=false). sysexts confexts . confexts /etc/ . sysexts --mutable=. " " . Confexts /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 . ( strace(1) gdb(1) /). : . - . . ( "" DESTDIR=/var/lib/extensions/mytest make install && systemd-sysext refresh /usr/ ). /usr/ ( ). systemd-confext . . . . systemd-confext. /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 mode) . 256. sysext confext: status status ( /usr/ /opt/ sysext /etc/ confext). 248. merge /usr/ /opt/ "overlayfs" . . confext /etc/ . 248. unmerge /usr/ /opt/ sysext /etc/ confext "overlayfs" merge . 248. refresh unmerge merge: "overlayfs" . "overlayfs" . unmerge "overlayfs" . "overlayfs" . - . 248. list . 248. -h --help . --version . --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= systemd.image-policy(7). . "root=verity+signed+encrypted+unprotected+absent:usr=verity+signed+encrypted+unprotected+absent" /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 (pager). --no-legend . --json= JSON. : "short" ( ) "pretty" ( ) "off" ( JSON ). 0. systemd(1), sysext.conf(5), systemd-nspawn(1), systemd-stub(7), importctl(1) 1. UAPI.2 https://uapi-group.org/specifications/specs/discoverable_partitions_specification 2. https://systemd.io/PORTABLE_SERVICES 3 . . : . systemd 260.2 SYSTEMD-SYSEXT(8)