热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

磁盘的基础知识——扇区、柱面、磁道、族

磁盘的物理结构磁盘是由若干块坚硬金属材料制成的并涂以磁性介质的盘片压制而成。每个盘有两面,每面各有一个磁头,都可记录信息。要了解硬盘的物理结构,需要弄懂磁道、扇区、柱面、簇等几个概念.磁

磁盘的物理结构

磁盘是由若干块坚硬金属材料制成的并涂以磁性介质的盘片压制而成。每个盘有两面,每面各有一个磁头,都可记录信息。要了解硬盘的物理结构,需要弄懂磁道、扇区、柱面、簇等几个概念.

磁道:磁盘上划分了很多个同心圆,这些同心圆就是磁道。但打开硬盘,用户不能看到这些,实际上磁道是被磁头磁化的同心圆。磁道之间是有间隔的,因为磁化单元太近会产生干扰.

扇区:每条磁道被分成若干等份的区域,每个区域就是一片扇区。扇区是硬盘数据存储的最小单位.

柱面:假如一块磁盘只有3个磁盘片,每块盘片的磁道数是相等的.从外圈开始,这些磁道被分成了0磁道、1磁道、2磁道……。具有相同磁道编号的同心圆组成面就称作柱面。为了便于理解,柱面可以看作没有底的铁桶。柱面数就是磁盘上的磁道数。柱面是硬盘分区的最小单位.

一个硬盘的容量=柱面数(或磁道数)×磁头数×扇区数×每个扇区的大小(通常是512字节)

簇:扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2、4、8、16、32、64个扇区。族有时也称作磁盘块(block)。它是属于文件系统层面的概念,是文件系统层中数据存储的基本单位。

磁盘的分区

要掌握硬盘的分区,需要掌握MBR、扩展分区、逻辑分区的概念.

硬盘里分为两个区域,一个是放置该硬盘的信息区,称之为主引导扇区(master boot recorder,MBR),一个是实际文件数据放置的地方。其中,MBR是整个磁盘最重要的区域。一旦MBR物理实体损坏时,则该磁盘就差不多报废了.一般来说,MBR有512个字节,且可以分为两个部分.

  1. 第一部分有446个字节,用于存放引导代码,即bootloader.
  2. 第二部分有64个字节,用于存放磁盘分区表(Disk Partion Table,DPT)。每个分区的信息需要用16个字节来记录,因此,一块磁盘最多可以有4个分区。

注:通常所说的"磁盘分区"就是指修改磁盘分区表。它定义了"第n个磁盘块是从第x个柱面到第y个柱面".因此,当系统要读取第n个磁盘块时,就是去读硬盘上第x个柱面到第y个柱面的信息.

    分区有两种,一种是主分区,一种是扩展分区。在一块磁盘中,扩展分区只能有一个,所以这4个分区可以是4个主分区或者3个主分区加1个扩展分区,如下所示:

P + P + P + P

P + P + P + E

其中P表示主分区(Primary),E表示扩展分区(Extend)

    重点说明的是,扩展分区不能直接使用,还需要将其划分为逻辑分区.这样就产生了一个问题,既然扩展分区不能直接使用,但为什么还要划分出一定的空间来给扩展分区呢?这是因为,如果用户想要将硬盘划分为5个分区的话,那该如何? 此时,就需要扩展分区来帮忙了.

由于MBR仅能保存4个分区的数据信息,如果超过4个,系统允许在额外的硬盘空间存放另一份磁盘分区信息,这就是扩展分区. 若将硬盘分成3P+E,则E实际上是告诉系统,磁盘分区表在另外的那份分区表,即扩展分区其实是指向正确的额外分区表.本身扩展分区不能直接使用,还需要额外将扩展分区分成逻辑分区才能使用,因此,用户通过扩展分区就可以使用5个以上的分区了.

说明:

  1. 不建议用户将硬盘分为4个主分区.这是因为,假如一个20GB的硬盘,若4个主分区占据了15GB的空间,则剩下的5GB空间完全不能使用,因为已经没有多余的分区表可以记录这些空间了.
  2. 考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内.
  3. 允许一个硬盘只有1个主分区,其它空间都分配给扩展分区。

Linux磁盘分区

    Windows操作系统是先将物理地址分开,再在分区上建立目录,因此在Windows操作系统中,所有路径都是从盘符开始,如C://program file。而Linux正好相反。在Linux操作系统中,先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始.Linux默认可分为3个分区,分别是boot分区、swap分区和根分区.

    无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32、NTFS、Yaffs2等.

    下面简单介绍一下Linux的3个分区,boot分区、swap分区和根分区。

  • boot分区

    该分区对应于/boot目录,约100MB.该分区存放Linux的Grub(bootloader)和内核源码.用户可通过访问/boot目录来访问该分区.换句话说,用户对/boot目录的操作就是操作该分区.

  • swap分区

    该分区没有对应的目录,故用户无法访问。Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行.

关于虚拟内存

    虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说swap分区只能由系统访问,其大小为物理内存的2倍.

  • 根分区

    在Linux操作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区.

说明:

  1. 在Linux操作系统中,用户可根据需要把分区挂载到某个目录下。比如/home目录下有三个目录,假设为test1,test2,test3,可把不同的分区分别挂载到这三个目录下 。
  2. 根据上面的讨论,一块磁盘上最多有13个分区,即硬盘分为1个主分区和3个扩展分区,而每个扩展分区又可以分为4个逻辑分区。
  3. 硬盘上至少要有1个主分区.
  4. 逻辑分区不能再进行分区.
  5. Linux分区目录和"盘符"的关系

    假如硬盘安装在IDE1的主盘,并用户想分区成6个可以使用的硬盘分区,则可以采用3个主分区加3个逻辑分区方式,或者是1个主分区加5个逻辑分区。

   

    Linux允许使用fdisk -l命令和df -h命令来查询其硬盘分区.其中,df无法显示出swap分区的大小.

    若硬盘的MBR已坏,则该磁盘就不能再作为引导盘,只能作为数据盘.因为MBR位于硬盘的起始处,用户不能通过软件进行修复,也不能跳过起始处.而硬盘中间的某个磁道坏了,用户可以软件修复,也可以跳过该磁道.


推荐阅读
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
author-avatar
叮叮当叮叮当叮叮当_212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有