Open RalfJung opened 6 years ago
Thinkpad X1 gen 5 carbon here.
I have fwupd 1.1.2-1
binary package from arch repo, and I've installed efivar-git 36.39.g3e687d8-1
from AUR. When updating the bios from 1.34 to 1.35 the bios logo image was reset to the default red lenovo, all boot entries were removed and secure boot was disabled too (afaik my own keys were all removed).
Do I need to recompile fwupd against the new efivar?
is the issue with the fwupd linux daemon or with the fwupdx64.efi program?
For me this looks more like an issue with this firmwares from Lenovo than with fwupd… But that’s just my opinion.
I'm not so sure, the efi executable does touch uefi variables and seems to try setting up the boot image too (bgrt).
I had the same problem with a T470s and the update to BIOS version 1.30. Had to recreate the GRUB entry after reboot. I don't have a dual boot system (no Windows).
client version: 1.1.3 compile-time dependency versions appstream-glib: 0.7.13 gusb: 0.3.0 efivar: 35 daemon version: 1.1.3
I've experienced this too with my Thinkpad P50, both using the Lenovo-provided BIOS update ISO and with fwupd. I don't think it's fwupd's fault.
The best thing I've found to do, since the BIOS is stupid and doesn't provide a UEFI shell or a way to add a boot variable is to copy your grub efi binary to EFI/boot/bootx64.efi
on the EFI partition which will boot when you ask the BIOS to boot that disk -- that's the default path it looks for.
That way when the BIOS update kills your grub entry, you'll still get grub.
Also seen this happening on a P53s.
Each time I update Lenovo firmware, it boots on Windows at next startup.
Here is a solution to bring back grub :
In windows, open "cmd" with elevated rights and run bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
(https://doc.ubuntu-fr.org/uefi#lenovo)
However, I would like to upgrade firmware without having to run a command manually each time
It happens as well to me on thinkpad x1 Carbon and Ubuntu 18.04.
Is there a technical reason for this ? What should be the standard behavior ? What I had to do was also to move “Linux firmware updater” manually as the first item to make it works and then grub gone.
It happened on a T590 and Ubuntu 20.04.1LTS.
Hi @houdini68 - do you happen to know what version of firmware you were updating from and to? And just to confirm you running a dual boot system? I hadn't sen this thread before and we do test the firmware updates but I don't think we've tested in a dual-boot environment - have to see if we can reproduce the issue. Thanks Mark
I had this today with my ThinkCentre M920 Tower. It's really quite terrible since there seems to be no way in the firmware user interface to point to a new UEFI boot stub.
I have this same issue on a Lenovo X1 Carbon 6th gen. Happened several times, got used at reinstalling grub every time I update, but still very annoying...
Below is the result.
@kmauleon You mean that by adding GRUB_STYLE_MENU=menu
to our /etc/default/grub
will fix the issue? Why does this happen?
hi @guillemglez ... this is not actually a fix. Dev BIOS Team needed to set these parameters in order to confirm if GRUB menu will disappear after BIOS update since initially his environment is not displaying GRUB at POST. Thus, procedure 2.
Hi for those that will get across this issue... Same for me with lenovo legion..
solution
enter bios at startup
1 in boot menu check boot sequence (should not be changed but make sure 1# is the right harddrive) 2 change EFI sequence to have Ubuntu/Linux or whatever has grub 3 save and reboot
4 if starting Linux distro you get black screen ( it appends to me) enter uefi bios again and restore factory default. In boot menu, boot sequence has changed with legacy
5 reboot 6 have a nice day
Each time I update Lenovo firmware, it boots on Windows at next startup. Here is a solution to bring back grub : In windows, open "cmd" with elevated rights and run
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
(https://doc.ubuntu-fr.org/uefi#lenovo)However, I would like to upgrade firmware without having to run a command manually each time
Maybe worth mentioning that it was a slightly different command for me (Thinkpad P52, secure boot enabled):
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
Could someone tell me in concrete steps what I need to do to "get grub back"? I do not have windows installed, so for me it just boots into an error screen. I do have a live USB stick available. I followed guides to reinstall grub like here: http://subinsb.com/how-to-repairrestorereinstall-grub-2-using-a-ubuntu-live-cd/ but it doesn't seem to solve the problem. I don't know what some abstract step like "change EFI sequence to have Ubuntu/Linux or whatever has grub" means. I don't know how to change the EFI sequence. In the UEFI startup screen I don't see an option to do that.
Turns out, that one newer systems there's one more directory that needs to be bind-mounted, see this answer here: https://unix.stackexchange.com/a/418913
All the bind-mounted directories can be mounted like so:
for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -B $i /mnt$i; done
Apart from that, follow any guide like http://subinsb.com/how-to-repairrestorereinstall-grub-2-using-a-ubuntu-live-cd/ and it'll hopefully work.
I just installed a UEFI update on my Lenovo ThinkPad P50. I have a dual-boot system. Usually, the firmware loads grub which then offers to boot Linux or Windows. The firmware update itself seems to have worked fine. However, after the firmware update, it instead Windows immediately instead of loading grub. Going into the firmware setup shows that grub entirely disappeared from the list of boot options. Lucky enough I had a boot stick handy that I could use to chroot into my system and setup grub again.
Note, the switch
--version
is only present since version 0.9.6. If you use an earlier version, please use the package manager to find out the package version. For example,dpkg -l fwupd
.Please answer the following questions:
from source
,pacman
,apt-get
, etc):apt install