一、故事:
以前买的一台三星电脑,默认是Windows 7系统,有C、D两个分区。我将它升级到了Windows 8,然后在应用商店里,疯狂地安装各种应用。我本以为,应用是很小的,应该不会占用多少磁盘空间,可是不久之后,积少成多,发现C盘只剩下几个G的空间了。这时,我才回头去卸载了一些不常用的应用,然后又做了一些其他的清理工作,最后发现,成效不大,几个G的剩余空间,总让我有所不安。相反,D盘的空间却足够多。因为马云说过,技术是要为人服务的,所以我一般是不去管理什么磁盘的,安装什么程序,全让它自动进行,也不去挑选安装路径。下载什么东东,也是默认路径,从不修改。可是,一切默认设置均指向C盘,于是导致了C盘空间被大量使用,而D盘却从没有什么机会被使用。
于是,我发现厂商默认的两人个磁盘分区很不合理。一个C盘不就行了吗?于是我打开Windows 8的磁盘管理程序,试图将D盘删除,把空间全部加到C盘上去。果断地删除了D分区后,C分区的空间仍然增加不成功。错误信息说,C盘是主分区(primary partition),D盘是逻辑分区(logical partition),Windows 8的磁盘管理不支持将逻辑分区的空间加到主分区的空间!这个我实在不理解,毕竟是系统技术的菜鸟一个。
泄了点气后,我安装了EasyUS,嘿,它的磁盘管理程序,就不管什么主分区、逻辑分区了,只需要拖拖滑块,就将废掉的D分区空间全给了C分区!可是——
并没有立即结束,而是跳出一个警告框:“要想让刚才的更改生效,必须重新启动计算机”。也就是说,它知道我要干什么了,但是却不能立即帮我干,而是下次启动时才能帮我干。
好吧,我点了“立即重启”。于是悲剧发生了,系统重启时,出现个黑屏,说找不到系统了!
An operating system wasn’t found. Try disconnecting any drivers that don’t contain an operating system.
Press Ctrl+Alt+Del to restart.
我做了个Windows 8 USB启动盘,使用自动诊断、修复什么的,通通不管用。但是我用高级模式下的命令行检查了电脑里的C盘,文件全在,包括Windows文件夹,均好好的。由于已经安装了很多软件和应用,因此,重装系统或者恢复还原什么的,决不是可行的选择。
二、解决方案:
原来解决办法,在于BCDEdit!关于系统启动的知识,我是一窍不通。如果靠我自己,我怎么也不知道这个解决办法。在电脑不能启动后,我苦思了良久,明白自己搞不定后,最后求助了微软IT团队。他们听完我描述的情况后,让我上网搜索BCDEdit。专业人士就是专业人士,一秒内给你正确的解决办法。
步骤:
- 在BIOS里设置一下启动的顺序以及启动源。因为默认从硬盘启动已经不行了,所以要增加从其它途径启动的候选项,比如从网络、光盘、U盘等等。我前面已经制作了一个Windows 8的U盘启动盘,所以在BIOS里设置了从U盘启动。
- 启动后,会进入系统安装界面,在“立即安装”下有个“修复系统”的链接,点击进去,然后通“高级”选项卡,进入命令行模式。
- 在命令行中输入(一行接一行输入,每输入一行敲一个回车。要理解这些命令,就参见参考链接)
- bcdedit /createstore bcd
- bcdedit /import bcd
- del bcd
- bcdedit /create {bootmgr}
- bcdedit /set {bootmgr} device boot
- bcdedit /timeout 30
- bcdedit /create /d “Windows 8” /application osloader
- 在以上最后一行命令中,Windows 8是系统名称,你可以根据自己的情况,输入别的名称(Windows 7什么的,或者其他自己喜欢的名字)。
- 在输入完那行命令后,回车,这时命令行上会显示一串用大括号括起来的全局唯一标识符(GUID),这个在后面需要用到,所以必须注意它。它是类似这个样子的:{c0b8081e-deaa-11e1-be6e-0015833d0a57}
- 继续在命令行中输入:
- bcdedit /default {<GUID>}
- 上面一行中就要输入之前记下的那个全局唯一标识符,如
- bcdedit /default {c0b8081e-deaa-11e1-be6e-0015833d0a57}
- 继续输入(以下高亮的地方要注意,那都是示例输入,请根据自己的情况修改实际值):
- bcdedit /set {default} device partition=c:
- 以上的c:是指系统所在的分区,如果你是叫D盘,就输入d:
- bcdedit /set {default} path \windows\system32\boot\winload.exe
- bcdedit /set {default} osdevice partition=c:
- bcdedit /set {default} systemroot \Windows
- bcdedit /set {default} detecthal yes
- bcdedit /displayorder {default} /addlast
- 好,基本上就完成了。现在,退出命令行,使用启动盘里的修复工具,再修复一下。
- 修复完成后,重启,设置BIOS,将从启动顺序的第一项调整为从硬盘启动。
- 重启,系统又回来啦!!!
三、后记:
我做完以上步骤后,开机时,见到了那个蓝色的Windows 8 微标,心情非常激动!徽标消失后,EasyUS 的界面出来了,原来它很守信用,说好重启时要帮我将D分区空间分配给C分区的。在EasyUS磁盘空间分配结束后,进入到了入违的Windows 8系统里,我打开“我的电脑”,看到D盘已经消失,C盘的剩余空间已变得非常巨大了,非常高兴,默默感激EasyUS 软件,感激微软IT团队里告诉我bcdedit的兄弟,感激参考链接中的那位作者,感激网络!