欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安装linux后无法启动windows 7 解决方法

程序员文章站 2022-06-30 21:58:16
...
  前几天因为笔记本有点慢,心血来潮想试着换成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