You are not logged in.
Hi,
I know that this is a common topic. But google gives me too generic answers while this forum search ends up with 504 gateway timeout error today.
So I decided to created new topic as I'm not very familiar with UEFI and GRUB.
I have Acer Swift laptop. It had dual boot Arch and Windows 10 with UEFI. First GRUB was loaded and then it had a menu entries to load Arch or Windows boot loader.
It worked fine until recent Win10 upgrade to 20H2. This upgrade rebooted the system, grub disappeared and it failed to boot into Windows either.
I booted in to UEFI shell and was able to start Win10 with help of
fs0:\EFI\Boot\bootx64.efiAfter it Win10 completed the upgrade and looks fine.
Now I have 2 options in BIOS boot menu:
- Windows Boot Loader
- UEFI shell
(not sure was there 3rd entry before for GRUB)
Windows Boot Loader boots me in Windows fine now, after upgrade completion. But I can't boot GRUB via UEFI.
I tried to load GRUB and got an error:
Shell> fs0:\EFI\GRUB\grubx64.efi
`fs0:\EFI\GRUB\grubx64.efi` is not recognized as an internal or external command, operable program, or batch fileBut I see it is listed with
Shell> ls fs0:\EFI\GRUB\My startup.nsh also has only one line - `fs0:\EFI\GRUB\grubx64.efi` - so I assume this is the one that worked well before.
I don't fully undersdand why `fs0:\EFI\GRUB\grubx64.efi` is not recognized as it was working fine before Win10 upgrade. Probably someone already faced something similar and may give good advice for me.
Last edited by FuzzySPb (2021-05-19 10:08:39)
Offline
How much space do you have on the ESP? The only time I've seen a Windows update having an active detriment on the ESP is due to either space constraints or overriding the fallback loader in EFI/BOOT/bootx64.efi if said binary was overriden by something else.
How did you originally install GRUB? FWIW Acers are notorious for a weird UEFI quirk where you have to enable secure boot, add a "trusted EFI application", then disable secure boot, to actually create new standalone entries. If you've installed GRUB by overriding the above fallback path, you can just copy over that GRUB binary again.
Offline
V1del, Great! Thanks to pointing to Secure Boot.
I noticed that I have it enabled somehow (not sure that it was enabled before, probably windows did this change....). Anyway, I added grubx64.efi to trusted list and now it boots and shows GRUB menu to me (I'll try, probably I need to disable it at all)
But.... Linux boot is failed as it can't mount partition by UUID. It is a bit strange that UUID isn't found.. so, my strong suspect is that windows corrupted GRUB boot partition... Anyway, now it is at least clear why grubx64.efi didn't start (i.e. due to Secure Boot). So now it seems I need some bootable media to understand what Windows did with my hard drive....
P.S. In installed system 1,5 year ago, so I don't rememter exactly how I set GRUB... need to check it.
With regards to space - need to boot some linux to check it. Windows doesn't show me all partitions.
Last edited by FuzzySPb (2021-05-19 07:33:22)
Offline
Ok, so both ways works:
1) to disable Secure Boot in BIOS
or
2) to add grubx64.efi to trusted files.
GRUB starts after it. If I choose Windows Bootloader - everything is fine. If I try to boot Linux I have:
:: running early hook [udev]
Starting version 248.2-2-arch
:: running hoos [udev]
:: Triggering events...
Waiting 10 seconds for device /dev/disk/by-uuid/3afe0d83-05c4-4142-a00c-7c18b193c6fc ...
ERROR: device 'UUID=3afe0d83-05c4-4142-a00c-7c18b193c6fc' not found. Skipping fsck.
:: mounting 'UUID=3afe0d83-05c4-4142-a00c-7c18b193c6fc' on real root
mount: /new_root: can't find UUID=3afe0d83-05c4-4142-a00c-7c18b193c6fc.
You are now being dropped into an emergency shellI think I need to check a list of my partitions and their UUIDs. I assume I can do it with 'blkid' but before I need to mount it, right?
Any advice how I may do it from emergency shell? or better to boot from USB into linux?
Offline
Ok, I managed to fix my problem.
I booted from USB with Arch and found that my hard drive isn't visible. That looked indeed strange for me as I just have booted from it.
So, I got a hint to look into BIOS once more and I found that mode of HDD isn't AHCI but Optane. I changed it to AHCI and booted from USB stick with Arch successfully.
Then looking at 'blkid' output I found that indeed harddrive with UUID '3afe0d83-05c4-4142-a00c-7c18b193c6fc' is present in my system.
I tried to reboot once again without USB stick - and voila, Linux was booted successfully.
So... I don't know who and why Windows did it but it appears it played a lot with my BIOS settings. I was able to boot both Linux and Windows without any config changes.
But it appears I'll need to review my BIOS settings once again for any other changes.... Strange indeed but I'm sure that it's a consequence of Windows update.
P.S. May anyone advice me how to add [SOLVED] into topic title?
Offline
Windows doesn't play with UEFI settings, did you do a UEFI/firmware update at the same time? possibly with some Acer tool installed on Windows? That would explain this.
To mark as [SOLVED] edit the title in your first post.
Offline
Windows doesn't play with UEFI settings, did you do a UEFI/firmware update at the same time? possibly with some Acer tool installed on Windows? That would explain this.
No, I'm sure I didn't performe UEFI/firmware update at the same time. And I have no Acer tools installed in Windows (I have only a few apps installed in Windows).
When Windows failed to boot, I saw it wrote something like "Trying to repare boot problems of your system...", then it rebooted again and again failed. After it menu appeared where was an option like "UEFI/boot recovery" (don't remember exact text) - probably I did a stupid thing and tried it... What I may suspect - one of these actions (automatic or manual) may led to this result. But anywhay - it's not only one parameter that was changed...
Offline
UEFI recovery will have restored the entire EFI state to stock settings.
Offline