I have a dual-boot setup with two separate SSDs:
Debian 13 is installed on an NVMe drive (nvme0n1)
Debian 12 is installed on a SATA SSD (sda / sdb, depending on which system is booted)
Each Debian installation has its own EFI partition.
lsblk outputs On Debian 12:
sda 8:0 0 223.6G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 222.1G 0 part / └─sda3 8:3 0 976M 0 part [SWAP] nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 356.9G 0 part /media/ismail/SSDWorking ├─nvme0n1p2 259:2 0 976M 0 part ├─nvme0n1p3 259:3 0 112.9G 0 part └─nvme0n1p4 259:4 0 6.2G 0 part lsblk outputs On Debian 13:
nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 356.9G 0 part /media/ismail/SSDWorking ├─nvme0n1p2 259:2 0 976M 0 part /boot/efi ├─nvme0n1p3 259:3 0 112.9G 0 part / └─nvme0n1p4 259:4 0 6.2G 0 part [SWAP] sdb 8:16 0 223.6G 0 disk ├─sdb1 8:17 0 512M 0 part ├─sdb2 8:18 0 222.1G 0 part └─sdb3 8:19 0 976M 0 part The Problem
After installing Debian 12, GRUB automatically detected Debian 13. However, I noticed a repeating issue:
Booting Debian 12 works fine.
The first attempt to boot Debian 13 after that fails with:
error: file /boot/vmlinuz-linux not found...Press any key to continue ...If I try again (select Debian 13 again from GRUB), it boots normally.
This repeats every time: after logging into Debian 12, the next boot of Debian 13 fails once, then works on retry.
Notes
On Debian 13, the NVMe is /dev/nvme0n1 and the SATA SSD (Debian 12) is /dev/sdb.
On Debian 12, the NVMe is still /dev/nvme0n1, but the SATA SSD (Debian 12) is /dev/sda.
So, the drive name of Debian 12’s disk changes between systems (/dev/sda ↔ /dev/sdb).
Both systems have their own EFI partitions and GRUB installations.
Question
Why does Debian 13 fail to find /boot/vmlinuz-linux the first time after booting Debian 12?
Is GRUB confusing device names (sda vs sdb) between the two installations?
What’s the proper way to fix this — reinstall GRUB on Debian 13, regenerate its entries using UUIDs, or set one as the primary bootloader?