[[annotations]]
path = [
- "mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules",
- "mkosi/resources/mkosi-initrd/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules",
+ "mkosi/resources/mkosi-initrd/mkosi.profiles/storage/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-md.rules",
+ "mkosi/resources/mkosi-initrd/mkosi.profiles/storage/mkosi.extra/usr/lib/udev/rules.d/10-mkosi-initrd-dm.rules",
]
precedence = "aggregate"
SPDX-FileCopyrightText = "Mkosi Contributors"
*(["--package-cache-directory", os.fspath(config.package_cache_dir)] if config.package_cache_dir else []), # noqa: E501
*(["--local-mirror", str(config.local_mirror)] if config.local_mirror else []),
"--incremental", str(config.incremental),
+ *(f"--profile={profile}" for profile in config.initrd_profiles),
*(f"--package={package}" for package in config.initrd_packages),
*(f"--volatile-package={package}" for package in config.initrd_volatile_packages),
*(f"--package-directory={d}" for d in config.package_directories),
runtime = enum.auto()
+class InitrdProfile(StrEnum):
+ storage = enum.auto()
+
+
def expand_delayed_specifiers(specifiers: dict[str, str], text: str) -> str:
def replacer(match: re.Match[str]) -> str:
m = match.group("specifier")
unified_kernel_image_format: str
unified_kernel_image_profiles: list[UKIProfile]
initrds: list[Path]
+ initrd_profiles: list[InitrdProfile]
initrd_packages: list[str]
initrd_volatile_packages: list[str]
microcode_host: bool
default=False,
help="Only include the host CPU's microcode",
),
+ ConfigSetting(
+ dest="initrd_profiles",
+ long="--initrd-profile",
+ metavar="PROFILE",
+ section="Content",
+ parse=config_make_list_parser(delimiter=",", parse=make_enum_parser(InitrdProfile)),
+ choices=InitrdProfile.values(),
+ default=list(InitrdProfile),
+ help="Which profiles to enable for the default initrd",
+ ),
ConfigSetting(
dest="initrd_packages",
long="--initrd-package",
Unified Kernel Image Format: {config.unified_kernel_image_format}
Unified Kernel Image Profiles: {line_join_list(config.unified_kernel_image_profiles)}
Initrds: {line_join_list(config.initrds)}
+ Initrd Profiles: {line_join_list(config.initrd_profiles)}
Initrd Packages: {line_join_list(config.initrd_packages)}
Initrd Volatile Packages: {line_join_list(config.initrd_volatile_packages)}
Devicetree: {none_to_none(config.devicetree)}
list[UKIProfile]: uki_profile_transformer,
list[ArtifactOutput]: enum_list_transformer,
list[ToolsTreeProfile]: enum_list_transformer,
+ list[InitrdProfile]: enum_list_transformer,
CertificateSource: certificate_source_transformer,
ConsoleMode: enum_transformer,
Verity: enum_transformer,
"--remove-files=/usr/lib/firmware/*-ucode",
"--kernel-modules-exclude=.*",
"--build-sources", "",
+ "--profile=storage",
"--include=mkosi-initrd",
] # fmt: skip
VARIABLES**), if none are found there **mkosi** will automatically build a
default initrd.
+`InitrdProfiles=`, `--initrd-profile=`
+: Set the profiles to enable for the default initrd. Takes a
+ comma-delimited list of profiles. By default, all profiles are
+ enabled.
+
+ The `storage` profile enables support for advanced storage
+ mechanisms, which currently is limited to LVM.
+
`InitrdPackages=`, `--initrd-package=`
: Extra packages to install into the default initrd. Takes a comma
separated list of package specifications. This option may be used
bash # for emergency logins
less # this makes 'systemctl' much nicer to use ;)
p11-kit # dl-opened by systemd
- lvm2
RemoveFiles=
# we don't need this after the binary catalogs have been built
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Content]
+Packages=lvm2
Drive,
Firmware,
Incremental,
+ InitrdProfile,
KeySource,
KeySourceType,
ManifestFormat,
"InitrdPackages": [
"clevis"
],
+ "InitrdProfiles": [
+ "storage"
+ ],
"InitrdVolatilePackages": [
"abc"
],
image="main",
incremental=Incremental.no,
initrd_packages=["clevis"],
+ initrd_profiles=[InitrdProfile.storage],
initrd_volatile_packages=["abc"],
initrds=[Path("/efi/initrd1"), Path("/efi/initrd2")],
kernel_command_line_extra=["look", "im", "on", "the", "kernel", "command", "line"],