From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id F10F91FF15C for ; Fri, 8 Aug 2025 19:09:07 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 205D51DA90; Fri, 8 Aug 2025 19:10:41 +0200 (CEST) From: Stoiko Ivanov To: pbs-devel@lists.proxmox.com Date: Fri, 8 Aug 2025 19:10:31 +0200 Message-Id: <20250808171031.1813115-1-s.ivanov@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1754673011906 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.064 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [pbs3to4.rs, proxmox.com] Subject: [pbs-devel] [PATCH proxmox-backup] bin: pbs3to4: adapt boot-loader checks to trixie X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" taken from the changes in pve8to9 (65ffcdd0c41e2bed95b34349a1f43757186f2a5f) Signed-off-by: Stoiko Ivanov --- src/bin/pbs3to4.rs | 70 +++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/src/bin/pbs3to4.rs b/src/bin/pbs3to4.rs index 67640b48..f78e28df 100644 --- a/src/bin/pbs3to4.rs +++ b/src/bin/pbs3to4.rs @@ -207,39 +207,71 @@ impl Checker { .log_info("Checking bootloader configuration...")?; if !Path::new("/sys/firmware/efi").is_dir() { + if !Path::new("/usr/share/doc/systemd-boot/changelog.Debian.gz").is_file() { + self.output.log_info( + "systemd-boot package installed on legacy-boot system is not \ + necessary, consider removing it", + )?; + return Ok(()); + } self.output - .log_skip("System booted in legacy-mode - no need for systemd-boot")?; + .log_skip("System booted in legacy-mode - no need for additional pacckages.")?; return Ok(()); } + let mut boot_ok = true; if Path::new("/etc/kernel/proxmox-boot-uuids").is_file() { // PBS packages version check needs to be run before if !self.upgraded { self.output - .log_skip("not yet upgraded, no need to check the presence of systemd-boot")?; + .log_skip("not yet upgraded, systemd-boot still needed for bootctl")?; return Ok(()); } if Path::new("/usr/share/doc/systemd-boot/changelog.Debian.gz").is_file() { - self.output - .log_pass("bootloader packages installed correctly")?; + self.output.log_fail( "systemd-boot meta-package installed. This will cause issues on upgrades of \ + boot-related packages. Install 'systemd-boot-efi' and 'systemd-boot-tools' explicitly \ + and remove 'systemd-boot'")?; return Ok(()); } - self.output.log_warn( - "proxmox-boot-tool is used for bootloader configuration in uefi mode \ - but the separate systemd-boot package, is not installed.\n\ - initializing new ESPs will not work until the package is installed.", - )?; - return Ok(()); - } else if !Path::new("/usr/share/doc/grub-efi-amd64/changelog.Debian.gz").is_file() { - self.output.log_warn( - "System booted in uefi mode but grub-efi-amd64 meta-package not installed, \ - new grub versions will not be installed to /boot/efi! - Install grub-efi-amd64.", - )?; - return Ok(()); } else { - self.output - .log_pass("bootloader packages installed correctly")?; + if Path::new("/usr/share/doc/systemd-boot/changelog.Debian.gz").is_file() { + self.output.log_fail( "systemd-boot meta-package installed. This will cause problems on upgrades of other \ + boot-related packages. Remove 'systemd-boot' See \ + https://pbs.proxmox.com/wiki/Upgrade_from_3_to_4#sd-boot-warning for more information." + )?; + boot_ok = false; + } + if !Path::new("/usr/share/doc/grub-efi-amd64/changelog.Debian.gz").is_file() { + self.output.log_warn( + "System booted in uefi mode but grub-efi-amd64 meta-package not installed, \ + new grub versions will not be installed to /boot/efi! + Install grub-efi-amd64.", + )?; + boot_ok = false; + } + if Path::new("/boot/efi/EFI/BOOT/BOOTX64.efi").is_file() { + let output = std::process::Command::new("debconf-show") + .arg("--db") + .arg("configdb") + .arg("grub-efi-amd64") + .arg("grub-pc") + .output() + .map_err(|err| format_err!("failed to retrieve debconf settings - {err}"))?; + let re = Regex::new(r"grub2/force_efi_extra_removable: +true(?:\n|$)") + .expect("failed to compile dbconfig regex"); + if !re.is_match(std::str::from_utf8(&output.stdout)?) { + self.output.log_warn(format!( + "Removable bootloader found at '/boot/efi/EFI/BOOT/BOOTX64.efi', but GRUB packages \ + not set up to update it!\nRun the following command:\n \ + echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u\n\ + Then reinstall GRUB with 'apt install --reinstall grub-efi-amd64'"))?; + boot_ok = false; + } + } + if boot_ok { + self.output + .log_pass("bootloader packages installed correctly")?; + } } Ok(()) -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel