I have a Lenovo Thinkpad T431s running Ubuntu. For those of us not running Windows, Lenovo provide a bootable CD image for their firmware updates. The Thinkpad T431s does not have a CD drive and the ISOs Lenovo provide will not boot from a USB key.
It’s trivial to provide images that can boot from a USB key, but Lenovo instead just assume you have an external USB drive because they’re dickheads; or incompetent. Or both. Let’s assume both!
Anyway, you can convert their images into something you can write to a USB key if you know the magic incantation.
You just need the geteltorito command, which is provided by the genisoimage package on Ubuntu.
The isoinfo command (in the same package) shows that the iso has an ElTorito virtual disk section, which you can’t see normally – it’ll just look like an empty CD if you mount it.
isoinfo -i fwsx04.iso -d CD-ROM is in ISO 9660 format System id: Volume id: FWSX04 Volume set id: Publisher id: Data preparer id: Application id: NERO BURNING ROM Copyright File id: Abstract File id: Bibliographic File id: Volume set size is: 1 Volume set sequence number is: 1 Logical block size is: 2048 Volume size is: 15542 El Torito VD version 1 found, boot catalog is in sector 20 Joliet with UCS level 3 found NO Rock Ridge present Eltorito validation header: Hid 1 Arch 0 (x86) ID 'NERO BURNING ROM' Key 55 AA Eltorito defaultboot header: Bootid 88 (bootable) Boot media 4 (Hard Disk Emulation) Load segment 7C0 Sys type 6 Nsect 1 Bootoff 1B 27
And you can extract the ElTorito image like this:
geteltorito fwsx04.iso > fwsx04.img
And then you can just write that image file direct to your USB key. In my case, my USB key shows up as /dev/sdb
dd if=fwsx04.img of=/dev/sdb
then you can shutdown and boot from the USB key and the firmware flashing utility will execute.
Or you could buy a Lenovo external DVD drive just for doing firmware updates; yeah thanks Lenovo.