Burn bootable iso image to USB stick using dd: Won't boot (despite USB first in boot sequence)
Solution 1
https://wiki.archlinux.org/index.php/ThinkPad_Edge has the process:
- Grab and unpack https://gna.org/projects/grub4dos/ (the wiki has an old link)
- In the grub4dos directory,
sudo ./bootlace.com /dev/sdb
cp grldr /media/USBSTICK
cp menu.lst /media/USBSTICK
cp /path/to/7yuj40uc.iso /media/USBSTICK
Finally you have to add the following code to the menu.lst on your pendrive to make the USB-Stick boot the PC DOS program made by lenovo:
title Thinkpad-BIOS-UPDATE
find --set-root /7yuj40uc.iso
map /7yuj40uc.iso (0xff) || map --mem /7yuj40uc.iso (0xff)
map --hook
chainloader (0xff)
boot
And that's about it.
Solution 2
The ansewer of chx did not work when I tried to make a bootable USB-stick from the iso of a bootable CD from Lenovo, to flash the BIOS of a Thinkpad X1 Carbon. Unetbootin, multiusb etc. also did not work, as stated in the question. What worked was to grab the script geteltorito.pl, extract the so-called bootable image and dd that image to a USB flash stick. There may be a plethora of other tools to extract the bootabe image from an CD, e.g., genisoimage for ubuntu contains a binary geteltorito.
./geteltorito.pl -o g.img gruj08us.iso
dd if=g.img of=/dev/sdX bs=1M
# use lsblk to get the device, e.g., sdb; Not the partition, e.g., sdb1
# bs=1M is not necessary, just for speed
To have a look into the image, get the offset of the filesystem contained in it, e.g., using fdisk, and mount the image with that offset,
fdisk g.img
> p
# if the sector size is 512, the start of the filesystem at sector 32,
# 32 x 512 = 16384
mount -o loop,offset=16384 g.img /mount/point/
Related videos on Youtube
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 over 1 year
I have installed Ubuntu on a Lenovo Thinkpad R500 2732, and I must update the BIOS.
On the Lenovo website, I am offered this:
BIOS Update Bootable CD for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit), XP - ThinkPad R500
I guess a bootable CD that would do a BIOS update is indeed what I need. (still wondering why it says "Windows" though... if it is bootable should not it be OS-agnostic?)
Not wanting to waste a CD, I copied the image to my USB stick:
sudo dd if=/home/nico/7yuj40uc.iso of=/dev/sdb1 bs=1M
And rebooted, after making sure USB is first in the boot sequence.
PROBLEM: It does not boot. Did I forget one step?
Details about the iso image (readme):
ls -lh 7yuj40uc.iso 25M file 7yuj40uc.iso /home/nico/7yuj40uc.iso: # ISO 9660 CD-ROM filesystem data '7YUJ40US ' (bootable)
(Scroll to the right: it says "bootable")
- UNetbootin does not work because it is not a Linux image.
- Some people on the Internet advise to copy the content of the ISO and do other steps. This ISO has zero ISO content so it would not work. If I mount the ISO, I can see it contains zero files.
-
ljrk about 7 yearsExactly what's needed -- no additional bootloader and much fiddling required!