# Upgrading BIOS



## forquare (Nov 11, 2015)

Good afternoon all,
I've noticed that there is a BIOS update for my Lenovo T440. The download is an ISO file which strikes me as a little odd since the laptop doesn't have an optical drive...

My first thought was to install syslinux onto a USB stick, loopback mount the ISO and copy the files across.  But I've failed on almost all accounts!

1. I'm not sure how to correctly format/partion the USB stick (16GB)
2. syslinux doesn't seem to like the fact that da0 is not a block device
3. Mounting the ISO with `mount -t cd9660 /dev/`mdconfig -f fwsh46.iso ` /mnt` doesn't seem to work - md0 is created, `mount` shows it as mounted on /mnt, but /mnt is empty...

How can I write this to a USB stick, and make the USB stick bootable to install?


----------



## SirDice (Nov 11, 2015)

This is what the README says:

```
- To boot the computer from the BIOS Update CD, you should have the following
  type of optical drives.
  - USB
  Any types of other optical devices are not supported.
```


----------



## tingo (Nov 11, 2015)

Have you tried simply dd'ing the iso file to your usb stick? In the old days (before uefi) machines would always boot from this kind of usb stick. These days, it works on some machines, and fails on others. YMMV.


----------



## forquare (Nov 11, 2015)

SirDice said:


> This is what the README says:
> 
> ```
> - To boot the computer from the BIOS Update CD, you should have the following
> ...





			
				Winnie the Pooh said:
			
		

> Oh bother





tingo said:


> Have you tried simply dd'ing the iso file to your usb stick? In the old days (before uefi) machines would always boot from this kind of usb stick. These days, it works on some machines, and fails on others. YMMV.



I had tried that, but nothing


----------



## protocelt (Nov 11, 2015)

Look again at what SirDice posted. You need to use an USB optical (CD/DVD) drive.


----------



## forquare (Nov 11, 2015)

protocelt said:


> Look again at what SirDice posted. You need to use an USB optical (CD/DVD) drive.


Yes, I understood that, hence my response 
Looks like I'm going to have to buy an USB optical drive and some rewritable CDs - I chucked all mine a few years ago after they had gather a tonne of dust - seems that friends seem to have done similar!


----------



## protocelt (Nov 11, 2015)

It is kind of odd that it would require a USB optical drive. Not sure what Lenovo was thinking there.


----------



## wblock@ (Nov 12, 2015)

There is usually an MS-DOS or FreeDOS floppy image built into the CD-ROM image.  It is probably possible to extract that and boot from it.  The firmware image and flash program can then be run, although you might have to gain access to them.  CD-ROM drives were a challenge in DOS.  I keep an MS-DOS hard drive image for this, copy the flash program and image to it, and PXE-boot the target machine from that.  It is not exactly convenient, but the need for it has diminished.

The first step, as always, should be to contact the vendor and ask them which century they are living in.  The response can be predicted with a fairly good level of certainty, but it's still worth trying.

Remember this the next time you buy a new machine.


----------



## sag (Nov 14, 2015)

```
# isoinfo -d -i gjuj22us.iso
CD-ROM is in ISO 9660 format
System id:
Volume id: gjuj22us
Volume set id:
Publisher id:
Data preparer id:
Application id: NERO BURNING ROM VER 12,5,5,0
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: 10934
El Torito VD version 1 found, boot catalog is in sector 20

Joliet with UCS level 3 found.
No SUSP/Rock Ridge present
Eltorito validation header:
  Hid 1
  Arch 0 (x86)
  ID 'NERO BURNING ROM VER 12'
  Cksum D3 22 OK
  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
