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

之后我就在想几个问题:

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安装之路-----图例篇

自己瞎捣腾的Win7下Linux安装之路-----理论篇的更多相关文章

  1. 自己瞎捣腾的Win7下Linux安装之路-----图例篇

    写在前面 网上很多这方面的教程,我也是参考他们的文章和一些书籍才弄成功.没啥创新性,只为记录下来,以供自已理解和以后复习. 所谓工欲善其事,必先利其器.俺想学习Linux,当然是要先装一个Linux( ...

  2. Win7下硬盘安装Linux双系统

    Win7下硬盘安装CentOS6.2 一.准备工作:划出磁盘空闲空间和准备安装文件  参考文献: [Win7下硬盘安装Linux总结(CentOS)]来源:Linux社区  作者:lixianlin ...

  3. Windows 7硬盘安装CentOS 6.4 双系统 (WIN7下硬盘安装Linux(Fedora 16,CentOS 6.2,Ubuntu 12.04))

     WIN7下硬盘安装Linux(Fedora 16,CentOS 6.2,Ubuntu 12.04) 最近在看<鸟哥私房菜:基础学习篇>,觉得很不错,想要用U盘装个windows 7 和 ...

  4. win7下硬盘安装win7+CentOS双系统方法

    原文:win7下硬盘安装win7+CentOS双系统方法 LinuxCentOS安装大致介绍: win7下硬盘安装win7+CentOS双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. ...

  5. win7下硬盘安装win7+linuxUbuntu双系统方法

    Linux安装大致介绍: win7下硬盘安装win7+linuxUbuntu双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. 系统选择 linux unbuntu12.04.2-desk ...

  6. Oracle win32_11gR2_database在Win7下的安装与卸载

    Oracle win32_11gR2_database在Win7下的安装与卸载 by:授客 QQ:1033553122 Oracle的硬件要求 在安装oracle之前,请检查一下自己的电脑硬件是否复合 ...

  7. Win7下硬盘安装fedora17

    Win7下硬盘安装fedora17 这几天经过很多次的百度和实验,终于成功的在我的x64机子上装上了fedora17,以此分享给大家,希望能给大家帮助. 一.准备工作: 1.工具,因为我们电脑上大部分 ...

  8. Windows驱动开发技术详解HelloWDM例子win7下无法安装

    HelloWDM例子编译完成之后,在win7下安装显示 查看setupapi.dev看到如下信息 这个C:\MyDriver_Check目录完全不是我指定的,我放到c盘根目录下 查看inf [Sour ...

  9. win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件

    问题是:当我点击QTP的setup.exe进行QTP安装时,出现提示[少了Microsoft Visual c++2005 sp1运行时组件,安装时会提示命令行选项语法错误,键入“命令/?”可获取帮肋 ...

随机推荐

  1. C++模拟C#事件委托机制(二)

    原文 来自于http://www.cnblogs.com/netssfy/archive/2010/02/02/1662056.html 为了解决非法地址访问的冲突,首先需要知道发生该错误的原因是什么 ...

  2. VisualSVN5.0.1补丁原创发布

    VisualSVN5.0.1补丁原创发布

  3. asp.net生成随机密码

    public string RandCode(int n) { char[] arrChar = new char[]{ 'a','b','d','c','e','f','g','h','i','j' ...

  4. 初学mongodb笔记

    先下载下mongodb,这里官网下载,https://www.mongodb.com/download-center?jmp=nav,根据自己的系统选择下载, 然后解压一下:会有这个文件夹\mongo ...

  5. SQLserver技巧

    (1) SQL标记  连接连个表然后用 DATA  COMPAREDATA进行区分select 'DATA ' ,'列名1','列名2','列名3' from  表 union select 'COM ...

  6. HTML 5 <script> 标签

    HTML 4.01 与 HTML 5 之间的差异 async 属性是 HTML 5 中的新属性. 在 HTML 5 中,不再支持 HTML 4.01 中的一些属性. 提示和注释 注释:脚本按照如下方式 ...

  7. 添加网络打印机的步骤(xp和win2008)

    1.如题,设置好打印机去的ip地址和子网掩码等信息. 2 .xp不像其他新的系统那么好用那么智能...只能慢慢来 如果是xp,注意,请添加网络打印机的时候选  :添加本地打印机,,记得哦 然后如图 然 ...

  8. Java Json Object 互转

    官方网址: http://json-lib.sourceforge.net/ 需要准备的jar包 1. json-lib-2.4-jdk15.jar        目前最新版, 下载地址  http: ...

  9. Java中静态内部类的理解

    class A { public void func() { A a=new A(); C c=a.new C(); } public static void main(String[] args) ...

  10. python selenium与自动化

    大学是学习过java,但是工作中没用,忘完了,而且哪怕以后有了机会,就是很不愿意去学这个语言,开始喜欢上了c#,但是随着学的升入,感觉.net太庞大了,要学习那么多,总感觉我学这个要做什么,感觉要做的 ...