这个问题曾经因为做一键还原系统研究过一些,现在整理出来吧,一为答疑解惑,二为探讨,因为我说的也不一定对。
计算机的引导是个看起来很高深的问题,因为一旦系统进不去了人们就很慌,不知道该怎么办,其实如果了解了引导的过程,有些问题就变得很简单了。
- 引导级别最高的是BIOS,被称为基本输入输出系统,它的级别高是因为没有它这个计算机都启动不起来。我们最常见的和BIOS打交道就是进入BIOS里面设置计算机的引导顺序:光盘,软盘,硬盘,USB等等,计算机加电后将按照BIOS里面设置的顺序挨个去寻找用于引导的指令,如果没有,那么找下一个,如果都没有,那么大概就会来一句“无法引导”之类的话。我们在安装系统的时候,一般使用光盘引导,所以把CD-ROM放在前面,就是这个原因;
- 不讨论光盘,只说硬盘,因为绝大多数情况都是硬盘引导的,当BIOS把引导权利交给硬盘后,计算机会去硬盘的主引导区寻找引导程序。这个主引导区是硬盘中最重要的部分,称为MBR(注意不是MBA),其中记录了如何引导,同时记录了硬盘的分区信息,就是硬盘的分区表,所以一旦这个东西被破坏,那么硬盘接下来的面临的基本上就是重新分区,全盘格式化了。不过一般这个MBR是不会被碰触的;
- 如果MBR中没有引导信息,那么计算机系统会读取分区表,然后挨个的去每个分区搜索引导文件。理论上讲,每一个激活的主分区都是可以作为引导盘的,只要这个盘里面有引导程序即可,但是因为系统优先去引导第一个主分区,所以第一个主分区是兵家必争之地。Microsoft的操作系统基本上都是把引导信息写入第一个分区的,也就是我们熟悉的C盘,所以建议不要将系统安装在其他的分区,因为引导和系统并不在一个分区中,很容易出问题;
- Linux系统使用的是Grub程序进行引导的,从理论上讲,Grub这个程序可以引导任何它可以识别的操作系统,当然包括Windows。它的原理是改写MBR信息获得高于硬盘分区的引导优先级,MBR很重要,但是空间有限,只有一个扇区,Grub把自己安装在其他的分区,然后修改MBR的引导信息让引导跳转到Grub所在的硬盘空间进行引导,注意:这个时候引导顺序还没到硬盘分区那一步,所以所有的操作系统都还没有被引导;
- 此时Grub将所有识别的操作系统列出来让用户选择进行引导,当然你也可以手动输入Grub指令来引导,这个就属于高手范围了。此时才将引导权交给硬盘的分区进行引导;
- 很多用户是先装Windows,然后在其他分区上安装Linux操作系统,这个时候不能把引导程序装在主分区,因为这样会改写主分区的引导文件,导致原来安装在主分区的Windows无法启动,所以一定要把Grub和Linux的引导文件装在其他的分区;
- 有些用户把Grub安装在其他的分区了,后来又在Windows下把Linux和Grub所在的分区格式化了,那么这个时候系统是进不去的,因为Grub在安装的时候改写了MBR,以便可以截获引导权,但是格式化掉之后,MBR还会将引导权交给Grub所在的分区,但是此时Grub已经被删除了,所以系统无法引导,解决的方法是重写MBR,让它恢复本来的还没装Grub时候的样子。方法是使用DOS引导系统,使用 fdisk /mbr 命令进行重写;
- 因为Grub有这种风险,所以在很多时候我们在安装Linux的时候并不安装Grub,而是用其他的专门的引导软件,这些软件和Grub的原理是一样的,可是安装更简单,可以在Windows和Linux操作系统上直接安装,而且,当被卸载的时候会重写MBR,不用担心系统无法引导。用这种方法,在安装Linux的时候选择不安装引导程序,再次开机是无法进入Linux系统的,这时候进入Windows安装引导软件,再次重启,引导软件将会截断硬盘引导,此时就可以看到Linux系统也出现在列表里面了。这种引导软件很多,我记得诺顿似乎有一个,名字记不清了,感兴趣的朋友可以搜索一下;
- 现在有些杀毒软件声称在任何操作系统引导之前就可以进行杀毒,不要觉得他们是天方夜谭,这是可以实现的,原理和Grub是一样的,就是在引导系统前进行截断,装载自己的程序进入内存杀毒,完事儿之后把引导权交给操作系统;
- 用MBR还可以做更多的事。IBM曾经在笔记本上推出了一键还原功能,推出伊始业界大哗,这也太酷了吧,太方便了吧,可是研究下原理就不难发现,其实IBM的一键还原功能非常简单,说到底还是引导权截断,当然也是要重写MBR,发给系统一个中断指令,当用户按下某一个按键的时候,把引导权交给一个隐藏的主分区(这个分区正常情况下没有被激活,所以正常启动不会被引导),隐藏分区中有一个很简单的操作系统,简单到只有三五个文件,然后调用还原程序把隐藏分区的内容写入被还原的分区,就搞定了,如果你的隐藏分区中的操作系统足够强,比如是Win PE,那么你还可以干更多的事。难吗?能实现这个功能的公司不下千百家,可是只有人家想到,这就是创意了吧;
差不多就写这些吧,毕竟这么多的问题不是这么点儿文字就能说清楚的,欢迎讨论,以便老杨完善。
像我这样什么都不懂的,以后可怎么办啊!
@Yaner 呃,用一个网友的QQ签名回复你吧:学习永远也不晚
看来以后电脑维护不用愁了!
@快乐臭虫 这个,很多问题我也解决不了
通俗易懂。。学习了。感谢老杨。
@chanthon 不客气,能看懂就好
学习了,谢谢
@大剑 不客气,呵呵
呵呵 我也晕了。。
一上来就该说说这是干嘛用的啊
@卢松松 就是计算机的启动过程,计算机是怎么启动的
太专业了,我还是占个作为走人吧,免的头晕,哈
@laofan 我已经尽量写得通俗了
微軟應該跟盜版商合作開發,或者授權……
@蓝冰 嗯,这个很有道理
一直都在用盗版xp
作者啥都做好了……
N种备用方法(不是洪磊哈)
@蓝冰 看来盗版还是很有好处的,哈哈
@老杨 那是,微软不了解中国人民,盗版都是本土作者,他们更了解中国用户的习惯和需求。
@蓝冰 微软应该给中国开发一个中国特别版的操作系统就好了
写的很有条理性,受益匪浅,顶一下。
昨晚我同学装两个系统后来windows都进不去了,用grub引导了一下,windows可以进,但是都是一次性的,第二次重启的时候还要引导,但是两个系统都好用。好是奇怪!我以前引导的咋就没有问题……问题根源还是对“引导”理解不透彻
@Hope 可以把grub删除,然后安装一个引导程序
@老杨 恩,试一下。哈哈