有一个2012年买的Thinkpad E420。CPU是i5-2430M,机械硬盘250G。这几年经过了几次升级,目前内存为8G,光驱拆掉变成了128G ADATA的SSD。

原先的系统是装在机械硬盘上(磁盘0)。为了省事,我又直接在SSD上重装了一个win7,这样系统盘变成了SSD(磁盘1)。系统能够正常从SSD上启动,而原先的250G硬盘变成了工作硬盘,一切看起来都很完美,速度很快。但这里有一个问题,导致后面再次升级时遇到了麻烦:

通过控制面板 -> “计算机管理- > 磁盘管理”查看的结果是:

磁盘0:250G机械硬盘(系统)

磁盘1:128G SSD (启动)

所以,新的系统是装在SSD上(磁盘1),但是引导扇区还是在原来的磁盘上(磁盘0)!


这几天,我又买了一个256G的SSD,准备把原先的机械硬盘换掉。因为现在系统装在磁盘1上,本以为只要把原先的磁盘0机械硬盘换成SSD,就万事大吉了,但更换后,系统报无法启动。在网上查了一些资料,才发现了上面的那个问题:引导扇区在磁盘0上。虽然系统在磁盘1上,但是没有了引导扇区,系统当然无法启动!


所以,我需要先把原先磁盘0上的引导扇区转移到磁盘1上,才能把磁盘0拆掉。我按照这个帖子的方法做了:

http://www.hanselman.com/blog/SwitchingMyWindows7BootDiskFromDToCWithBCDBootRatherThanBCDEdit.aspx

重点就一句话,用管理员身份打开cmd,运行 bcdboot c:\windows /s c:

但,还是报无法启动。经过了几次尝试,我把原先光驱上的SSD拆下,换到了磁盘0接口上,把原先的机械硬盘装到了光驱上,再执行一遍bcdboot命令。拆掉光驱,重启,果然可以了启动了!再把新买的256G SSD装到光驱上,成功!


根据以上的测试,我怀疑,在使用 bcdboot c:\windows /s c: 命令的时候,必须确保当前的C盘是磁盘0,否则这个命令不起作用。但,我没有查到这个猜测的文字证明。