```
The reason the ISO looks empty is that everything is embedded into a hard disk emulation. You use the `geteltorito` perl script to extract that image.

Get the script from http://www.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito and edit its shebang line to #!/usr/local/bin/perl then


```
# ./geteltorito -o bios.img gjuj22us.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 "bios.img".
# mdconfig bios.img
md0
# file -s /dev/md0*
/dev/md0:  DOS/MBR boot sector; partition 1 : ID=0x4, active, start-CHS (0x0,1,1), end-CHS (0x14,63,32), startsector 32, 42976 sectors
/dev/md0s1: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "MSDOS5.0", reserved sectors 2, root entries 512, sectors 40960 (volumes <=32 MB) , Media descriptor 0xf8, sectors/FAT 159, sectors/track 32, heads 64, hidden sectors 32, reserved 0x1, serial number 0xdeddd763, unlabeled, FAT (16 bit)
# mount -t msdosfs /dev/md0s1 /mnt
# ls -l /mnt
total 3
drwxr-xr-x  1 root  wheel  512 2014-10-22 11:37:04 EFI
drwxr-xr-x  1 root  wheel  1024 2014-10-22 11:37:04 FLASH
drwxr-xr-x  1 root  wheel  512 2014-11-13 05:24:26 System Volume Information
drwxr-xr-x  1 root  wheel  512 2015-08-12 09:35:08 Temporary Internet Files
# ls -l /mnt/FLASH
-rwxr-xr-x  1 root  wheel  24576 2013-09-18 17:00:00 306C1.PAT
-rwxr-xr-x  1 root  wheel  22528 2013-09-18 17:00:00 306C2.PAT
-rwxr-xr-x  1 root  wheel  21504 2014-08-26 10:56:40 306C3.PAT
-rwxr-xr-x  1 root  wheel  22528 2013-09-18 17:00:00 40650.PAT
-rwxr-xr-x  1 root  wheel  20480 2014-08-26 10:55:10 40651.PAT
-rwxr-xr-x  1 root  wheel  312 2013-09-18 17:00:00 BCP.EVS
-rwxr-xr-x  1 root  wheel  9857 2013-09-18 17:00:00 CHKLOGOD.EXE
-rwxr-xr-x  1 root  wheel  7376 2013-09-18 17:00:00 COMMAND.COM
-rwxr-xr-x  1 root  wheel  366592 2013-12-16 02:55:06 DosFlash.exe
-rwxr-xr-x  1 root  wheel  6855 2013-09-18 17:00:00 FINDRAMD.EXE
-rwxr-xr-x  1 root  wheel  30570 2013-09-18 17:00:00 FLASH2.EXE
drwxr-xr-x  1 root  wheel  512 2015-09-21 12:55:46 GJET85WW
-rwxr-xr-x  1 root  wheel  7605 2013-09-18 17:00:00 README.TXT
-rwxr-xr-x  1 root  wheel  23296 2013-09-18 17:00:00 SHELLFLASH.EFI
-rwxr-xr-x  1 root  wheel  4438 2013-09-18 17:00:00 TPCHKS.EXE
-rwxr-xr-x  1 root  wheel  40058 2013-09-18 17:00:00 UPDTFLSH.EXE
-rwxr-xr-x  1 root  wheel  7118 2013-09-18 17:00:00 UPDTMN.EXE
-rwxr-xr-x  1 root  wheel  12501 2013-09-18 17:00:00 USERINT.EXE
-rwxr-xr-x  1 root  wheel  15162 2013-09-18 17:00:00 UTILINFO.EXE
-rwxr-xr-x  1 root  wheel  26 2013-09-18 17:00:00 lcreflsh.bat
```


----------



## shepper (Nov 14, 2015)

In this DaemonForums thread Carpetsmoker speaks of using FreeDos to create a bootable USB thumb drive.  At the time I think he was using FreeBSD on a Lenovo

A couple more link1, link2.


----------



## sag (Nov 15, 2015)

I think the easiest way to make a FreeDOS-bootable USB flash drive would be to use an emulator like qemu (or VirtualBox if you prefer). Download the FreeDOS install ISO to use as the a: drive and use your flash drive as c:. Start the VM and just follow the prompts to fdisk, format and install.


----------



## forquare (Nov 17, 2015)

Thanks all, apologies for the late response - I'm not longer getting email notifications of replies :/
I shall have a sit down tonight and go through all this properly and try to upgrade


----------

