The Windows Servicing Guy

Tips and tricks from a Windows support engineer on issues related to servicing

Windows 7/2008 R2 Service Pack 1 fails with 0x800f0a12

Windows 7/2008 R2 Service Pack 1 fails with 0x800f0a12

  • Comments 137
  • Likes

You might encounter an issue during the installation of SP1 for Win7/R2 where the installer exits with: 0x800f0a12

This is due to the automount policy for your machine being set to disable.  We block the service pack installation in these cases because we need to be able to write information to the BCD store during install and with automount turned off, we are not able to.  To resolve this, re-enable automount and then install the service pack.  Quick steps to do this in case you forgot are:

1.  Run DISKPART

2.  automount enable

3.  Restart

4.  Install SP1

An additional link: http://windows.microsoft.com/en-US/windows7/windows-7-windows-server-2008-r2-service-pack-1-sp1-installation-error-0x800F0A12

If your problem is not automount policy then you might have one of the other scenarios which can cause this error to occur (such as a third party boot loader).  Here are some other steps to try:

  • Ensure that the System Reserved partition is marked active (you can do this in Disk Management or DISKPART)
  • If you dont have a 100MB System Reserved Partition, make sure the drive with your Windows installation is active
  • Make sure that the Windows installation is the only active volume on your installation
  • If you have a 100MB System Reserved partition and it is marked active, give the partition a drive letter and reattempt the service pack installation
  • If you have SnapDrive from NetApp installed, it may need to be removed for the installation to work properly (source: http://communities.netapp.com/thread/13704)
  • Your BCD file could be corrupted, this can be checked by running BCDEDIT at an elevated command prompt to see if it returns normal values to you.  If it does not you'll need to rebuild it.
    • Rebuild the BCD store on your system by booting into WinRE and run the command: bootrec /rebuildbcd to rebuild the file
  • Lastly, disconnect any external devices, particularly storage devices such as EBooks and thumb drives

Let me know your results.

--Joseph

 

Comments
  • Hello Joseph,

    Are your steps 1 and 2 equivalent to 'mountvol /E'? If so, I did the steps. Yet I still can't install SP1?! If not, how do I enable automount? (I ran diskpart, but what do I have to then)

    Other people noticed that it might have something to do with Linux being installed on the same HDD. I too have both Windows 7 and openSUSE 11.3 installed, with GRUB as my boot manager. Any idea how to install SP1 in this case?

    Thanks for your time!

  • Markus;

    No, the two arent equivalent.  You're mounting the volume with your command whichmight not persist through the reboot (which is when we write data to the BCD store).  To enable autmount, just follow the steps above.

    I've seen many instances of this now being due to dual boot Linux installations as you mentioned.  The other thing I have seen people do if automount doesnt work for you is either A) give the drive a letter, which it appears to have done or B)  Boot into WinRE and run the startup repair function inside of WinRE and then retry the installation.

    Let me know if either of those help you out.

    --Joseph

  • For SP1 to install on multi boot machines, windows' system partition has to be active. So you have to set the boot flag to system (with gparted, for instance)

  • Again MS messed up.  If you partition the harddisk yourself before installing Windows 7 and use up all of the available space it will install without creating that hidden 200MB BCB partition.  In that case the BOOT folder will be created on drive C.

  • Maybe I am missing something, but how is that MSFT messing up exactly?  We create the partition if you have available space and we dont if you dont have the space. All that means is that to utilize Bitlocker on your system you would need to free space to create a System Reserved partition.

  • Hello All,

    unfortunately, Joseph's steps 1--4 didn't work for me. So, I followed Danielle's suggestion and looked at my hard drive with 'gparted'. Here is the essential result:

    Partition      | File System   |     Label                    |Size          | Used    | Unused    | Flags

    /dev/sda1   | ntfs                  | System Reserved  | 100 MiB  | 33 MiB |  66 MiB      | ---

    /dev/sda2   | ntfs                  | ---                              | 335 GiB  | X GiB    | 335-XGiB  | ---

    /dev/sda3   | extended        | ---                              | 37 GiB    |                |                    | boot, lba

    I take it that sda is the famous windows system partition everyone is talking about? Sda2 is the partition where windows 7 is installed, and sda3 holds openSUSE 11.3.

    If I understand Danielle correctly, I would have to

    1) set the flag of sda1 to 'boot'.

    2) remove the 'boot' flag from sda3 as well (two boot partitions seem odd to me).

    Having done that I can boot Windows 7 and install the service pack as usual.

    After everything is installed properly, I can change the settings back to the above.

    I am a newb at this, and therefore appreciate your help. Thanks for your patience!

  • Actually, its the sda2 that would need to be boot, we just need to be able to write to the BCD store on sda1.  I'm not familiar with gparted though, so I'm basing it off of what I know about Windows boot.

  • Yes, that is it.

    I triple boot Windows 7, Ubuntu 10.10 and Fedora 13. Grub2 used with Ubuntu left the bootflag on Windows system reserved partition. But the Fedora install moved the boot flag (though I didn't install Fedora's bootloader ; I use sudo update-grub on Ubuntu). I'm not sure but I think Fedora and OpenSuse stull use grub legacy.

  • So Danielle, you marked the System Reserved partition as the active one and not the Windows installation disk?  Just want to make sure I know which drive is getting the active bit in this scenario so I can work on a mitigation plan.

  • yes, the system reserved partition. If you go to Windows disk partitioning tool, the system reserved partition will be "active" and SP1 will install.

  • Sorry, I'm an idiot today and not thinking properly.  Yes, you're right it should be the SR partition because that's where the boot files are DUHHHH.  Maybe I need sleep :)

  • I got the same 0x800F0A12 error, but the DISKPART stuff didn't help.

    I have Fedora 14 installed on the same HD in free space, using/installed the Fedora bootloader. It's a Sony Vaio laptop and its recovery partition has been left intact. I have no idea if this has had any additional affect.

    Simple resolution in my case:

    1. In "Disk Management" tool, set the (C:) volume to 'Active'

    2. Try to install SP1 again via Windows Update.

    3. Success!

    No need to reboot between steps 1 & 2.

  • Max;

    Did you have a System Reserved partition on your Windows installation?  

  • joscon,

    No System Reserved partition.

    Compared to Markus Schwarz gparted table, I have at /dev/sda1:

    Partition      | File System   |     Label                    |Size              | Used         | Unused           | Flags

    /dev/sda1   | ntfs                  | Recovery                  | 14.51 GiB  | 13.68 GiB |  850.57 MiB      | diag

  • Ok, that makes sense on your issue then.  Markus doesnt have an active bit on his SR partition which is most likely causing his issue.  Thanks for that information.