接着上回说道,我把双系统做好啦,开心。。。。
之后我就在想几个问题:
1、在Ubuntu装好后,重启电脑却还是win7,等我用EasyBCD之后,才可选择使用装好的Ubuntu呢?
2、在用EasyBCD时,为什么device要选择boot挂载点呢?
3、在分区的时候,我只看到了/dev/sda1、 /dev/sda5、 /dev/sda6…,那sda2,sda3,sda4都哪去了?
4、分区又是怎么回事,怎么才能何理的进行分区呢?
几个概念:
硬盘的扇区:硬盘上面的一种单位,大小为512Byte。硬盘上的第一个扇区很重要,里面放着MBR和分区表。
MBR(Master Boot Record,主引导分区):在硬盘中的第一个扇区里面,大小是446Byte,里面放的是引导加载程序(Boot loader)。装双系统的关键哦~
分区表:记录整块硬盘分区的状态,占64Byte。这也解释了我们电脑里最多只能有四个盘(CDEF),每个盘的地址占16Byte,分区表共64Byte,最多存四个嘛(一切都是有原因滴)
引导加载程序(Boot loader):找到内核文件在哪里,应该如何开机(Boot loader是装系统时,操作系统自己提供的)。
硬盘的有关知识
硬盘由盘片、机械手臂、碰头与主轴马达组成,数据其实是在盘片上面,盘片又可分为扇区与柱面(文件系统的最小单元)。扇区大小是512Byte。整块硬盘的第一个扇区最为最要,因为里面放着MBR跟分区表。
通过参考柱面号来处理硬盘的,在分区表里面有64Byet,里面放着四组记录每个片区的启始与结束柱面号码。如下图,可以看到,第一个扇区放着的是MBR+分区表。表里放着后面四个分区的地址范围。在Windows下面这四块就是我们熟知的CDEF盘啦~ 这四个分区,称之为主分区(Primary)或扩展分区(Extended)。
这种分区的好处可以说是:1、安全性,一个盘坏了不至于其它受牵连。2、性能:缩小了查找范围,速度当然就上去啦~
分区的要求是:最多只能有四个主分区;要是有扩展分区,且只能有一个。那当我想分出四个以上的时候怎么办呢,这就引出了逻辑分区的概念。逻辑分区是在扩展分区内部划分出来的,扩展分区拿出一块扇区,用来记录逻辑分区里面的地址范围。如下图,在这里P1是主分区,P2是扩展分区。而在P2里面,又分出五个逻辑分区。接下来就能回答前面提出的第三个问题了,怎么给这五块区域起名字!
对于IDE接口的硬盘呢,名字起为/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd.对于SCSI/SATA/USB接口的硬盘呢,就起为/dev/sda一直到/dev/sdp。
所以对这五块区域起名:
P1:/dev/hda1;
P2:/dev/hda2;
L1:/dev/hda5;
L2:/dev/hda6;
L3:/dev/hda7;
L4:/dev/hda8;
L5:/dev/hda9;
而/dev/hda3和/dev/hda4呢?从1-4号都是保留给主分区或扩展分区的,就算没有,其它盘也不能占用此名字。所以这样算下来,只要是逻辑分区,必定是从5开始啦。
开机流程相关知识
当我按下开机按钮的时候,机箱里面发生了什么呢?
先说说这两个概念。BIOS(Base Input Output System):这个程序是直接写到主板上的一个内存芯片中,功能是:尝试调用存储设备中的开机程序。 CMOS:这个可以谷歌下,它是一个芯片,里面放着系统时间、CPU电压、I/O设备的地址、IRQ等等。总而言之,里面放的是硬件的各种参数。
1、按下开机按钮之后,电脑主动执行的第一个程序就是BIOS了,它会去加载CMOS记录的参数,通过参数去找到硬盘中第一个扇区的MBR。
2、接下来,找到了MBR后,将这里面的引导加载程序(Boot Loader)运行
3、引导加载程序的功能就是加载内核文件。(引导加载程序是装系统的时候提供的,所以它可以读取到内核文件)
4、内核文件:然后就该win7的win7,该xp的xp,该ubuntu的ubuntu了。。。。
这个引导加载程序是系统提供的,功能有以下几个方面:
- 提供开机选项,也就是上篇最后的那张图,选win7还是ubuntu。
- 直接指向可开机的程序段来开始操作系统
- 转交给其他loader
从上面这张图看它的执行过程。一块硬盘,分为四个区。前两个区放着windows和linux两个系统。在MBR里面放着可以同时识别windows和linux的引导加载程序。第一个扇区的MBR里有两个菜单M1:直接运行windows;M2:将引导工作交给第二个分区的启动扇区.第二个分区的启动扇区里面仅有一个菜单M1。
1、当想使用用windows系统时,选择M1时,就直接运行windows系统
2、当想使用Linux系统的时候,选择M2,那整个引导的工作就交给了第二个区的启动扇区,这个扇区里面就只有一个菜单,启动Linux。
这个过程也就解释了最初提的前两个问题。
总结下上面的图就是:1、每个区都有自己的启动扇区。2、实际可开机的内核文件是放在各分区内的。3、loader可直接指向或间接指向操作系统。
还有,再装双系统的时候,一般都采用先装Windows再装Linux。这是因为,Windows在装机的时候,会自动覆盖掉MBR及自己所在盘的启动扇区。如果你先装了Linux,再去装win7时,你在MBR里面关于Linux的引导程序就会被Windows覆盖掉了。唉,真是霸道呀~~
最初的问题已解决三个,还有最后一个,就是关于分区的研究,这是里面有很多讲究的东西,内容也很多。准备留在下篇文章中再继续学习、记录~~
参考文献:《鸟哥的Linux私房菜》
注:这真是一本好书,虽然很厚,但对于我这样的菜鸟来说,真的很值得一学。