自己瞎捣腾的Win7下Linux安装之路-----理论篇

 

接着上回说道,我把双系统做好啦,开心。。。。

之后我就在想几个问题:

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了。。。。

这个引导加载程序是系统提供的,功能有以下几个方面:

  1. 提供开机选项,也就是上篇最后的那张图,选win7还是ubuntu。
  2. 直接指向可开机的程序段来开始操作系统
  3. 转交给其他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私房菜》

注:这真是一本好书,虽然很厚,但对于我这样的菜鸟来说,真的很值得一学。

 

 上篇链接:自己瞎捣腾的Win7下Linux安装之路-----图例篇

 

 

posted on 2013-12-01 21:23  半路@出家  阅读(457)  评论(0编辑  收藏  举报