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 4D3691FF141 for ; Fri, 27 Feb 2026 15:43:31 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4AFB614658; Fri, 27 Feb 2026 15:44:29 +0100 (CET) From: Stoiko Ivanov To: pve-devel@lists.proxmox.com Subject: [PATCH kernel-helper v2] fix #7223: proxmox-boot: add memtest86 as entry to all boot-loaders Date: Fri, 27 Feb 2026 15:43:28 +0100 Message-ID: <20260227144336.3029652-1-s.ivanov@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1772203414631 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.071 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: LJSICBZK3G6HY7S37UYWRSVQCLXCBLWH X-Message-ID-Hash: LJSICBZK3G6HY7S37UYWRSVQCLXCBLWH X-MailFrom: s.ivanov@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: memtest86+ ships a config-snippet for grub configuration, and is thus present on installations using grub (although currently not functional when secure-boot is enabled), without proxmox-boot-tool. adding an equivalent entry for memtest86+ on systems, where proxmox-boot-tool manages the boot-loader seems like an improvement and a step to having similar functionality in our different boot-loader setups. Tested by installing proxmox-kernel-helper with this patch and running proxmox-boot-tool reinit, followed by rebooting into memtest86+ on a systemd-booted system. Additionally tested the addition of the entry in grub, by both installing on a system booted in legacy bios mode and one where I ran `proxmox-boot-tool init /dev/sdX2 grub` (after formatting). To get the entry in grub a `proxmox-boot-tool refresh` call is needed (so that `update-grub` generates the entries). As this will get called anyways upon installation from ISO, and on each kernel-upgrade I decided against calling it in `proxmox-boot-tool init|reinit` additionally. Suggested-by: Daniel Herzig Signed-off-by: Stoiko Ivanov --- this patch supersedes: https://lore.proxmox.com/all/20260225183621.201783-1-s.ivanov@proxmox.com/ v1->v2 * added a reference to #7223 - thanks @Laurentiu for the hint! * additionally add memtest to grub-booted systems - thanks @Daniel Herzig for the feedback and additional tests! src/bin/proxmox-boot-tool | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/bin/proxmox-boot-tool b/src/bin/proxmox-boot-tool index 95d699d..ee04193 100755 --- a/src/bin/proxmox-boot-tool +++ b/src/bin/proxmox-boot-tool @@ -158,7 +158,13 @@ init_bootloader() { fi fi + if [ -d /sys/firmware/efi ]; then + memtest=memtest86+x64.efi + if [ -f "/boot/$memtest" ]; then + echo "Adding $memtest .." + cp "/boot/$memtest" "$esp_mp/" + fi if [ -n "$mode" ] && [ "$mode" = "grub" ]; then echo "Installing grub x86_64 target.." grub-install.real \ @@ -196,8 +202,23 @@ init_bootloader() { echo "timeout 3" > "$esp_mp/$PMX_LOADER_CONF.tmp" echo "default proxmox-*" >> "$esp_mp/$PMX_LOADER_CONF.tmp" mv "$esp_mp/$PMX_LOADER_CONF.tmp" "$esp_mp/$PMX_LOADER_CONF" + memtest_conf="$esp_mp/loader/entries/$memtest.conf" + if [ -f "/boot/$memtest" ]; then + echo "Adding $memtest .." + cp "/boot/$memtest" "$esp_mp/EFI/" + cat > "$memtest_conf.tmp" <<- EOF + title Memory test ($memtest) + efi /EFI/$memtest + EOF + mv "$memtest_conf.tmp" "$memtest_conf" + fi fi else + memtest=memtest86+x64.bin + if [ -f "/boot/$memtest" ]; then + echo "Adding $memtest .." + cp "/boot/$memtest" "$esp_mp/" + fi echo "Installing grub i386-pc target.." grub-install.real \ --boot-directory "$esp_mp" \ -- 2.47.3