解决:开机时找不到系统的错误

一、故事:

以前买的一台三星电脑,默认是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.

An operating system wasn’t found. Try disconnecting any drivers that don’t contain an operating system.

我做了个Windows 8 USB启动盘,使用自动诊断、修复什么的,通通不管用。但是我用高级模式下的命令行检查了电脑里的C盘,文件全在,包括Windows文件夹,均好好的。由于已经安装了很多软件和应用,因此,重装系统或者恢复还原什么的,决不是可行的选择。

二、解决方案:

原来解决办法,在于BCDEdit!关于系统启动的知识,我是一窍不通。如果靠我自己,我怎么也不知道这个解决办法。在电脑不能启动后,我苦思了良久,明白自己搞不定后,最后求助了微软IT团队。他们听完我描述的情况后,让我上网搜索BCDEdit。专业人士就是专业人士,一秒内给你正确的解决办法。

步骤:

  1. 在BIOS里设置一下启动的顺序以及启动源。因为默认从硬盘启动已经不行了,所以要增加从其它途径启动的候选项,比如从网络、光盘、U盘等等。我前面已经制作了一个Windows 8的U盘启动盘,所以在BIOS里设置了从U盘启动。
  2. 启动后,会进入系统安装界面,在“立即安装”下有个“修复系统”的链接,点击进去,然后通“高级”选项卡,进入命令行模式。
  3. 在命令行中输入(一行接一行输入,每输入一行敲一个回车。要理解这些命令,就参见参考链接)
    • 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
  4. 在以上最后一行命令中,Windows 8是系统名称,你可以根据自己的情况,输入别的名称(Windows 7什么的,或者其他自己喜欢的名字)。
  5. 在输入完那行命令后,回车,这时命令行上会显示一串用大括号括起来的全局唯一标识符(GUID),这个在后面需要用到,所以必须注意它。它是类似这个样子的:{c0b8081e-deaa-11e1-be6e-0015833d0a57}
  6. 继续在命令行中输入:
    • bcdedit /default {<GUID>}
  7. 上面一行中就要输入之前记下的那个全局唯一标识符,如
    • bcdedit /default {c0b8081e-deaa-11e1-be6e-0015833d0a57}
  8. 继续输入(以下高亮的地方要注意,那都是示例输入,请根据自己的情况修改实际值):
    • 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
  9. 好,基本上就完成了。现在,退出命令行,使用启动盘里的修复工具,再修复一下。
  10. 修复完成后,重启,设置BIOS,将从启动顺序的第一项调整为从硬盘启动。
  11. 重启,系统又回来啦!!!

三、后记:

我做完以上步骤后,开机时,见到了那个蓝色的Windows 8 微标,心情非常激动!徽标消失后,EasyUS 的界面出来了,原来它很守信用,说好重启时要帮我将D分区空间分配给C分区的。在EasyUS磁盘空间分配结束后,进入到了入违的Windows 8系统里,我打开“我的电脑”,看到D盘已经消失,C盘的剩余空间已变得非常巨大了,非常高兴,默默感激EasyUS 软件,感激微软IT团队里告诉我bcdedit的兄弟,感激参考链接中的那位作者,感激网络!

四、参考链接:

Add comment

Loading