LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Linux Answers > Hardware
User Name
Password

Notices


By snmcdonald at 2012-12-15 14:42
***WARNING: ATTEMPTING TO FLASH YOUR BIOS CAN PERMANENTLY DAMAGE YOUR PC***

Most vendors do not provide support for Linux, which can be especially difficult when you want to update your BIOS.

I will be providing two methods for upgrading you BIOS.

1. FreeDOS
2. Windows PE

The first option is for DOS utilities and the second is for Windows utilities. I recommend the first unless you are forced to use a Windows executable from your vendor

---------------------------------------------------

FREEDOS

1. Download the FreeDOS live disk.

2. Plug in your USB replace /dev/sdb with /dev/[your USB] (if you do not know where your USB stick is try the command lsblk). Prepare to set up a partition table (Warning: this will erase everything on your USB stick.)

Code:
parted /dev/sdb

mklabel msdos
mkpart primary 0% 100%
set boot on
3. Add a file system:

Code:
mkfs.vfat -F32 /dev/sdb1
4. Now install Syslinux to your USB stick: (refer to your distro package manage for downloading the syslinux package):

Code:
syslinux -i /dev/sdb
5. Add a configuration file that will boot your FreeDos Image:

Code:
sudo mkdir /mnt/usb
sudo mount /dev/sdb1 /mnt/usb

sudo vim /mnt/usb/syslinux.cfg

DEFAULT FreeDOS
LABEL FreeDOS
 LINUX memdisk
 INITRD fdboot.img
6. Copy memdisk to your USB stick. (if you cant find the syslinux lib try the command whereis syslinux.)

Code:
sudo cp /usr/lib/syslinux/memdisk /mnt/usb
7. Copy the FreeDOS image and your vendor executable image.

Code:
sudo cp ~/fdboot.img
sudo cp ~/myBIOSflash.exe /mnt/usb
8. Plug in your USB and boot up your machine. Syslinux should boot into FreeDOS. Type myBIOSflash.exe to upgrade your BIOS.

---------------------------------------------------

WINDOW PE (Windows Portable Edition

If you've tried to flash your BIOS with FreeDOS and received "incompatible DOS file". This method is for you. Unfortunately, you will require a copy of Windows for this tutorial to work:

1. Download the Installation Kit and burn an ISO and install to Windows.

Download the Windows 7 Automation Installation Kit
http://technet.microsoft.com/en-us/library/cc766092(v=ws.10).aspx
Download the Windows Vista/XP/Server 2003 Automated Installation Kit

I have followed this Walkthrough from Microsoft, but have added necessary corrections.
Walkthrough: Create a Bootable Windows PE RAM Disk on UFD


2. Start the "Deployment Tools Command Prompt" from the start menu.

3. Create a Windows PE Image

Code:
copype.cmd x86 c:\winpe_x86
4. Mount the Image:

Code:
imagex /mountrw WinPE.wim 1 c:\winpe_x86\mount\
5. Add your BIOS flash files:

Code:
cp c:\acerBIOSflash.exe c:\winpe_x86\mount

6. Unmount the Image:

Code:
imagex /unmount /commit c:\winpe_x86\mount
7. This step must be added (it is in the other walkthroughs). It will not boot otherwise.

Code:
xcopy c:\winpe_x86\winpe.wim c:\winpe_x86\iso\sources\boot.wim /y
8. To partition the disk you must leave the "Deployment Tools Command Prompt". If you stay in the "Deployment Tools Command Prompt" it will not create a proper bootable partition. Start a separate command prompt with administrator privileges. Replace disk 6 with your USB.:

Code:
diskpart
list disk
select disk 6
clean
create partition primary size=<size of device>
select partition 1
active
format fs=fat32 quick
exit
9. Copy to your USB. Change "F:\" to the location of your drive:

Code:
xcopy c:\winpe_x86\iso\*.* /s /e /f f:\
Once you boot, you get a command prompt in a Windows environment.

Now you can navigate to the location of flash utility and install.

I hope this tutorial helps anyone else. It took a while to compile various walkthroughs and Q&As.

Note:
1. You cannot add the flash utility directly to the ISO. It has to be mounted into the actual boot.wmi.

2. If the disk fails to boot ensure that the active flag (boot) is set in diskpart.

by GlennsPref on Wed, 2013-02-06 19:44
Great job, thank you!

Regards Glenn

by AwesomeMachine on Sun, 2013-03-31 18:13
If I may add something, you can get the freedos floppy image here: http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz

The easier method works with both CD and USB.

Code:
user@linux # gunzip FDOEM144.gz
user@linux # mkdir ./dos
user@linux # mount FDOEM144 dos -t msdos
user@linux # cp BiosFlashUtility.exe ./dos/
user@linux # cp biosImage.bin ./dos/
user@linux # umount ./dos
user@linux # dd if=./FDOEM144 of=/dev/usb_flash_drive_device/
Then, just boot from the USB drive and run the bios-flash program. The file name can vary from one bios to another, so it's just an example.

Making the DOS CD is the same except for the dd command. Instead, use these commands:

Code:
user@linux # genisoimage -o biosflash.iso -b FDOEM144
user@linux # wodim dev=/dev/sr0 -sao ./biosflash.iso
I admire the effort and creativity in the original answer, but I think this is the way to go.

And, WIN PE is not approved by Microsoft for use as a stand-alone operating system. It requires no stretch of the imagination to conceive of Microsoft Corporation building a motherboard bricking function into Win PE just to discourage it's use for that purpose.


  



All times are GMT -5. The time now is 02:03 PM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration