启动电脑大致可分为几个阶段。首先运行BIOS,紧接着进入Boot sequence顺序排列的储存设备。在储存设备里载有MBR。这个MBR是记录在储存设备里的第一个扇区。MBR由三个部分组成。
(1) 第1-446字节:调用操作系统的机器码。
(2) 第447-510字节:分区表(Partition table)。
(3) 第511-512字节:主引导记录签名(0x55和0xAA)
分区表(partition table)是把硬盘分成几个分区。分区表又记录分区的一些性质,如激活分区(active partition),硬盘磁头的开始与结束,主分区的扇区总数等。计算机来到激活分区后会读取分区第一个扇区里的Volume boot record。从这里开始计算机开始加载操作系统。
最近装载在原Vista系统装载Windows 7,发现一些小细节,在这里做个记录以备日后参考。
- Vista系统分区可以通过Partition clone自由搬动而不影响启动。
- Windows 7里有一个System partition,这个分区里的文件不能在Windows下删除。
虽然有几个可能的原因,这里是boot record的问题。由於Windows 7本来是加载在Vista上,在自身的分区没有System file。当把这分区拷贝到SSD后就占据了硬盘前面分区。在这SSD里的System file应该是Vista的。这就导致了在windows 7 recovery, command prompt里就算用bootrec/rebuildbcd也不能成功把boot configuration data(BCD)更改。而且直接装载Windows 7也不行。最后的方案是把硬盘先格式化再重装Windows 7。
这个与上面的大同小异。计算机来到MBR后找不到Boot manager。- bootrec/scanos只会显示不在rebuildbcd里的作业系统。
- Rebuild bcd 步骤
bootrec/rebuildbcd
bcdedit /export c:\bcdbackup
attrib c:\boot\bcd -h -r -s
ren c:\boot\bcd bcd.old
bootrec /rebuildbcd
bootrec.exe /fixmbr
bootrec.exe /fixboot
bootsect.exe /nt60 all /force