From 29e22b3b360cdf9e49147d7891b621ca6df04d97 Mon Sep 17 00:00:00 2001 From: Huijing Hei Date: Fri, 20 Jun 2025 18:58:25 +0800 Subject: [PATCH 1/2] efi: add `trim()` to remove trailing newline --- src/efi.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/efi.rs b/src/efi.rs index 820be68b..978fce80 100644 --- a/src/efi.rs +++ b/src/efi.rs @@ -617,7 +617,7 @@ pub(crate) fn create_efi_boot_entry( "--disk", device, "--part", - partition_number.as_str(), + partition_number.trim(), "--loader", loader.as_str(), "--label", From 88f576d24680b80c42cfbb9a7ffc74714ed47ace Mon Sep 17 00:00:00 2001 From: Huijing Hei Date: Fri, 20 Jun 2025 19:09:24 +0800 Subject: [PATCH 2/2] Add more log when invoking `efibootmgr` Fix https://github.com/coreos/bootupd/issues/907 --- src/efi.rs | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/efi.rs b/src/efi.rs index 978fce80..1adc3d63 100644 --- a/src/efi.rs +++ b/src/efi.rs @@ -579,10 +579,10 @@ pub(crate) fn clear_efi_target(target: &str) -> Result<()> { for entry in boot_entries { if entry.name.to_lowercase() == target { log::debug!("Deleting matched target {:?}", entry); - Command::new(EFIBOOTMGR) - .args(["-b", entry.id.as_str(), "-B"]) - .run() - .with_context(|| format!("Failed to invoke {EFIBOOTMGR}"))?; + let mut cmd = Command::new(EFIBOOTMGR); + cmd.args(["-b", entry.id.as_str(), "-B"]); + println!("Executing: {cmd:?}"); + cmd.run_with_cmd_context()?; } } @@ -611,23 +611,20 @@ pub(crate) fn create_efi_boot_entry( } let loader = format!("\\EFI\\{}\\{SHIM}", vendordir); log::debug!("Creating new EFI boot entry using '{target}'"); - let st = Command::new(EFIBOOTMGR) - .args([ - "--create", - "--disk", - device, - "--part", - partition_number.trim(), - "--loader", - loader.as_str(), - "--label", - target, - ]) - .status()?; - if !st.success() { - anyhow::bail!("Failed to invoke {EFIBOOTMGR}") - } - anyhow::Ok(()) + let mut cmd = Command::new(EFIBOOTMGR); + cmd.args([ + "--create", + "--disk", + device, + "--part", + partition_number.trim(), + "--loader", + loader.as_str(), + "--label", + target, + ]); + println!("Executing: {cmd:?}"); + cmd.run_with_cmd_context() } #[context("Find target file recursively")]