日期:2014-05-16  浏览次数:20836 次

安装linux后无法启动windows 7 解决方法
  前几天因为笔记本有点慢,心血来潮想试着换成ubuntu操作系统试试。于是试着在家里台式机安装,按着网上的教程安装成功,启动菜单出现双系统,进入ubunt,就以为安装成功了。第二天老丈人说电脑用不了,一看果然windows 7进不去了。
  再网上找了各种资料尝试,下了各种windowPE制作中U盘启动盘进行修复也没成功。想想算了还是研究一下原理,把这几天的研究记录一下。
  grub2dos:linux下开源多系统引导程序
  grldr:grub的主引导程序,按照menu.lst配置引导系统
  bootmgr:windows7(NT6.1)的主引导程序,按照boot/bcd配置引导系统
  BCD:Boot Configuration Data,windows多系统引导配置
 
  计算机引导过程说明:
  硬盘MBR -->分区PBR(可选) -->主引导程序(grldr、bootmgr)-->查找配置(menu.lst/bcd)-->引导。
  一般windows 的MBR逻辑是遍历所有分区,找一个活动扇区,从PBR启动主引导程序
  所以想进行多系统引导有3种方法可以实现
  1、不修改MBR,使用windows主引导程序,把其它系统配置在bcd中(bcd edit)
  2、修正主引导记录,mbr使用grub使用menu.lst
  3、不修改MBR,修改PBR,使用grub

  之前之所以windows启动不来,是因为把C盘的PBR写入grub,当然启动不起来了。我的解决方式是不用重新安装windows 7,也用不着fixmbr命令
  1、安装bootice,把MBR换成grub2
  2、把grldr和menu.lst拷贝到启动目录(一般是c盘)
  3、修改menu.lst,使用chainloader /bootmgr直接引导windows,而不是使用chainloader +1加载第一扇区引导程序的方式(这是引导grub默认不兼容的操作系统,需要PBR安装操作系统本身的引导程序)
  我的menu.lst
 
default=windows7
timeout=10
color=green/black light-gray/blue

title windows7 
chainloader /bootmgr
boot

title Ubuntu
root (hd0,5)
kernel /vmlinuz root=/dev/sda6
initrd /initrd.img
boot