磁盘的分区

装过系统的人都知道必须要分区后才能安装系统,形象点的说比如windows里C:、D:之类的东西;如果你要问硬盘为什么要分区,我也说不上来很严格的原因,首先从使用习惯上来讲,我们不希望数据杂乱无章堆积在一起,其次,如果不分区,如何才能在一块硬盘上使用不同的文件系统(下面讲到)呢,学院派的说法是:数据安全和性能考虑。

先要说硬盘中最最重要的第一扇区,因为整块硬盘的重要信息都在这里:

MBR(Master Boot Record 主启动记录):开机引导程序就在安装在此,占用446byte

  

DPT(Disk Partition table 硬盘分区表):记录硬盘上的分区元信息,占用64byte

MBR是如何工作的呢,不用深究,反正就是系统开始时会主动读取数据的地方,这样才能引导进行操作系统的启动;DPT要仔细的讲讲,分区的大致意思就如同抢地盘,不过人家比较规矩,按照柱面(最小的分区单位)分配,比如第一个分区从柱面1-200,第二个分区201-500,但三个分区501-1000...(省略并非可以无限分配下去哦)

图1

  

图2

为啥说不能一直分配下去呢,技术柱面数量足够,因为上面说到硬盘分区表只有64个字节,每条分区记录需要占用16字节,最多只能分4个。疑问在此:我的电脑怎么分了5个(c\d\e\f\g)?

  

其实我说的4个分区是所谓的主分区,为了能支持很多分区引入了扩展分区的概念, 也就是说,可以使用DPT中一条记录来记录扩展分区的信息,然后在扩展分区中再继续划分逻辑分区,而逻辑分区的分区信息则记录在扩展分区的第一个扇区中,如此则可以像链表一样划分出很多分区来。但注意,一个分区表中可以有1~4条主分区,但是最多只能有1个扩展分区。

  

图3

  

图4

分区表之间是如何关联的,详细讲一下,分区表是一个单向链表,第一个分区表,也就是位于硬盘第一个扇区中的DPT,可以有一项记录扩展分区的起始位置柱面,类似于指针的概念,指向扩展分区(图3),根据这项记录我们可以找到扩展分区的某柱面0磁头1扇区(CHS),而这个扇区中又存放了第二个分区表,第二个分区表第一项记录一般表述了当前所在的逻辑分区的起始/终止柱面,第二项记录表述了下一个逻辑分区所在的0磁头1扇区(CHS),第三、第四项记录不存任何信息(图4)。

请看下图,主引导记录/分区表所在的是硬盘第一个分区,基本分区1、基本分2、基本分区3都是主分区、扩展分区内有2个逻辑分区,每个逻辑分区的第一个扇区都是分区表。

分区后的系统启动

之前提到MBR中安装的引导加载程序,他的作用是什么?

① 提供开机菜单选项:可以供用户选择启动哪个操作系统,这是多重引导功能。

② 加载操作系统内核:每个操作系统都有自己的内核,需要引导程序来加载 

③ 转交给其他引导程序:可以将工作移交给其他引导程序来进行上述操作。

其实引导加载程序除了可以安装在MBR中,还可以直接安装在每个分区的引导扇区(DBR)中,注意下,每个分区(主分区、逻辑分区)都有一个自己的启动扇区,专门用来安装引导加载程序,如上图左边“图表3分区结构”。

系统启动过程

① 首先,BIOS启动后,读取硬盘第一个扇区MBR中的引导加载程序(可能是windows或者linux的grub) 

② MBR中的引导程序提供开机菜单,你可以选择1)直接加载windows 内核 2)将工作转交给windows 分区内的引导扇区中的加载程序,让他自己去加载内核 3)转交给linux分区内引导扇区,让他去加载linux. 

③ 根据用户选择的选项和引导加载程序中记录的分区,到分区表找对应的分区柱面号等分区信息,启动内核或者分区加载程序。

Window安装时默认会自动将MBR和windows所在分区的引导扇区都装上引导程序,而不会提供任何选项给用户选择,因此如果之前装过其他操作系统,然后再另外装一个windows时,会把公用的MBR覆盖掉,如此,原来的操作系统就无法启动了。

如果先装windows,然后装linux,linux 会覆盖MBR,然后让用户选择是否将windows等其他操作系统的启动项添加进来,如果你选择了添加进来,那么你在开机时就会有两个选项让用户进行选择了。

文件系统

文件系统也是很大很复杂的话题,我们仍然以比较通俗、粗颗粒度来讲解,试想一下,我们的文件如何对应到磁盘的扇区上呢,所以光有底层的概念 磁道 扇区是没有用的,需要更加抽象的数据类型或结构来抽象底层的细节。

文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract data type)。文件系统是一种用于向用户提供底层数据访问的机制。它将设备中的空间划分为特定大小的块(扇区),一般每块512字节。

数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。

不过,文件系统并不一定只在特定存储设备上出现。它是数据的组织者和提供者,至于它的底层,可以是磁盘,也可以是其它动态生成数据的设备(比如网络设备)。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

