Mr. Man-wai Chang said:
I knew the mode was AHCI before updating the BIOS. So it should not be
related....
Somewhere in the process the MBR and/or other boot records were altered.
Maybe the partition's Active Bit was altered... but it should not have
happened....
Your right in that the *BIOS* update should not have altered the MBR.
In fact, you can flash the BIOS with no hard disks present. I've
never bothered to backup the MBR (partition tables & bootstrap code)
because I've never encountered a BIOS update that touched the hard
disks; however, that EEPROM flash to put in new code for the BIOS may
require a CMOS clear (so the CMOS copy matches on the new BIOS
settings) as well as reactive effects, like hardware not working the
same as perform or changes in behavior of software. You changed the
settings in the new BIOS that didn't match the settings from before
that caused Windows to not want to load in normal mode. When you
flash the BIOS, all your customized settings are lost. What were
defaults before might be different after the flash. You're committing
brain surgery on the hardware (and apparently for no critical cause).
The MBR contains the partition table with 4 records (partitions), the
disk signature, and the MBR bootstrap code (446 bytes). I don't see
that the MBR got modified at all. How do you know it did? If the
partition table or its records got changed then you wouldn't have been
able to boot any OS even in its safe mode. The pointers to the
partition would be gone or corrupted so they point to the wrong
offsets into the hard disk. The disk sig can change but can cause
problems later (the boot.ini file doesn't use the disk sig from the
MBR to find the OS partitions). It's unlikely the MBR bootstrap code
got changed. While there are multiple variations of it, the
"standard" ones all do the same function: read the partition table to
find with record (partition) is marked active and go to that offset to
load the first track into memory as the boot sector for an OS in that
partition and lastly to pass control to that boot sector code in
memory.
If you saved a copy of the MBR before the BIOS flash and then saved a
copy after the BIOS flash to compare the two and found them different,
the question is what changed. You said the new version of the BIOS
added support for UEFI. Well, Windows 7 also support UEFI so it
seeing newly added UEFI support might have Windows 7 make changes to
the MBR even if UEFI mode isn't implemented. I would suspect a new
version of the "standard" bootstrap code got put into the 446 bytes in
the MBR by Windows 7 but that's insignicant and irrelevant to the MBR
bootstrap process. Win 7 might've put in a new standard bootstrap
loader but it performs the same functions as many older ones.
I suspect the BIOS flash that wiped all old customized or
automatically adjusted settings and that affected the load of Windows
7. Windows isn't passive about BIOS settings or changes to them. For
example (this may not be true for you in this case), it's possible the
BIOS now reports a different machine type. You said it was configured
for AHCI before and after the BIOS flash but how about the hardware
platform announced by the BIOS to Windows? When you go into Device
Manager (devmgmt.msc) and look under the "Computer" tree node, is the
same type of computer reported there after the BIOS flash that was
specified before the flash? A change in the hardward platform may
require a change in the HAL (Hardware Abstraction Layer) in the kernel
or the [included] drivers selected by Windows to support that [now
changed] hardware platform. There are so many settings in the BIOS
that affect operation of Windows that wiping them out with a BIOS
flash can result in having to reinstall Windows.
Besides problems with Windows operation, incompatible default settings
for the hardware, and other major effects from changing the BIOS
version, upgrading the BIOS is *not* a trivial operation. You just
did a brain transplant on your hardware.