Write bootable BIOS update .ISO to USB stick
Solution 1
I found what may be a solution to the issue at http://positon.org/lenovo-thinkpad-bios-update-with-linux-and-usb.
First convert the iso
image to an img
file:
sudo apt-get install genisoimage
geteltorito -o bios.img gruj09us.iso
Then copy to the USB key:
sudo fdisk -l /dev/sdb # double check that the device is right
sudo dd if=bios.img of=/dev/sdb #Will Erase the drive!!
That said I think you should just try first whether it boots okay if you just write the .iso with a generic tool as you normally would. (Provided it needs some input and does not automatically start mucking about in your BIOS as you boot up.) Last two times I installed a Linux I didn't use the recommended tool. (I made a bootable USB for 15.04 with SUSE Studio Image Writer since Unetbootin messed it straight up multiple times.It worked fine.)
Solution 2
As Arch user said in the comments, the most straightforward way to write a bootable ISO to an USB drive is to dd
the image to the drive.
First triple-check to which block device your USB drive is currently mapped to:
lsblk
Than dd
the image to the USB drive. For example if your USB drive happens to be mapped to /dev/sdb
:
sudo dd if=/path/to/image of=/dev/sdb bs=8M && sync
Different block sizes usually peform differently, however usually a bigger block size performs better than a smaller block size; a block size of 8M should be enough to let the process run at full speed.
If you want to monitor the progress of the process, install pv
:
sudo apt-get update && sudo apt-get install pv
And run this command instead:
pv /path/to/image | sudo dd of=/dev/sdb bs=8M && sync
Solution 3
Just in case someone is still looking for the answer.
The solution above alone was not enough for my Lenovo E470 which is UEFI-capable. The BIOS update utility just does not start from USB stick.
One has to read the README file corresponding to BIOS update file.
On reboot press Enter to interrupt normal startup and after entering the BIOS Setup:
... -> 7. In "UEFI/Legacy Boot", make sure "UEFI only" is chosen. 8. Choose "Boot" from the menu. Note the current boot priority order for restoration later if you need to modify your boot list. 9. In "Boot Priority Order", make sure the following device is on top of "ATA HDD0". - "ATAPI CD0" (when using a ThinkPad internal optical drive) - "USB CD" (when using a USB optical drive) -> - "USB HDD" (for my USB stick)
After restart you should be able to boot from you "USB HDD".
Related videos on Youtube
![Nicolas Raoul](https://i.stack.imgur.com/F5gLZ.png?s=256&g=1)
Nicolas Raoul
I am Nicolas Raoul, IT consultant in Tokyo. Feel free to copy/paste the source code from my StackExchange answers, I release it to the public domain.
Updated on September 18, 2022Comments
-
Nicolas Raoul almost 2 years
Lenovo distributes BIOS updates as .iso files (example) that are supposed to be burnt on a CD and booted. Burning it to a CD worked and booted correctly, but now I want to use a USB stick instead (because I don't trust my CD drive), how to create this USB stick using Ubuntu?
There are many tutorials explaining how to create bootable USB sticks from Linux-based ISOs (using UNetbootin and similar, they create Linux-related files at the root of the USB stick) and from Windows-based utilities (with FreeDOS and similar). I believe neither are solutions here as the BIOS update ISO file is not Linux-based nor DOS-based (mounting the ISO does not show any known filesystem)
-
Admin almost 9 yearsHave you tried to dump the ISO content to an USB? To do so, run the following command:
# dd if=/path/to/iso of=/dev/yourusb bs=4M
. WARNING: Your USB will be ERASED. Also please double check the path to your USB block drive -
Admin almost 9 years@Archuser: This only works, if the ISO images was made to be able to boot in that particular configuration. Regular bootable ISO images cannot be booted like that.
-
Admin over 7 yearsMake sure you call "sudo sync" twice after the dd command. otherwise the kernel might not sync back the written data from the kernel cache to the drive.
-
-
leorize almost 9 yearsAfter you have updated your BIOS, restore the USB to full capacity with:
# dd count=1 bs=512 if=/dev/zero of=/dev/sdb
and format the USB after that -
xyz almost 9 yearsYou must add && sync to dd
-
kos almost 9 years@prakharsingh95 Fine remark. Thanks
-
Nicolas Raoul almost 9 yearsThat worked! Not sure what eltorito is but it solved the problem.
-
Thomas Schmitt almost 9 yearsFor the records: The ISO consists of an empty root directory and a hidden BIOS boot image which is an emulated hard disk. geteltorito finds the disk image by reading the El Torito boot catalog. Then it learns the image size from the MBR partition table in the image. Finally it extracts the image to target file. This boots from USB stick only because all needed software is in the emulated hard disk. A very peculiar situation.
-
Thomas Schmitt almost 9 yearsFlatly copied ISO on USB stick only boots via BIOS if the ISO begins by an MBR. This is an extra feature commonly called "isohybrid". All major Linux distros have their installation ISOs equipped this way. But the Lenovo ISO has no MBR, only an El Torito boot catalog for booting via BIOS from CD/DVD/BD. Nevertheless it has all needed stuff in the hidden boot image beginning at ISO block 27, which emulates a hard disk.
-
shaneonabike over 8 yearsI tried this but was not able to get it to boot for Lenovo T510. I definitely snagged the bootable BIOS but when it burnt out to the USB there was nothing there (is that normal?). When I tried to boot the error message was that there was no OS? Any ideas??
-
TiloBunt about 7 yearscheck this link as well: ubuntuforums.org/showthread.php?t=1852425 and thinkwiki.org/wiki/…
-
Admin about 7 yearsLenovo mentions this in their README on the BIOS download page, but it is good to remind folks.
-
fIwJlxSzApHEZIl almost 4 years
geteltorito
outputsOut of memory!
for me when executing the command. Any ideas?