Pinned topicchange BIOS from within Linux

I tested by manually setting the BIOS to my preference, of a SLES11 box running on VMware, booted into the OS, ran

dd if=/dev/nvram of=nvram.saved

rebooted and manually factory defaulted the BIOS, booted back into the OS, and ran

dd of=/dev/nvram if=nvram.saved

Upon rebooting and checking the BIOS on startup, I was delighted to find that my preferential settings had in fact overwritten the defaults, effectively allowing for BIOS "revision" from within the OS using the known good configuration generated by the first dd command.

However, the vmware BIOS is a generic virtual BIOS utility, and even though this virtual test (so as to not brick my hardware!) was successful, subsequent tests on IBM hardware ThinkCentre result in failure. Following the same process as above, the factory default BIOS settings still remain. It is interesting though, that when I perform the hexdump using

od -Ax -tx1z -v /dev/nvram

the output matches the hexdump of my preferential BIOS settings, not the factory default settings. So either this is not where the settings are being read in, there's a checksum I'm failing, or some other reason the BIOS settings I "force" are not read, and factory defaults are loaded as a result.

Any help or guidance is greatly appreciated, let me know any output or screengrabs that would be helpful.

I tested by manually setting the BIOS to my preference, of a SLES11 box running on VMware, booted into the OS, ran
<pre class="jive-pre">
dd if=/dev/nvram of=nvram.saved
</pre>
rebooted and manually factory defaulted the BIOS, booted back into the OS, and ran
<pre class="jive-pre">
dd of=/dev/nvram if=nvram.saved
</pre>
Upon rebooting and checking the BIOS on startup, I was delighted to find that my preferential settings had in fact overwritten the defaults, effectively allowing for BIOS "revision" from within the OS using the known good configuration generated by the first dd command.

However, the vmware BIOS is a generic virtual BIOS utility, and even though this virtual test (so as to not brick my hardware!) was successful, subsequent tests on IBM hardware ThinkCentre result in failure. Following the same process as above, the factory default BIOS settings still remain. It is interesting though, that when I perform the hexdump using
<pre class="jive-pre">
od -Ax -tx1z -v /dev/nvram
</pre>
the output matches the hexdump of my preferential BIOS settings, not the factory default settings. So either this is not where the settings are being read in, there's a checksum I'm failing, or some other reason the BIOS settings I "force" are not read, and factory defaults are loaded as a result.

Any help or guidance is greatly appreciated, let me know any output or screengrabs that would be helpful.

Re: change BIOS from within Linux

‏2012-02-08T17:43:52Z

This is the accepted answer.
This is the accepted answer.

Your question is more VMWare related than Linux related, since it has to do with how VMWare handles changes to it's virtual machine files. There might be an answer here, but you will likely get one faster from the VMWare Community.

Re: change BIOS from within Linux

Your question is more VMWare related than Linux related, since it has to do with how VMWare handles changes to it's virtual machine files. There might be an answer here, but you will likely get one faster from the VMWare Community.

I want to make sure I understand your goals. You want to take the BIOS settings from the running physical machine and copy into the virtual machine? I'm guessing that if there are differences with between the IBM BIOS and the VMWare Phoenix BIOS that you will run into trouble.

Please verify that I understand what you're doing and I'll do a little more digging.