图1 扇区 和 磁道 下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。...扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节) ?...图3 磁盘容量计算 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 图3中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为...新的硬盘数据的密度都一致,这样磁道的周长越长,扇区就越多,存储的数据量就越大。...操作系统与磁盘打交道的最小单位是磁盘块。 通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。
为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。...对于 BIOS、操作系统和所有磁盘工具,磁盘看起来有 512 字节扇区,但实际上底层物理扇区大小是 4096 字节。...想一下,当 Linux 想在一个带 4096 字节扇区的新磁盘上读写这些数据结构时,会发生什么事情。...一个脚本执行了一系列磁盘 I/O 操作,包括创建一个新文件系统、提取一个未压缩的 Linux 内核原始码到测试驱动上、复制原始码到驱动、读取测试驱动上刚才未压缩的文件、从驱动上读取原始码、删除 Linux...源 Linux 内核原始码存储在另一个磁盘上,对于读测试,输出指向 /dev/null。在每个写测试之后,测试磁盘被卸载,以确保在 Linux 的磁盘缓存中没有操作。
今天我以磁盘结构作为硬盘的开篇,来分享我这些年在磁盘、文件方面的思考和总结。 1 磁盘结构 为了方便讨论,我们还是先从最基本的磁盘物理结构说起吧,对于常见的机械磁盘,分磁盘面、磁道、柱面和扇区。...柱面(Cylinders):所有盘片上的同一位置的磁道组成的立体叫做一个柱面。 4. 扇区(Sector):以磁道为单位管理磁盘仍然太大,所以计算机前辈们又把每个磁道划分出了多个扇区。...Linux上可以通过fdisk命令,来查看当前系统使用的磁盘的这些物理信息。 首先我们查看服务器上安装的硬盘数量以及大小,这需要借助lsblk这命令。.../dev/sda2 26 36352 291785728 8e Linux LVM 可以看出sda这块磁盘: 1....但是这产生的问题就是外圈磁道的数据密度没有充分发挥出来,造成磁盘存储容量很难提升。 现代的磁盘人们改用等密度结构生产硬盘,也就是说,外圈磁道的扇区比内圈磁道多。
3、盘面、磁道、柱面和扇区 硬盘的读写是和扇区有着紧密关系的。在说扇区和读写原理之前先说一下和扇区相关的”盘面”、“磁道”、和“柱面”。 1....标识符,就是扇区头标,包括组成扇区三维地址的三个数字: 盘面号:扇区所在的磁头(或盘面) 柱面号:磁道,确定磁头的径向方向。 扇区号:在磁道上的位置。也叫块号。...头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。...4、磁盘的读写原理 系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个柱面...15888253+ 83 linux 其中 heads 是磁盘面; sectors 是扇区; cylinders 是柱面; 每个扇区大小是 512byte
磁盘结构 磁盘主要分为以下结构: 磁头(head):对磁盘的数据进行读写 磁道(track):当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。...磁盘上的磁道是一组记录密度不同的同心圆 扇区(sector):磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区。硬盘的第一个扇区,叫做引导扇区。 一个扇区的大小为512个字节。...整个磁盘的存储大小为: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 磁盘的使用 一块新的硬盘或者U盘等外部设备在插入PC后,需要完成以下事情: 在/dev/下创建一个新的目录...: sda:10.7G,255个磁头,63个磁道,1305个扇区 主分区1:/dev/sda1 主分区2:/dev/sda2 sdb:5G,255个磁头,63个磁道,652个扇区 无分区 分区的概念...Linux中,磁盘只有被分区完后,才可以被挂载到目录下。
3、盘面、磁道、柱面和扇区 硬盘的读写是和扇区有着紧密关系的。在说扇区和读写原理之前先说一下和扇区相关的”盘面”、“磁道”、和“柱面”。 1....头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。...即一次访盘请求(读/写)完成过程由三个动作组成: 寻道(时间):磁头移动定位到指定磁道 旋转延迟(时间):等待指定扇区从磁头下旋转经过 数据传输(时间):数据在磁盘与内存之间的实际传输 因此在磁盘上读取扇区数据...、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个柱面,直到把文件内容全部写入磁盘。...5199 6657 11719386 83 linux /dev/hda9 6658 7751 8787523+ 83 linux /dev/hda10 7752 9729 15888253+ 83 linux
3、扇区 盘面上可以划分出很多的磁道,每条磁道容量从100多到300多kb不等,但我们读写并不会每次都读写这么多数据,所以又将磁道划分为若干更小的弧段,每段称为一个扇区(Sector)。...一般磁盘的一个扇区大小为512字节,这也就意味着哪怕我们只存放1字节的数据也会占用磁盘的一个扇区512个字节,读取时也会读取整个扇区的512个字节然后选择需要的哪个字节。...,在linux下一般为4k 查看操作系统IO大小: tune2fs -l /dev/sda1|grep "Block size" Block size: 4096 交叉因子...交叉因子为1的扇区划分: [扇区.jpg] 4、柱面: 柱面是抽象出来的一个逻辑概念,盘面被划分为1磁道,2磁道,3磁道.......5、磁盘读写耗时: 磁盘读写时耗 = 寻道时间 + 旋转延迟时间 + 操作时耗 寻道时间:读写数据时磁头首先要移到到指定磁道(柱面),这段时间称为寻道时间 旋转延迟时间:当磁头移动到指定磁道后,需要等待要操作的扇区旋转到磁头的下方
想看Linux学习篇之前的文章可以关注公众号,在菜单栏里。 —— 23号老板 0 1 问题描述 挂载点 “/dev/xx” 的使用率达100%,空间不够。 因此要对其进行分区。 ?...磁盘的数据传输是以块为单位的,所以磁盘上的数据也以块的形式进行存放。这些块就称为扇区(sector),每个磁道通常包括10~100个扇区。...柱面是若干个磁盘组成的磁盘组,所有盘面上相同位置的磁道组称为一个柱面(每个柱面有n个磁道);若每个磁盘有m个磁道,则该磁盘组共有m个柱面。...所谓的格式化,是指将磁盘空间按照一定的磁盘阵列排布方法,有序且很规则得划分为若干个扇区,然后再把其中的所有存储介质的电离子清除,使之上面不管有无数据,都清零。...磁盘格式化后能存储有用信息的总量称为存储容量,其计算公式如下: 存储容量 = n×t×s×b 其中n为保存数据的总盘面数;t为每面磁道数;s为每道的扇区数;b为每个扇区存储的字节数。
扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节),不同盘片上的同半径磁道组成了柱面,这些都是磁盘物理上的概念,知道便可。...磁盘的容量:磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数。...系统启动过程 首先,BIOS启动后,读取硬盘第一个扇区MBR中的引导加载程序(可能是windows或者linux的grub)。...linux。...文件系统 文件系统也是很大很复杂的话题,我们仍然以比较通俗、粗颗粒度来讲解,试想一下,我们的文件如何对应到磁盘的扇区上呢,所以光有底层的概念 磁道 扇区是没有用的,需要更加抽象的数据类型或结构来抽象底层的细节
I/O过程 如果要读磁盘,那么基本步骤如下: 首先将磁头移动到指定磁道处 旋转磁道到指定扇区处,通过磁生电,读取一个字节的输出到内存缓冲区中 如果要写磁盘,步骤和上面类似: 首先将磁头移动到指定磁道处...旋转磁道到指定扇区处,通过电生磁,向扇区中某处位置写入一个字节数据 ---- 最直接的使用磁盘 看了上面的基本过程后,相信大家可以理解了,如果我们要操作磁盘读写的话,就是告诉磁盘控制器关于柱面、磁头...磁臂移动到对应的柱面位置 通过磁头,决定到底读取的是哪一个盘面上的磁道,这样磁盘控制器就可以给对应的磁头上电,就可以利用对应的磁头去读取对应盘面磁道上的数据了 读取当前磁道上的扇区,还需要知道需要连续读取几个扇区...---- 从CHS到扇区号,从扇区到盘块 可以看到下图,第一个柱面的某个磁道上,分步了0~6号扇区,当需要放置第7个扇区的时候,为了避免磁臂的移动,需要将第7个扇区放在同一个磁道,但是不同柱面上。...; //根据盘块号计算出扇区号---从b_blocknr<<1可以知道Linux 0.11中盘块号和扇区的映射关系 //0---->0 //1----->2 //2----->4 //可以看到在linux
0x00 机械硬盘 机械磁盘由磁头(head)、磁道(track)、柱面(cylinder)、扇区(sector)和盘片(platter)组成。...其中,磁头悬浮在盘片上,并且每张盘片上下各有一个磁头;每张盘片的磁道数是相同的,每张盘片相同位置的磁道组成柱面;而每一个磁道由数量相同的扇区组成,我们知道离主轴越远的扇区面积越大,而扇区大小一般为512B...,必然导致存储密度越低,这样做明显浪费空间,为了解决问题,我们将磁盘密度改为等密度结构,这就意味着外围磁道的扇区数量要大于内圈的数量。...数据读取流程 假设目标扇区和当前磁头位置不在同一个磁道上,首先,磁头从一个磁道移动到另一个磁道,同时,盘片也在旋转,此时,虽然磁头到达了该磁道,但是还没有到达目标扇区,因此还需要等待,最后读取红色区域。...磁盘结构 这里以Linux中的Ext2的磁盘结构为例,需要注意的是我们需要对硬盘进行格式化生成如下图所示的磁盘结构。
马达决定转速 磁头负责读写 磁盘负责容量 马达不是此次解释的重点 这里说磁头与磁盘 磁盘为了管理数据,划分了磁道与扇区, 老式磁盘每个扇区存储的数据大小是一样的,外圈数据密度小,内圈数据密度大...image.png 机械原理: 假如读取第5磁道第7扇区 读写数据实际上是磁头会先摆动到第5磁道上悬浮在第5磁道的上空几纳米处,等待着第7扇区转过来,之后读取数据,这是机械硬盘的寻道和寻址。...需要读取的磁盘的某某磁道,某某扇区都有许多方格,内部有磁性微粒,读取磁力的极性判断0 1 image.png 往往磁盘不止一个盘片,正反都可读写,盘片从下部算起,0 1 2.。。。...老式磁盘因为扇区存储数据一致计算容量大小为: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 图上磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘每条磁道有...忽略对底层物理存储结构的设计 块是操作系统中最小的逻辑存储单位 操作系统与磁盘打交道的最小单位是磁盘块 Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block
机械磁盘 机械磁盘由磁头(head)、磁道(track)、柱面(cylinder)、扇区(sector)和盘片(platter)组成。...其中,磁头悬浮在盘片上,并且每张盘片上下各有一个磁头;每张盘片的磁道数是相同的,每张盘片相同位置的磁道组成柱面;而每一个磁道由数量相同的扇区组成,我们知道离主轴越远的扇区面积越大,而扇区大小一般为512B...,必然导致存储密度越低,这样做明显浪费空间,为了解决问题,我们将磁盘密度改为等密度结构,这就意味着外围磁道的扇区数量要大于内圈的数量。...物理图 逻辑图 数据读取流程 假设目标扇区和当前磁头位置不在同一个磁道上,首先,磁头从一个磁道移动到另一个磁道,同时,盘片也在旋转,此时,虽然磁头到达了该磁道,但是还没有到达目标扇区,因此还需要等待...磁盘结构 这里以Linux中的Ext2的磁盘结构为例,需要注意的是我们需要对硬盘进行格式化生成如下图所示的磁盘结构。
在单面上定位扇区:通过确定磁道,以及确定对应磁道的扇区,来具体确定该区间。确定磁道:每一个磁道都有自己的编码,磁道周长不同,但是存储大小相同。...由于扇区大小是相同的,因此每一个磁道有多少个扇区也是一定的,所以每一个磁道的扇区也是有编号的,因此定位到磁道就能找到对应扇区。...机械硬盘的寻址方式:盘片不断的转动,磁头不断的摆动,就是在确认在哪个磁道。如何确定扇区?盘片的先选择就是让其磁头定位扇区。 柱面:把一系列同心的磁道压在一起,宏观上看成一个整体。...在磁盘中定位扇区:先定位在哪个磁道(在哪个柱面),磁道定位后,(因为,所有磁头共同进退)再去定位盘面(磁头),最后确定是哪一个扇区。...我们可以将磁盘盘面想想成类似的结构。站住OS的角度,它认为磁盘的盘面是线性结构,它为每一个扇区划分好了空间,整个磁道相当于一个数组。要访问某个扇区,只需要定位到对应的数组下标。
扇区的大小:512字节,512字节是硬件要求,对于外磁道和内磁道大小都是一样的,密度不一样。越靠近圆心的比特位越大,外侧的较小。 在单面上定位扇区:通过确认磁道,最终确定在对应磁道的哪一个扇区。...确认磁道:每个磁道都有自己的编号,磁道周长不一样,但是存储大小是一样的,因为扇区大小一样,一个磁道有多少扇区也是固定的,所以每个磁道的扇区也有编址。所以定位到某个磁道上就能够找到。...机械硬盘的寻址方式:盘片不断旋转,磁头不断摆动,就是在确认在哪一个磁道,如何确认在哪个扇区?盘片也在旋转,就是让磁头定位扇区。 柱面:把一系列同心的磁道压在一起,宏观上看成一个整体。...在磁盘中定位任何一个扇区:先定位在哪一个磁道(哪个柱面),磁道确定,所有磁头共进退,此时磁头不动,在去定位磁头(定位盘面),最后在定位哪一个扇区。...Linux的文件=内容+属性,而Linux的文件内容是属性是分批存储的。保存文件属性的是inode,inode块的大小是固定的,为128字节。
再像切蛋糕一样把盘面均分为很多扇形,就把原来的磁道分成更小的扇区。不同盘面上,相对中心位置来说位置相同的磁道,就是一个柱面。...在Windows中称为簇,UNIX和Linux中则为块,以连续的几个扇区为基本单位来组织。 基本逻辑结构 扇区和4K对齐 我们常常听说,对磁盘进行4K对齐可以提高磁盘的效率。...MBR一般是在磁盘上的位置是最上面、最外面的0号柱面、0号磁道、0号扇区(有些是1号扇区),这样子每次操作系统最先读取到的就是MBR里的主引导程序了。...低级格式化 将整个磁盘重新划分柱面、磁道和扇区的一种格式化方式,通常也叫物理格式化,或者俗称“低格”。这是最彻底的数据清除方式。磁盘上的所有信息,包括原有的MBR、每个分区引导块内的信息都会被清除。...因为低格中的重建工作会检测正常、可用的盘面、磁道和扇区,坏道将不会再使用。
②其中的柱面,其实等价于磁道。③磁头的个数等于盘面个数,并且所有磁头是共进退的。 在每个盘面的上,要定位一个扇区,就要先确认磁道,即要确定对应磁道的哪一个扇区。...答案是磁头的来回摆动,其作用就是来确认磁道。确认磁道后,又该如何定位扇区?答案是盘片在高速旋转的时候,就是让磁头来定位扇区。...比如要寻找四号磁道的第2个扇区,那么磁头会摆动到四号的磁道后不动,然后盘片通过旋转,转到指定的扇区。...因此,为了提高效率,当我们要找四号磁道第二个扇区的时候,柱面的存在就是为了提高效率,所有磁头都会指向指定的扇区,而柱面的边界,就是这个扇区的磁道!...下面使用一个例子,用来解析这部分: 设: 盘面:4 磁道/面:10 扇区/磁道:100 扇区:512字节 那么,磁盘的总容量
一、磁盘的基本知识 磁盘中可以被划分成一个一个的环,每个环都是一个磁道。...每个磁道又可以被均分成一个一个的扇区,扇区是磁盘IO的基本单位(想要修改扇区中的一个比特位就必须把该扇区的全部比特位都加载到内存中)。磁盘中的盘面,磁道和扇区都是有编号的。...要访问一个扇区中的内容,必须通过磁头先定位到哪一个磁道(柱面cylinder),再确定要读取哪一个盘面(磁头head),最后确定磁道上的哪一个扇区(sector),这种定位法被称为CHS定位法。...所以,操作系统需要知道磁盘有多少个扇面,每个扇面的大小是多少,每个扇区的大小是多少,每个磁道有多少个扇区,这个在操作系统内部编程的时候就可以统一使用线性地址,要访问磁盘数据时,将线性地址交给磁盘,磁盘会自己将线性地址转化成...Linux磁盘文件特性分为文件内容加上文件属性,文件属性包括类型,大小,权限,时间,inode编号等等......
盘片表面涂有磁性介质,数据以磁道和扇区的形式存储。硬盘通过磁头在盘片上读写数据,而磁头则由悬臂支撑和定位。 简约来说,物理磁盘是计算机中用于存储数据的实体设备,具有特定的结构和外观。...所以我们尽量减少读取次数,让其定期刷新,并让其一次可以读写入较多数据(缓冲区的作用) 以磁盘圆心为中心,每一圈都称为磁道(因为有多个碟片,所以磁道也可以加做柱面) 像切蛋糕一样分出的块称为扇区,扇区是磁盘读写的基本单位...(每个扇区有对应容量) 一片磁片有 n 个磁道,每个磁道有 m 个扇区 那么我们如何找到指定位置的文件呢 —— CHS定址法 第一步确定在那一面(确定磁头 Header) 第二步确定在哪个磁道(柱面Cylinder...那么如何进行准确的定位磁盘位置呢(假设一个面有10个磁道,1000个扇区)??? 因为磁盘每个碟片和扇区的储存容量是一定的,也就可以通过扇区的index值来确定其在哪个碟片。...而Linux系统会进行路径的缓存,来方便我们的寻找工作。 我们一般使用的云服务器会有一个虚拟磁盘vda,系统中会有许多分区。
接下来我们了解一下硬盘的盘面,柱面,磁道和扇区的概念。...另外,硬盘在划分扇区时,和软盘是有一定区别的。软盘的一个磁道中,扇区号一般依次编排,如1号,2号,3号...以此类推。但在硬盘磁道中,扇区号是按照某个间隔跳跃着编排。...如对磁道扇区按物理顺序进行编号,很有可能出现当磁头读取完第一个扇区后,由于盘片转速过快来不及读取下一个扇区,(要知道物理相邻扇区位置距离是极小的),必须等待转完一圈,这极大浪费了时间。...簇 将物理相邻的若干个扇区称为了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇(Cluster)。...所以,最后看一下硬盘的容量计算公式: 硬盘容量=盘面数×柱面数×扇区数×512字节 在博文“Linux启动过程分析”中我们提到过MBR,它是存在于硬盘的0柱面,0磁头,1扇区里,占512
领取专属 10元无门槛券
手把手带您无忧上云