<div dir="ltr">Package: grub-common<br><div>Version: 2.04-5</div><div><br></div><div>When update-grub is run from the Debian bullseye/sid system, 30_os-prober<br>detects another OS (in this case Arch Linux) on a second drive. However,<br>that Arch Linux system uses early loading of microcode updates - see:<br><a href="https://wiki.archlinux.org/index.php/Microcode">https://wiki.archlinux.org/index.php/Microcode</a><br><br>The grub.cfg generated on the Arch Linux disk provides two arguments to<br>initrd:<br>initrd  /boot/intel-ucode.img /boot/initramfs-linux.img<br><br>The grub.cfg generated by the Debian system produces an initrd for the Arch <br>Linux boot selection that contains only:<br>initrd  /boot/intel-ucode.img<br><br>As one might expect, attempting to boot Arch Linux from the grub boot<br>menu selection generated by the Debian system results in:<br>Kernel panic - not syncing: VFS: unable to mount root fs on unknown block(0,0)<br><br>The fix would seem to be to make sure update-grub (or whatever it calls) reads<br>all arguments to initrd.</div><div><br></div><div>Manually editing grub.cfg on the Debian system adding the second argument to</div><div>initrd solves the problem and the second OS boots as expected.</div><div><br></div></div>