diff --git a/lact-daemon/src/server/system.rs b/lact-daemon/src/server/system.rs index c1f2e95..0ea4bfd 100644 --- a/lact-daemon/src/server/system.rs +++ b/lact-daemon/src/server/system.rs @@ -88,6 +88,7 @@ fn regenerate_initramfs() -> anyhow::Result { let result = match initramfs_type { InitramfsType::Debian => run_command("update-initramfs", &["-u"]), InitramfsType::Mkinitcpio => run_command("mkinitcpio", &["-P"]), + InitramfsType::Dracut => run_command("dracut", &["--regenerate-all", "--force"]), }; result.map(|()| initramfs_type) } @@ -111,6 +112,13 @@ fn detect_initramfs_type(os_release: &OsRelease) -> Option { ); None } + } else if os_release.id == "fedora" { + if Command::new("dracut").arg("--version").output().is_ok() { + Some(InitramfsType::Dracut) + } else { + warn!("Fedora without dracut detected, refusing to regenerate initramfs"); + None + } } else { None } diff --git a/lact-schema/src/lib.rs b/lact-schema/src/lib.rs index 3fe0500..a2d1344 100644 --- a/lact-schema/src/lib.rs +++ b/lact-schema/src/lib.rs @@ -261,6 +261,7 @@ pub struct PowerState { pub enum InitramfsType { Debian, Mkinitcpio, + Dracut, } #[skip_serializing_none]