自己瞎捣腾的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了。。。。
这个引导加载程序是系统提供的,功能有以下几个方面:
- 提供开机选项,也就是上篇最后的那张图,选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私房菜》
注:这真是一本好书,虽然很厚,但对于我这样的菜鸟来说,真的很值得一学。
上篇链接:自己瞎捣腾的Win7下Linux安装之路-----图例篇
自己瞎捣腾的Win7下Linux安装之路-----理论篇的更多相关文章
- 自己瞎捣腾的Win7下Linux安装之路-----图例篇
写在前面 网上很多这方面的教程,我也是参考他们的文章和一些书籍才弄成功.没啥创新性,只为记录下来,以供自已理解和以后复习. 所谓工欲善其事,必先利其器.俺想学习Linux,当然是要先装一个Linux( ...
- Win7下硬盘安装Linux双系统
Win7下硬盘安装CentOS6.2 一.准备工作:划出磁盘空闲空间和准备安装文件 参考文献: [Win7下硬盘安装Linux总结(CentOS)]来源:Linux社区 作者:lixianlin ...
- 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 和 ...
- win7下硬盘安装win7+CentOS双系统方法
原文:win7下硬盘安装win7+CentOS双系统方法 LinuxCentOS安装大致介绍: win7下硬盘安装win7+CentOS双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. ...
- win7下硬盘安装win7+linuxUbuntu双系统方法
Linux安装大致介绍: win7下硬盘安装win7+linuxUbuntu双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. 系统选择 linux unbuntu12.04.2-desk ...
- Oracle win32_11gR2_database在Win7下的安装与卸载
Oracle win32_11gR2_database在Win7下的安装与卸载 by:授客 QQ:1033553122 Oracle的硬件要求 在安装oracle之前,请检查一下自己的电脑硬件是否复合 ...
- Win7下硬盘安装fedora17
Win7下硬盘安装fedora17 这几天经过很多次的百度和实验,终于成功的在我的x64机子上装上了fedora17,以此分享给大家,希望能给大家帮助. 一.准备工作: 1.工具,因为我们电脑上大部分 ...
- Windows驱动开发技术详解HelloWDM例子win7下无法安装
HelloWDM例子编译完成之后,在win7下安装显示 查看setupapi.dev看到如下信息 这个C:\MyDriver_Check目录完全不是我指定的,我放到c盘根目录下 查看inf [Sour ...
- win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
问题是:当我点击QTP的setup.exe进行QTP安装时,出现提示[少了Microsoft Visual c++2005 sp1运行时组件,安装时会提示命令行选项语法错误,键入“命令/?”可获取帮肋 ...
随机推荐
- C/C++中的NULL讨论和总结
代码如下 #include <stdio.h> int main(){ int *p; p = NULL; printf("p=0x%x\n",p); typedef ...
- 【EXCEL】冻结窗口的设置
在excel使用时,表格内容很多时,为查看方便,需要冻结一部分内容,冻结窗口分为以下几种情况,分别进行解析. 工具/原料 excel 冻结首行 1 打开需要的表格,点击“视图”----冻结窗格,点击“ ...
- 简述Git(Linux、Android~~开源)
Git——源代码管理软件,Android及Linux内核,驱动开发的过程中涉及的大量的源代码,都由Git管理 (一)安装Git Ubuntu Linux10.10或更新的版本,使用下面命令来安装Git ...
- sis9280触摸ic 基于rk3288 的安卓4.4的 多点触摸
前言:sis提供的驱动ic.基于rk3288的安卓系统.亲眼看到人家完成一次移植.很激动的记下一些东西..虽然我看不懂.其实现在的工作也不需要看懂.叫人协助就好,只需要知道有这个东西. 1linux下 ...
- Linux内核分析—完成一个简单的时间片轮转多道程序内核代码
---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10 ...
- 用DropBox分享Unity3D的Web应用
用U3D做好游戏好想分享给亲朋好友体验怎么办?导出exe,apk都可以,只是下载始终是个门槛. 幸好还可以导出web版(虽然要安装unity3d的插件),但自己没有服务器怎么办,没关系~,现 在是云时 ...
- 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit
在这篇文章中我们将讨论如何获取安卓.苹果设备中的微信聊天记录,并演示如何利用后门通过Metasploit对安卓设备进行控制.文章比较基础.可动手性强,有设备的童鞋不妨边阅读文章边操作,希望能激发大家对 ...
- mybatis中的#{}和${}
#{}:相当于预处理中的占位符?. #{}里面的参数表示接收java输入参数的名称. #{}可以接受HashMap.简单类型.POJO类型的参数. 当接受简单类型的参数时,#{}里面可以是value, ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
- html基础学习
<html> 与 </html> 之间的文本描述网页 <body> 与 </body> 之间的文本是可见的页面内容 <h1> 与 </ ...