最近看了下鸟哥的Linux私房菜基础学习篇,并且也在自己的笔记本上做了做实验,也有了些关于多重引导、分区、开机运行过程和grub的一些体会,现就把它写下来,希望日后用时可以回过头来看看这篇文章。
首先来介绍分区和多重引导
我相信很多人都装过双系统,包括我在内。之前我所装的都是在一个系统装好之后,在进入这个系统以这个系统为环境在装另一个。例如我先装一个win7系统,分为4个分区,c,d,e,f,c为主分区,其他为逻辑分区。然后在d盘在用镜像装一个ubuntu系统。也就是说这样的装法当你所装的第一个系统坏掉以后是没有办法启动第二个系统的。而且在你所装的第一个系统内可以看到d盘空间变小,原因是你装了ubuntu。这是为什么呢?现在我也没有想明白。
上述的装法是你将一块硬盘分为一个主分区,一个扩展分区(逻辑分区则是由扩展分区在分出来的),win7是装在主分区上,而Ubuntu装在逻辑分区的。而现在我所讲述的将是你将一块硬盘分为2个主分区,一个扩展分区,win7和Ubuntu分别装在两个主分区上,而扩展分区供其他用途之用。这样,当你进入win7时你将看不到Linux所占用的分区,也就是它对于win7是隐藏的。装好之后当你开机时你就可以自由选择所要启动的系统了。那么这个选择是如何实现的?我们先来讨论一下电脑的开机过程。
当按下开机按钮后,电脑首先运行的是BIOS这个固化好的一个程序,它会检测你计算机中的一些设备,并根据你对BIOS的设置去启动第一块硬盘(如果你只有一块硬盘那就可以忽略了),然后找到该硬盘的主引导分区(MBR),这个MBR在硬盘的第一个扇区,只占用很小的空间,里面会存放主引导程序(bootloader),这些主引导程序的作用是帮你把对应的操作系统内核加载到内存中,接下来的事CPU的控制权就交给操作系统了。说白了开机过程就是BIOS,MBR,BOOTLEADER,OS。
在明白了开机过程之后,我们在回到自由选择系统这个话题。当你按第二种方法装好两套系统后,其实各系统的bootloader都是装在MBR或者该系统所在分区的启动扇区(也即第一个扇区)上。Win7默认装在MBR上,但当你装Ubuntu时可以选择bootloader的安装位置。所以如果你将Linux的主引导程序装在该分区的启动扇区上的话,MBR会找到Linux的主引导程序所在的启动扇区,然后在由Linux的主引导程序来加载kernel。这就是所谓的多重引导。
在补充一点,对分区而言,一块硬盘中的分区主分区与扩展分区最多只能为4个,而扩展分区最多为一个。