1

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.

2 Answers 2

3

https://wiki.archlinux.org/index.php/ThinkPad_Edge has the process:

  1. Grab and unpack https://gna.org/projects/grub4dos/ (the wiki has an old link)
  2. In the grub4dos directory, sudo ./bootlace.com /dev/sdb
  3. cp grldr /media/USBSTICK
  4. cp menu.lst /media/USBSTICK
  5. 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.

0
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/
1
  • Exactly what's needed -- no additional bootloader and much fiddling required!
    – ljrk
    Feb 26, 2017 at 17:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .