Setup:
Symptom:
After a routine kernel update + reboot, system drops straight to grub> rescue prompt. No boot menu shown.
What I've tried/ruled out:
Current working theory: Since pve/root now spans two physical disks (sda3 + nvme0n1p1) and even a bare ls (lvm) fails before resolving any specific LV, I suspect GRUB's LVM module has trouble with a logical volume whose extents span multiple PVs — separate from the documented ring-buffer bug. Haven't found this specific scenario documented anywhere yet.
Question: Has anyone hit this specific multi-PV-spanning-LV GRUB failure? Is the only real fix to shrink pve/root back onto a single PV and move /boot (or the whole root) off LVM entirely, or is there a known workaround?
System boots fine from the rescue ISO chroot, so no data at risk currently — just can't boot unattended.
- Proxmox VE, boot disk originally a 128GB drive (/dev/sda, GPT: sda1 BIOS boot, sda2 ESP, sda3 LVM member)
- pve VG originally lived entirely on sda3
- Recently extended pve VG by adding /dev/nvme0n1p1 (a separate ~128GB NVMe) as a second PV, then lvextend -l +100%FREE /dev/pve/root + resize2fs — completed successfully, system ran fine for weeks afterward
- Also present: a second, unrelated VG pveold (renamed from pve-old during troubleshooting) on a separate ~930GB NVMe, containing 17 thin-provisioned LVs (unrelated VM/CT disks)
- Legacy BIOS boot (i386-pc), GRUB 2.12-9+pmx2
Symptom:
After a routine kernel update + reboot, system drops straight to grub> rescue prompt. No boot menu shown.
What I've tried/ruled out:
- insmod lvm; insmod ext2; ls (lvm/pve-root)/boot/grub → error: no server is specified.
- Even bare ls (lvm) (before specifying any VG/LV) fails with the same error — happens before GRUB even resolves a specific volume.
- Booted Proxmox VE 9.2 ISO Rescue Boot / debug shell, confirmed via lvm vgs/lvm lvs that pve/root and pve/swap are intact and activate fine under the kernel's own LVM (-wi-a-----), i.e. this is GRUB-specific, not actual LVM corruption.
- Chrooted in, ran update-initramfs -u -k all and update-grub cleanly (no errors), then grub-install /dev/sda — "Installation finished. No error reported." Still boots to grub> after.
- Checked for the known LVM metadata ring-buffer wraparound bug (bugs.debian.org #987008) using vgscan -vvv 2>&1 | grep "Reading metadata" — all PVs show (+0), so no wraparound. Also tried the documented workaround (lvchange --addtag to force a metadata rewrite) — no change.
- Renamed pve-old → pveold in case the embedded hyphen in the VG name was tripping GRUB's LVM parser — no change.
- proxmox-boot-tool status confirms this system does not use the ESP-based boot scheme (/etc/kernel/proxmox-boot-uuids does not exist) — legacy grub-pc only, ESP sync is correctly skipped.
Current working theory: Since pve/root now spans two physical disks (sda3 + nvme0n1p1) and even a bare ls (lvm) fails before resolving any specific LV, I suspect GRUB's LVM module has trouble with a logical volume whose extents span multiple PVs — separate from the documented ring-buffer bug. Haven't found this specific scenario documented anywhere yet.
Question: Has anyone hit this specific multi-PV-spanning-LV GRUB failure? Is the only real fix to shrink pve/root back onto a single PV and move /boot (or the whole root) off LVM entirely, or is there a known workaround?
System boots fine from the rescue ISO chroot, so no data at risk currently — just can't boot unattended.