Lenovo offers two options for updating the UEFI firmware: using a Windows-only
program or booting from a CD. In this article, I'll show you how to make a
bootable flash drive from the firmware update CD image using geteltorito.
Head over to Lenovo's support site and put your model or serial number in to get access to the your laptop's downloads page. Scroll down to the BIOS/UEFI section and download the BIOS Update (Bootable CD) file. It'll be named something like "jbuj72wd.iso".
If you don't already have the geteltorito utility, it's a part of the
genisoimage package:
$ sudo apt install genisoimage
From the directory of the ISO file you downloaded, run geteltorito and
specify an output file with option -o.
$ geteltorito -o efi-update.img jbuj72wd.iso
Booting catalog starts at sector: 20
Manufacturer of CD: NERO BURNING ROM VER 12
Image architecture: x86
Boot media type is: harddisk
El Torito image starts at sector 27 and has 43008 sector(s) of 512 Bytes
Image has been written to file "efi-update.img".
Insert a flash drive that doesn't have anything important on it because any data on it will be overwritten! Identify the device path for the drive:
$ lsblk -do PATH,SIZE,MODEL
PATH SIZE MODEL
/dev/sda 465.8G ST500LM021-1KJ152
/dev/sdb 223.6G SB2
/dev/sdc 14.9G SanDisk_SSD_U110_16GB
/dev/sdd 3.7G STORE_N_GO
In my case, my flash drive is /dev/sdd. Use dd to write the image to the
flash drive. if is the input file, of is the output device.
$ sudo dd if=efi-update.img of=/dev/sdd
43008+0 records in
43008+0 records out
22020096 bytes (22 MB, 21 MiB) copied, 0.091765 s, 240 MB/s
And finally make sure any cached writes get written before restarting or removing the flash drive.
$ sync
Restart your laptop, boot from the flash drive (using F12 on the T450s, at least), and follow the on-screen instructions.