mirror of
https://github.com/systemd/systemd.git
synced 2025-09-10 22:52:49 +02:00
confext: add initrd-specific unit
In the initrd we want to run as early as possible, before any of the filesystems are set up, so that users can use confexts to customize fstab/veritytab/crypttab/etc. But in the root fs it needs to run after /var/ has been set up. Split the unit, and have an initrd-specific one that runs very early.
This commit is contained in:
@@ -1093,7 +1093,10 @@ manpages = [
|
|||||||
['systemd-sysctl.service', '8', ['systemd-sysctl'], ''],
|
['systemd-sysctl.service', '8', ['systemd-sysctl'], ''],
|
||||||
['systemd-sysext',
|
['systemd-sysext',
|
||||||
'8',
|
'8',
|
||||||
['systemd-confext', 'systemd-confext.service', 'systemd-sysext.service'],
|
['systemd-confext',
|
||||||
|
'systemd-confext-initrd.service',
|
||||||
|
'systemd-confext.service',
|
||||||
|
'systemd-sysext.service'],
|
||||||
'ENABLE_SYSEXT'],
|
'ENABLE_SYSEXT'],
|
||||||
['systemd-system-update-generator', '8', [], ''],
|
['systemd-system-update-generator', '8', [], ''],
|
||||||
['systemd-system.conf',
|
['systemd-system.conf',
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<refname>systemd-sysext.service</refname>
|
<refname>systemd-sysext.service</refname>
|
||||||
<refname>systemd-confext</refname>
|
<refname>systemd-confext</refname>
|
||||||
<refname>systemd-confext.service</refname>
|
<refname>systemd-confext.service</refname>
|
||||||
|
<refname>systemd-confext-initrd.service</refname>
|
||||||
<refpurpose>Activates System Extension Images</refpurpose>
|
<refpurpose>Activates System Extension Images</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
|
|||||||
@@ -287,6 +287,11 @@ units = [
|
|||||||
'file' : 'systemd-confext.service',
|
'file' : 'systemd-confext.service',
|
||||||
'conditions' : ['ENABLE_SYSEXT'],
|
'conditions' : ['ENABLE_SYSEXT'],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'file' : 'systemd-confext-initrd.service',
|
||||||
|
'conditions' : ['ENABLE_INITRD', 'ENABLE_SYSEXT'],
|
||||||
|
'symlinks' : ['initrd.target.wants/'],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'file' : 'systemd-coredump.socket',
|
'file' : 'systemd-coredump.socket',
|
||||||
'conditions' : ['ENABLE_COREDUMP'],
|
'conditions' : ['ENABLE_COREDUMP'],
|
||||||
|
|||||||
35
units/systemd-confext-initrd.service
Normal file
35
units/systemd-confext-initrd.service
Normal 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
|
||||||
@@ -16,13 +16,13 @@ ConditionDirectoryNotEmpty=|/run/confexts
|
|||||||
ConditionDirectoryNotEmpty=|/var/lib/confexts
|
ConditionDirectoryNotEmpty=|/var/lib/confexts
|
||||||
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
|
ConditionDirectoryNotEmpty=|/usr/local/lib/confexts
|
||||||
ConditionDirectoryNotEmpty=|/usr/lib/confexts
|
ConditionDirectoryNotEmpty=|/usr/lib/confexts
|
||||||
ConditionDirectoryNotEmpty=|/.extra/confext
|
ConditionPathExists=!/etc/initrd-release
|
||||||
|
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
After=local-fs.target
|
After=local-fs.target
|
||||||
Before=sysinit.target systemd-tmpfiles-setup.service
|
Before=sysinit.target systemd-tmpfiles-setup.service
|
||||||
Conflicts=shutdown.target initrd-switch-root.target
|
Conflicts=shutdown.target
|
||||||
Before=shutdown.target initrd-switch-root.target
|
Before=shutdown.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
|||||||
Reference in New Issue
Block a user