It looks like Windows engineers forgot that other OS can coexist with the beast.
As a result, the SP1 installation can fail (error code 0x800F0A12) if the Windows partition is not marked as active.
Here is a soft fix:
- search Disk Management and run it.
- Find any partition which has 'system' flag, mark it as active. don't restart yet.
- remember to untick 'automatically restart' on the SP1 installer.
- before you restart, mark the previous partition or partition which has boot flag as active (in this case C).
Here is a simple, hard fix that worked for me:
- unplug the Linux disk before installing the SP1 (might be safer anyway!)
Thank you Microsoft for making this difficult, as usual!