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

之后我就在想几个问题:

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. R语言入门系列1--数学狗还是做数据好了

    nanana,作为一个不合格的数学专业学生,脑袋不好使,又穷逼,只好学点儿实用的东西,希望能养活自己~~~ 不瞎哔哔,想做数据方面工作的时候在犹豫是学R还是学python,一点儿python基础都没有 ...

  2. Spring IOC 依赖注入的两种方式XML和注解

    依赖注入的原理 依赖注入的方式---XML配置 依赖注入的方式---注解的方式 Spring 它的核心就是IOC和AOP.而IOC中实现Bean注入的实现方式之一就是DI(依赖注入). 一 DI的原理 ...

  3. Oracle 行转列(不固定行数的行转列,动态)(转)

    http://bbs.csdn.net/topics/330039676 SQLSERVER :行列转换例子:  http://www.cnblogs.com/gaizai/p/3753296.htm ...

  4. HighChats图表控件显示精度小数点的方法

    相信大家对highchats这个图表控件并不陌生,最近在项目中用到它,但是某些字段需要显示为小数点,顾查找资料文档发现下面两个方式可以实现: 初始化时候添加如下两个参数 tooltip:{    fo ...

  5. ldap + kerberos + google authentication 实现两步验证

    第一步:ldap + kerberos 整合  ,参考之前的文章 第二步:google authentication 安装配置,参考之前的文章 第三步:整合 ldap + kerberos + goo ...

  6. js限制文本框只能输入数字方法小结(转)

    这篇文章主要分享下js代码限制文本框中只能输入数字的多个实例,学习下js控制文本框中输入数字的方法,需要的朋友可以参考下   有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数 ...

  7. Android基本布局

    android基本布局有三种:LinearLayout,RelativeLayout,FrameLayout. 一.LinearLayout 1,这是一种垂直布局(或者水平布局),可以通过下面这一句来 ...

  8. IOS BLE蓝牙4.0

    前言: 自己做的项目里面有这么一个功能,总结归纳一下. 先导入必要的框架  CoreBluetooth.framework 在要用到蓝牙的文件里面导入以下头文件 #import <CoreBlu ...

  9. (spring-第21回【MVC基础篇】)SpringMVC一点就通

    概述 Spring MVC通过一套MVC注解,让POJO变成处理请求的控制器,无需实现任何接口,同时,SpringMVC还支持REST风格的URL请求:注解驱动和REST风格的Spring MVC是S ...

  10. BeautifulSoup-find,findAll

    BeautifulSoup的主要函数使用 from bs4 import BeautifulSouphtml = """<html><head>& ...