目前微软已经承认,当用户拥有Vista Enterprise/Ultimate和Linux双系统,且Linux的引导被安装至MBR的情况,在升级Vista至SP1版时会遇到麻烦。
据悉微软的SP1补丁包KB935509具有新版的bootloader,在升级SP1时,原系统中的bootloader可能已经被开源版的bootloader程序所取代,例如Grub。目前微软已经解释了该问题出现的原因,Vista SP1补丁包中包含了BitLocker功能的更新,更换开机引导程序bootloader的目的是为了让系统能在引导时加载驱动器加密和BitLocker技术。
目前更新SP1时“信任链”平台的完整启动顺序如下,首先从机器上的TPM芯片读取信息,然后通过MBR和操作系统进行引导。而双启动的情况下,Vista中的Bootloader如果被替代,系统完整性检查会失败,该SP1安装也会失败,同时系统也将无法正常开机。
微软技术顾问Michael Kleef解释说:“BitLocker不仅关系到加密和系统验证,也关系到数据的完整性。BitLocker按照顺序进行检查,如果它发现了一些不匹配的东西,它将拒绝访问。安装Lilo或是其他引导程序将破坏原有的引导信任体系,因为这些Bootloader会替代微软的Bootloader,这也意味着加密分区将无法引导。"
对于用户来说,如果Linux和Vista分区安装到同一个驱动器,用户必须恢复Vista的Bootloader然后才能进行SP1升级。如果操作系统不是在同一块硬盘,那么问题就小的多,用户只需要在BIOS中改变硬盘开机顺序即可。
另外,Vista SP1安装失败并不取决于你是否打开BitLocker特性,只要操作系统安装了BitLocker你就避免不了这种情况。默认情况下,也只有Vista Enterprise和Ultimate两个版本自动安装了BitLocker特性,所以,目前仅有这两种操作系统的用户会受到影响。