On Sat, 31 Jan 2026 at 09:12, Alexander V. Makartsev <[email protected]> wrote: > On 1/31/26 11:28, David wrote: > > On Thu, 29 Jan 2026 at 11:34, Alexander V. Makartsev <[email protected]> > > wrote:
> > > I imagine you could type at grub rescue prompt something like this: > > > grub> set pager=1 > > > grub> insmod normal > > > grub> insmod part_msdos > > > grub> insmod diskfilter > > > grub> insmod mdraid1x > > > grub> insmod ext2 > > > grub> ls > > > (proc) (hd0) (hd0,msdos1) (hd0,msdos2) (md/0) > > > grub> set prefix=(md/0)/boot/grub > > > grub> set root=(md/0) > > > grub> linux ($root)/boot/vmlinuz-6.12.63+deb13-amd64 root=/dev/md126 > > > grub> initrd ($root)/boot/initrd.img-6.12.63+deb13-amd64 > > > grub> boot > > It won't work because 'grub>' prompt is not the same as 'grub rescue>' > > prompt. grub-rescue will have appeared *because* grub cannot find any > > "third portion" (including modules normal, part_msdos, diskfilter, > > mdraid1x, ext2, and others) so trying to 'insmod' them will fail, as > > David Wright explained: > You don't know what you are talking about. This is not the "chicken-egg > problem". > "insmod" commands will work in 'grub>' AND 'grub rescue>' and essential > modules are provided by grub's core image. > "insmod normal" will fail and return "error: disk 'mduuid/...' not > found.", this was expected, because grub needs prefix to be available to > load it. Hi Alexander, No, I do "know what I am talking about" on this point, and you are mistaken on this point. Your error is perhaps to assume that what you see on your system is true for every installation. What you might be overlooking in this case is that 'grub-install' is designed to create a minimal size core image according to what it detects to be necessary to boot the system. So if 'grub-install' is not aware of any RAID on the system, such as when the boot files are not currently on an active RAID system, then it will omit the grub RAID modules when creating and installing the core image. I will demonstrate for you. I have a system here with MBR boot and no RAID. To enter grub-rescue, I cause a deliberate error by renaming my /boot/grub directory to /boot/grubx, and reboot. Because that change has now caused the prefix installed into grub core image to be wrong, I get the grub-rescue prompt. Below is a transcript of the grub-rescue session (I retyped it manually). > However, all essential modules, like "part_msdos, diskfilter, mdraid1x, > ext2" are available without prefix and in fact preloaded at boot time. Line 5 and line 7 of transcript below show you that the diskfilter and mdraid1x modules are not available in this grub-rescue environment, which proves that your above statement is incorrect. That is the point that I wanted to show you, in TRANSCRIPT PART 1. [...] > The problem OP having is something else, as I've written before, but he > seems refusing to cooperate and provide more information, or is too busy > to work on it. > He seems to ignore the other possibilities that could interfere with > booting process, like old BIOS and too modern 3TB disk, MBR partitioned > 3TB disk, Advanced Format disk, etc. These other points that you have made are all valuable. I agree that it is possible that Doc's 3TB drive might be too big for his BIOS or MBR to work with. My transcript below is longer, because it has a second purpose, continuing in TRANSCRIPT PART 2. There, I temporarily forgot that on this system /boot is a symlink, so I made a mistake when I first tried 'set prefix', I should have omitted /boot. However I think it is useful to provide the whole transcript of how I recovered from this error as an example for anyone of how to discover the correct value to use for 'prefix' to get the system to boot. Note that in this case, the process is to use the grub-rescue environment to search until I find the 'grubx' directory, which contains the i386-pc directory, which is where I know the grub modules can be found in a filesystem. Also my 'reboot' command was a mistake, but I left it in to show that it is unavailable at that moment, and that the 'normal' command is the way to continue the boot using the specified 'prefix' and 'root'. #===================================================================== ## grub-rescue TRANSCRIPT PART 1 ## error: file `/grub/i386-pc/normal.mod' not found. Entering rescue mode... grub rescue> insmod part_msdos grub rescue> insmod diskfilter error: file `/grub/i386-pc/diskfilter.mod' not found. grub rescue> insmod mdraid1x error: file `/grub/i386-pc/mdraid1x.mod' not found. grub rescue> insmod ext2 grub rescue> insmod normal error: file `/grub/i386-pc/normal.mod' not found. #===================================================================== ## grub-rescue TRANSCRIPT PART 2 ## grub rescue> echo $prefix grub rescue> Unknown command `echo'. grub rescue> set prefix=(hd0,msdos2)/boot/grubx grub rescue> ls $prefix error: file `/boot/grubx' not found. grub rescue> ls $prefix/ error: file `/boot/grubx/' not found./ grub rescue> ls (hd0) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) grub rescue> ls (hd0)/ error: unknown filesystem. grub rescue> ls (hd0,msdos7)/ error: unknown filesystem. grub rescue> ls (hd0,msdos6)/ error: unknown filesystem. grub rescue> ls (hd0,msdos5)/ error: unknown filesystem. grub rescue> ls (hd0,msdos3)/ ./ ../ lost+found/ etc/ media/ vmlinux.old var/ bin usr/ sbin lib lib64 libx32 boot dev/ home/ proc root/ run/ sys/ tmp/ mnt/ srv/ opt/ vmlinuz initrd.img grub rescue> ls (hd0,msdos2)/ ./ ../ lost+found memtest/ A/ X/ B/ rescue/ netinst_d12/ grubx/ grub rescue> ls (hd0,msdos1)/ error: unknown filesystem. grub rescue> ls (hd0,msdos2)/grubx/ ./ ../ grub.cfg fonts/ grubenv locale/ i386-pc/ unicode.pf2 [more elided] grub rescue> set prefix=(hd0,msdos2)/grubx grub rescue> set root=hd0,msdos2 grub rescue> ls $prefix ./ ../ grub.cfg fonts/ grubenv locale/ i386-pc/ unicode.pf2 [more elided] grub rescue> insmod normal grub rescue> reboot Unknown command `reboot'. grub rescue> normal (system boots) IMPORTANT: Remember to rename /boot/grubx back to /boot/grub as it should be. #=====================================================================

