From: Stoiko Ivanov <s.ivanov@proxmox.com>
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 [thread overview]
Message-ID: <20260227144336.3029652-1-s.ivanov@proxmox.com> (raw)
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 <d.herzig@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
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
reply other threads:[~2026-02-27 14:43 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260227144336.3029652-1-s.ivanov@proxmox.com \
--to=s.ivanov@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.