Re: Bad Behavior by GRUB
Hi,
thanks for the files.
First I need to more files:
>From Slint type: find /boot/efi > efislint
>From Debian type: find /boot/efi > efidebian
(I mistakenly wrote find instead of find in my previous message)
Then you wrote:
> There is NO EFI partition on the USB File Stick that I was using to install
> Debian, it is just an iso copied to the USB stick - it's a Debian installation
> with firmware that I put on the USB stick with the command cp debian.iso /dev/sdc.
Actually there is an USB partition on the USB stick, the magic being done by
xorriso from Thomas Schmitt when writing the ISO in case of Slint.
Example below:
# cp debian-11.2.0-amd64-netinst.iso /dev/sdd
# lsblk -lo name,size,fstype|grep sdd
sdd 7,4G iso9660
sdd1 378M iso9660
sdd2 2,5M vfat
# mount /dev/sdd2 /mnt
# find /mnt
/mnt
/mnt/efi
/mnt/efi/boot
/mnt/efi/boot/bootx64.efi
/mnt/efi/boot/grubx64.efi
/mnt/efi/debian
/mnt/efi/debian/grub.cfg
As an aside there is no /efi/boot/grub.cfg but only /efi/debian/grub.cfg so I
fail to understand what told your firmware to look for \EFI\BOOT\grub.cfg
(wich is equivalent to /efi/boot/grub.cfg)
Maybe the additional files that I requested will tell us?
Cheers,
Didier
Le 11/01/2022 à 08:36, D.J.J. Ring, Jr. a écrit :
> Didier,
>
> I didn't know if you wanted me to reply also to the list, which I will do, but
> I'm sending this to you only until you tell me otherwise.
>
> Yes I confused GRUB menu with the firmware, from what I understand it is GRUB
> that is changing the UEFI settings in my firmware BIOS SETUP to boot to the last
> operating system, even before my USB stick if I wanted to boot from one - say to
> put a new distro on my computer. I cannot interrupt the boot into the last
> operating system which is at the top of the BIOS settings. I will grab my
> camera and take a picture!
>
>
> Here are the files you asked for.
>
>>From Slint, type as root: efibootmgr > efivars and send me the file efivars
>>From Slint, send me the file /boot/grub/grub.cfg renamed grubslint
>>From Slint, type: file /boot/efi > efislint and send me the file efislint
>>From Debian, send me the file /boot/grub/grub.cfg renamed grubdebian
>>From Debian type: file /boot/efi > efidebain ans send me the file efidebian
>>From Slint, identify the EFI partition of the repair bot stick; mount it on /mnt
> and type: find /mnt > stick and send me the file stick.
>
> There is NO EFI partition on the USB File Stick that I was using to install
> Debian, it is just an iso copied to the USB stick - it's a Debian installation
> with firmware that I put on the USB stick with the command cp debian.iso /dev/sdc.
>
> So I used a file stick from the multi-boot utility SARDU and I'm sending you the
> results of "find /mnt/efi > stick". I can use some of the programs on that to
> repair grub and so forth.
>
> If you want me to send this to the debian-accessibility list, I will do so.
>
> Thanks again for your help, but I still am not sure you are understanding me,
> but time will tell.
>
> BRGDS,
> David
>
>
> On Mon, Jan 10, 2022 at 5:53 PM Didier Spaier <didier@slint.fr
> <mailto:didier@int.fr>> wrote:
>
> Hi,
>
> Le 10/01/2022 à 21:15, D.J.J. Ring, Jr. a écrit :
> > GRUB now puts a "Preferred Boot" at the top of GRUB's choices so that it goes
> > directly to the last successfully used operating system.
>
> I think you are confusing the GRUB menu with the menu of the firmware.
>
> > But here's the PROBLEM.
> >
> > As soon as my computer boots into one of the operating systems, either Slint,
> > Debian, or Windows 10, GRUB adds an entry to the very top of my computer's
> BIOS
> > SETUP changing the boot device boot order, which previously was USB HD,
> then my
> > hard drive, and inserts whatever operating system it last booted into,
> modifying
> > the previous BIOS boot settings.
>
> As I wrote in the Slint mailing list this is the expected behavior unless when
> installing grub you used the --no nvram option, which prevents GRUB to write a
> boot entry in the firmware's menu.
>
> > Now on the next boot, my computer which previously booted from USB stick, now
> > will boot directly into the last operating system that I used and it's
> > impossible to enter BIOS Setup at all by pressing the setup key (usually F2).
>
> If you can't enter the firmware setup in this context your firmware is buggy,
> this has nothing to do with GRUB.
>
> > What I have to do is to use the GRUB entry in Debian or Slint to go to the
> last
> > entry which is "UEFI Firmware Settings" and this will cause my computer to
> > reboot into the UEFI Firmware Settings - the same settings that I mentioned
> > earier, that is accessed by a key press immediately when the BIOS name flashes
> > on the screen - which now is inaccessible for even the sighted because the
> > computer just directly goes to the last operating system that was used.
> > Without this entry in GRUB the only ways to go back to a BIOS SETUP that
> allows
> > me to boot to USB stick is to either boot into Windows and search for Advanced
> > Boot Settings, then UEFI Firmware settings, and reboot - which will do the
> exact
> > same thing as the bottom GRUB menu entry in Debian or Slint> Or I can take
> my computer apart and find the RESET button and press it and it
> > will reset my firmware to the original where I again have access to Boot
> device
> > choice - in my case by pressing F2.
> >
> > But whenever I boot into any operating system, I again lose the ability to
> boot
> > into a USB stick because GRUB places an entry at the top of my BIOS UEFI
> settings!
>
> Again, rather because your firmware is buggy:
> 1. That GRUB places an entry at the top of my BIOS UEFI (aka firmware) settings
> is perfectly normal. But you can prevent it if you want, see at the end of this
> message.
> 2. That this prevent you to access your firmware settings is not normal at all,
> but you should blame his faulty behavior to your firmware, not to GRUB.
>
> > Certainly this action by GRUB should be disabled in an accessible version of
> > Linux, or disabled altogether!
>
> Not at all. If you install an OS, you most of the time expect it to start at
> next boot.
>
> But if you do not want wall, you can avoid it several ways: include a custom
> boot entry in GRUB's menu or edit directly the firmware boot menu from a running
> OS. The second solution is easier, so I will describe it.
>
> As I wrote in the Slint list you can use the efibootmgr application shipped in
> Slint and alos available in Debian for several purposes, among which
> a) Change the order of the boot entries permanently.
> b) Tell the firmware to boot a specific boot entry at next boot.
>
> However in the Slint mailing list you wrote (my comments after the quotes)
>
> > Jim has to run efibootmgr as root then find the USB HD on the list, which on
> > your list is Boot000C* USB HDD, so he substitutes the last four number after
> > Boot in the list for the USB HD and then he can boot directly into the USB
> stick.
> >
> > Mine was Boot0013* USB HDD:
> >
> > So I ran as root:
> >
> > efibootmgr -n 0013
> >
> > And then when I run as root: reboot, I should boot directly to the USB stick.
> >
> > I tried, and it didn't go well at all.
> >
> > Booting brought me to EFI shell and it said:
> >
> > Failed to open \EFI\BOOT\grub.cfg
> >
> > Not found.
>
> We do not know what is in your repair USB stick, thus cannot draw a conclusion.
>
> It is possible that you typed a wrong number, or that you has several USB
> devices plugged in and you landed in another one, or that there be an issue with
> the content of the USB stick's EFI partition, or that this be the consequence of
> a bug in the firmware.
>
> > If I type exit at the EFI shell, I eventually get to a firmware boot menu
> and I
> > use that menu to boot from a USB device which was listed containing my boot
> > repair USB stick.
> >
> > The boot repair USB sticks, which allowed me to update, repair and reinstall
> > GRUB on /dev/sda but now not with as good a result as before, because now if I
> > boot from the hard drive (I have /sda and /sdb) I get the same errors.
>
> Again this can be an issue with your firmware
>
> > So I have to insert my boot repair USB stick which has a menu utility and
> I can
> > boot to Slint, Debian or Windows from there.
> >
> > But now I have to always use the boot repair stick. I cannot boot from my hard
> > drive directly.
>
> Again, probably a firmware bug.
>
> 2) You can
>
> Now to investigate we need several information, so please do what follows. Yiu
> will need to be root or use sudo.
>
> >From Slint, type as root: efibootmgr > efivars and send me the file efivars
> >From Slint, send me the file /boot/grub/grub.cfg renamed grubslint
> >From Debian, send me the file /boot/grub/grub.cfg renamed grubdebian
> >From Slint, type: file /boot/efi > efislint and send me the file efislint
> >From Debian type: file /boot/efi > efidebain ans send me the file efidebian
> >From Slint, identify the EFI partition of the repair bot stick; mount it on
> /mnt
> and type: find /mnt > stick and send me the file stick.
>
> Cheers,
> Didier
>
Reply to: