先让我们看一下windows7的启动过程的常识:电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取活动主分区的PBR(分区引导记录,也叫dbr),PBR再搜寻分区内的启动管理器文件BOOTMGR,在BOOTMGR被找到后,控制权就交给了BOOTMGR。BOOTMGR读取\boot\bcd文件(BCD=BootConfigurationData,也就是“启动配置数据”,简单地说,Windwows7下的bcd文件就相当于xp下的boot.ini文件)。在我们启动Windows7后,BOOTMGR就会去启动盘寻找WINDOWS\system32\winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系统。

可以把这个过程简单地概括为:

BIOS->MBR->DPT->pbr->Bootmgr->bcd->Winload.exe->内核加载->整个windows7系统。

MBR->DPT->pbr->Bootmgr->bcd这一段可能出现的故障的解决。

mbr出现问题,主要是mbr代码被改写,因为被改写的代码不同,所以出错信息也各不相同。比如我们装了Windows7系统,分区格式化后,既进不了windows7,开机的时候会出现如图的错误提示:

解决的办法就是重写mbr。对于重写。对于重写mbr,我们所熟知的是在dos下用fdisk/mbr命令进行重写。Fdisk/mbr重写的mbr与xp是兼容的,但与Windows7已经不那么兼容了。实践表明:用fdisk/mbr命令重写windows7的mbr后,需要重建bcd,否则不能正常启动windows7。这里面的原因是fdisk/mbr命令改写了mbr中的硬盘签名。一般分区工具都是可以重写mbr的,比如diskgenius,它所重写的mbr与windows7是兼容的。也可以用bootrec/fixmbr命令重写。要运行ootrec.exe工具,必须启动WindowsRE。为此,请按照下列步骤操作:

插入windows7安装光盘,从启动电脑完成后,从启动电脑在完成后按下shift+f10键,调出cmd命令提示符。在cmd命令提示符中输入:

bootrec/fixmbr

回车。这样也就重写了mbr。

pbr出现问题,主要是pbr代码被改写,因为硬盘件不同所以出错信息代码被改写。比如WINDOWS7系统的活动分区,却被写入了适合于XP的pbr,这样,这样开机的时候就会出现ntldrismissing

简单的解决办法就是用bootrec/fixboot命令重写pbr:

插入windows7安装光盘,从启动完成后按下shift+f10键,调出cmd命令提示符。在中输入:

bootrec/fixboot

回车。这样也就重建了活动分区的pbr。

这里面还有一个常用的命令也要提下,这就是bootsect:

插入windows7安装光盘,从启动在完成后按下shift+f10键,调出cmd命令提示符。在cmd命令提示符中输入:

bootsect/nt60sys/mbr

回车。这个命令会改写活动分区的pbr,并同时会改写mbr,使得mbr和pbr适合于windows7和vista。

bootsect.exe程序位于windows7安装光盘的boot目录下,可以把这个文件提取出来,而bootrec.exe命令的使用就没这么方便了。所以BOOTSECT命令被应用得更为广泛一些。

Win7 启动修复的更多相关文章

  1. Win7启动修复MBR(Win7+Linux删除Linux后进入grub rescue的情况)

    事因:我的笔记本原先同时安装了Win7+Linux,昨天发现硬盘实在不够用(才60G,虽然还有个500G的移动硬盘),就想把里面的Ubuntu格了.都是用虚拟机做测试的多.后来就格了Ubuntu所在的 ...

  2. Win7启动修复(Ubuntu删除后进入grub rescue的情况)

    起因:装了win7,然后在另一个分区里装了Ubuntu.后来格掉了Ubuntu所在的分区.系统启动后出现命令窗口:grub rescue:_ 正确的解决方式: 1.光驱插入win7安装盘或者用USB启 ...

  3. win7启动出现蓝屏STOP: 0X0000007B

    解决方法:开机进BIOS,更改Interface Combination,即硬盘的接口种类,由默认的RAID改成了AHCI,保存,重启,一切正常. 事件过程: 今天开机进入win7,在start wi ...

  4. WIN7+Ubuntu双系统,win7启动不了

    在网上搜索了下,大多说的是因为重装引起的坏道, 我经过半天的搜索才找到了问题所在,首先看看下面连接的二楼大神给出的解决方案: https://forum.ubuntu.org.cn/viewtopic ...

  5. CentOS 7 添加win7启动项——修改默认启动项

    CentOS 7使用grub2引导启动,在win7之后装完CentOS再启动会丢失win7启动项. 首先,添加win7启动项,步骤如下: 1.使用root登陆系统 2.用文本编辑器打开 /boot/g ...

  6. 用U盘与移动硬盘制作WIN7启动盘(亲自实践)

    昨晚帮一个娃娃用移动硬盘里面的一个分区帮他制作成一个win7系统盘,为了以后万一换系统的时候方便.我自己有一个U盘坐的启动盘,移动硬盘没有倒腾过,看网上N多都是相互抄,制作都是WINPE系统的,相当蛋 ...

  7. win7启动apache-activemq报错及解决办法

    win7启动apache-activemq报错,如下: jvm 1 |jvm 1 | Java Runtime: Oracle Corporation 1.8.0_74 C:\Program File ...

  8. linux内核启动修复

    linux内核启动修复 首先看一下linux内核重要文件grub.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # gru ...

  9. [转载]-win7启动本地MongoDB的四种方式

    2016年04月07日 09:52:34 cherry__cheng 阅读数:19451 标签: win7启动本地MongoDB的四种方式快速启动本地mongodb 更多 个人分类: mongodb& ...

随机推荐

  1. 自学Python1.4-Centos内vim中文乱码问题

    自学Python之路 自学Python1.4-Centos内vim中文乱码问题 1. 登陆的系统---区域语言设置 1.1查看安装中文包: 查看系统是否安装中文语言包 (列出所有可用的公共语言环境的名 ...

  2. android progressdialog 对话框试用实例

    ProgressDialog 跟AlertDialog用法差不多,不同的是:ProgressDialog 显示的是一种"加载中"的效果,android 中 ProgressDial ...

  3. android handler msg的使用 实现进度条

    package com.app.threadtest; import android.app.Activity; import android.os.Bundle; import android.os ...

  4. Spring Cloud(三) --- hystrix

    Hystrix 说到Hystrix就得先说一下产生的背景等等,那就是雪崩效应. 在微服务中肯定存在多个服务层之间的调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服 ...

  5. JAVA8给我带了什么——流的概念和收集器

    到现在为止,笔者不敢给流下定义,从概念来讲他应该也是一种数据元素才是.可是在我们前面的代码例子中我们可以看到他更多的好像在表示他是一组处理数据的行为组合.这让笔者很难去理解他的定义.所以笔者不表态.各 ...

  6. 由asp的一个错误,看语言的不同:asp & java

    今天查看网页源代码,无意发现源代码尾部抛出asp的错误信息,但没有显示在网页上. 如果没查看源代码,还没发现asp运行代码出错了. 大致情况是这样,在asp中,有一个变量来表示用户当前使用的容量,注意 ...

  7. genetic model

    如果CC表示野生基型,CA因表示杂合型突变基因型,AA表示纯合型突变基因型.Recessive Model(隐性模型 ):AA VS (CA+CC);Dominant Model(显性模型):(CA+ ...

  8. jQuery倒计时代码(超简单)

    <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8&q ...

  9. 实现在某一指定位置的div在窗口滚动到指定位置的时候fixed定位

    HTML: <div class="top"> ·····内容 </div> <div class="scroll">< ...

  10. mysql盲注学习-1

    mysql: 1.left() //left()函数 left(a,b)从左侧截取a,的b位 2.mid() //mid()函数 参数 描述 column_name 必需.要提取字符的字段. star ...