1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-10 16:58:28 +03:00

confext/sysext: add initrd-specific units (#35426)

In the rootfs these need to run after /var/lib/ has been set up. In the
initrd we want them to run as soon as possible so that they can be used
to customize setting up the rootfs.
This commit is contained in:
Lennart Poettering 2024-12-18 10:33:38 +01:00 committed by GitHub
commit 7a8556b901
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 92 additions and 7 deletions

View File

@ -1093,7 +1093,11 @@ manpages = [
['systemd-sysctl.service', '8', ['systemd-sysctl'], ''],
['systemd-sysext',
'8',
['systemd-confext', 'systemd-confext.service', 'systemd-sysext.service'],
['systemd-confext',
'systemd-confext-initrd.service',
'systemd-confext.service',
'systemd-sysext-initrd.service',
'systemd-sysext.service'],
'ENABLE_SYSEXT'],
['systemd-system-update-generator', '8', [], ''],
['systemd-system.conf',

View File

@ -19,8 +19,10 @@
<refnamediv>
<refname>systemd-sysext</refname>
<refname>systemd-sysext.service</refname>
<refname>systemd-sysext-initrd.service</refname>
<refname>systemd-confext</refname>
<refname>systemd-confext.service</refname>
<refname>systemd-confext-initrd.service</refname>
<refpurpose>Activates System Extension Images</refpurpose>
</refnamediv>

View File

@ -287,6 +287,11 @@ units = [
'file' : 'systemd-confext.service',
'conditions' : ['ENABLE_SYSEXT'],
},
{
'file' : 'systemd-confext-initrd.service',
'conditions' : ['ENABLE_INITRD', 'ENABLE_SYSEXT'],
'symlinks' : ['initrd.target.wants/'],
},
{
'file' : 'systemd-coredump.socket',
'conditions' : ['ENABLE_COREDUMP'],
@ -619,6 +624,11 @@ units = [
'file' : 'systemd-sysext.service',
'conditions' : ['ENABLE_SYSEXT'],
},
{
'file' : 'systemd-sysext-initrd.service',
'conditions' : ['ENABLE_INITRD', 'ENABLE_SYSEXT'],
'symlinks' : ['initrd.target.wants/'],
},
{
'file' : 'systemd-sysext.socket',
'conditions' : ['ENABLE_SYSEXT'],

View File

@ -0,0 +1,35 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Merge System Configuration Images into /etc/
Documentation=man:systemd-confext-initrd.service(8)
ConditionCapability=CAP_SYS_ADMIN
ConditionDirectoryNotEmpty=|/run/confexts
ConditionDirectoryNotEmpty=|/var/lib/confexts
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
ConditionDirectoryNotEmpty=|/usr/lib/confexts
ConditionDirectoryNotEmpty=|/.extra/confext
ConditionPathExists=/etc/initrd-release
DefaultDependencies=no
Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service
Wants=local-fs-pre.target cryptsetup-pre.target
Conflicts=initrd-switch-root.target
Before=initrd-switch-root.target
Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=systemd-confext refresh
ExecReload=systemd-confext refresh
ExecStop=systemd-confext unmerge

View File

@ -16,13 +16,13 @@ ConditionDirectoryNotEmpty=|/run/confexts
ConditionDirectoryNotEmpty=|/var/lib/confexts
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
ConditionDirectoryNotEmpty=|/usr/lib/confexts
ConditionDirectoryNotEmpty=|/.extra/confext
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
After=local-fs.target
Before=sysinit.target systemd-tmpfiles-setup.service
Conflicts=shutdown.target initrd-switch-root.target
Before=shutdown.target initrd-switch-root.target
Conflicts=shutdown.target
Before=shutdown.target
[Service]
Type=oneshot

View File

@ -0,0 +1,34 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Merge System Extension Images into /usr/ and /opt/
Documentation=man:systemd-sysext-initrd.service(8)
ConditionCapability=CAP_SYS_ADMIN
ConditionDirectoryNotEmpty=|/etc/extensions
ConditionDirectoryNotEmpty=|/run/extensions
ConditionDirectoryNotEmpty=|/var/lib/extensions
ConditionDirectoryNotEmpty=|/.extra/sysext
ConditionPathExists=/etc/initrd-release
DefaultDependencies=no
Before=local-fs-pre.target cryptsetup-pre.target systemd-tmpfiles-setup.service
Wants=local-fs-pre.target cryptsetup-pre.target
Conflicts=initrd-switch-root.target
Before=initrd-switch-root.target
Wants=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
After=modprobe@loop.service modprobe@dm_mod.service modprobe@squashfs.service modprobe@erofs.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=systemd-sysext refresh
ExecReload=systemd-sysext refresh
ExecStop=systemd-sysext unmerge

View File

@ -15,13 +15,13 @@ ConditionCapability=CAP_SYS_ADMIN
ConditionDirectoryNotEmpty=|/etc/extensions
ConditionDirectoryNotEmpty=|/run/extensions
ConditionDirectoryNotEmpty=|/var/lib/extensions
ConditionDirectoryNotEmpty=|/.extra/sysext
ConditionPathExists=!/etc/initrd-release
DefaultDependencies=no
After=local-fs.target
Before=sysinit.target systemd-tmpfiles-setup.service
Conflicts=shutdown.target initrd-switch-root.target
Before=shutdown.target initrd-switch-root.target
Conflicts=shutdown.target
Before=shutdown.target
[Service]
Type=oneshot