电脑知识:磁盘分区相关知识笔记!相关推荐

  1. 公共基础知识:地震相关知识

    公共基础知识:地震相关知识 近几年,我国经常遭受地震灾害的侵扰,有很多无辜的生命及财产因此而受难.那么对于危害我们生命及财产安全的的地震,大家又了解多少呢?下面就和牡丹江中公教育一起了解. 一.地震概 ...

  2. esp分区创建 linux_Linux 基础知识: GPT分区基础知识及如何在GPT分区上安装WIN7

    大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...

  3. 免费域名注册的一些知识以及域名解析相关知识

    一.通常免费域名申请的条款(供参考) 1,只提供免费域名申请服务,不提供网页存放空间. 2,网站必须符合中国有关法规,否则本站将禁用其帐号. 3,不得在发送宣传邮件(垃圾邮件)时写本站提供的免费域名. ...

  4. 公共基础知识和计算机相关知识了解农业常识,公共基础知识:农业为本

    原标题:公共基础知识:农业为本 从古至今,我们一直都在研究农业,关于农业的著作也是数不胜数,我们主要了解以下几部作品. 一.知识介绍 1.氾胜之--<氾胜之书> 西汉时期重要的农学著作,我 ...

  5. 数字电路基础知识——反相器的相关知识(噪声容限、VTC、转换时间、速度的影响因素、传播延时等)

    一.反相器的结构 CMOS反相器由一个PMOS管.一个NMOS管.一个输入源Vi和一个直流电源Vcc组成. 具体的真值表如下图所示: ①当Vi为低电平时,对于下管有Vgs<Vgs(th),NMO ...

  6. 【linux实操篇之磁盘分区】为你的虚拟机添加一块硬盘

    目录 前言 分区的基本知识 分区的方式 linux分区原理介绍 硬盘说明 查看系统的分区和挂载情况 实操-给linux添加一块新硬盘 (重要) 步骤一:虚拟机添加硬盘 步骤二:分区 步骤三:格式化 步 ...

  7. 数字IC设计---反相器相关知识

    反相器是数字电路中最基本的门电路之一,由NMOS和PMOS组成.学过半导体器件的都对此结构比较清楚. 下面我总结了一些反相器相关的知识: 一.反相器的结构 反向器由NMOS和PMOS组成,栅端(G)相 ...

  8. 计算机里创建本地磁盘分区,韩博士教你怎么用本地模式将电脑磁盘分区

    相信有些人在运用"韩博士"进行系统重装的时候,会出现磁盘空间不足,需要磁盘分区的问题,如下图所示. 那么该如何解决电脑磁盘分区的问题呢.大家赶紧看一看下面的具体步骤吧. 准备工具: ...

  9. 【PIC单片机】-- 中断、定时器相关知识

    文章目录 文章目录 00 写在前面 01 中断相关知识 02 定时器相关知识 03 定时器相关寄存器 04 定时器相关电路 05 定时器补充 06 结尾 00 写在前面 该系列的文章,源自于担任过PI ...

最新文章

  1. led显示屏背景墙设计_全彩LED显示屏比例设计因素都有哪些?
  2. BlackHat Arsenal USA 2018 ToolsWatch黑客工具库
  3. 9个提高代码运行效率的小技巧你知道几个?
  4. python用于人工智能哪些领域_Python那么火?哪些领域可以用它?
  5. Django最新版(1.10.5)在SAE上面部署流程
  6. 命令行 降低IE版本 IE11降到IE8
  7. 松本行弘:Ruby之父佳作松本行弘的程序世界
  8. php 有道翻译api,php有道翻译api调用方法实例
  9. Arango db 快速入门
  10. PowerDNS Authoritative Server 3.2 RC3 发布
  11. 高射炮打蚊子丨用Visual Studio 2017写最初级的C语言程序
  12. learn.log - 进程管理器fastcgi原理及fastcgi_param详解
  13. 企业微信报错,提示无权限访问
  14. AndroidManifest.xml中常用属性及含义
  15. PCM开发板模块实验指导--有刷直流马达速度位置控制实验
  16. python:keyword --- 检验Python关键字
  17. linux中vim保存快捷键设置,Linux中vim操作快捷键非常简洁
  18. 汽车变速器(自动挡)英文缩写
  19. Java中使用SMTP协议发送电子邮件
  20. 蓝懿学习 练习总结

热门文章

  1. ASP.NET AJAX(服务器回调)
  2. 《鸟哥的linux私房菜-服务器篇 第三版》 RHCA亲授
  3. Ti的DM368系列芯片的所有PDF资料汇总
  4. 3D 相机halcon算子,持续更新
  5. Supervised Descent Method and its Applications to Face Alignment
  6. android让文件按顺序列表,Java/Android 获取文件夹的文件列表(file.listFiles())并按名称排序,中文优先...
  7. python的socket连接不上_Python套接字只允许一个连接,但在新的连接上断开,而不是拒绝...
  8. python 随机获取数组元素_Python创建二维数组的正确姿势
  9. 土压力图怎么画_电气系统图怎么画?
  10. git常用配置(指令)