Linux磁盘专题
物理磁盘名次和其作用
盘片:disk
盘片上下都有磁头。
磁盘面:
盘片有上下两面,每一面叫磁盘面
磁头:heads
每个磁头负责一个磁盘面,负责读取数据、将数据写入磁道。
磁头都是固定在机械臂上(机械臂就是磁头臂组支架)
磁道:track
每个磁盘面上围绕圆心划分出多个同心圆环,每个圆圈叫做磁道。
从磁盘面外圈开始向圈内数,磁道号从0逐渐递增1.也就是最外圈的磁道号是0,想内圈开始逐步递增+1
扇区:sectors
扇区上记录物理数据、扇区号、磁头号(磁盘片号,就是第几个磁盘片面)、磁道号.
每个磁道以512字节(并非一定是512,因为可以设置,只不过默认大多数是512字节)等分划分多个弧段,每个段就是一个扇区。(这些弧段划分后就是一个扇形,所以叫扇区)
外圈的磁道大。内圈的磁道小。所以外圈磁道所拥有的扇区数就多,内圈磁道所拥有的扇区数就少。
有些硬盘参数会标注上磁道的范围如:373-768,表示最外圈磁道有768个扇区,最内圈有373个扇区。
柱面:cylinders
磁盘面上的同一个位置的磁道组成的立体叫做一个柱面。
按照磁盘的物理性来讲,现在的分区大多数都是基于柱面的划分。
磁盘或分区容量计算方式
磁盘大小=unit * 柱面数(cylinders)
或者
磁盘大小=磁盘面数(heads) * 每个磁道上的平均扇区数(sectors/track) * 512 * 柱面数 (cylinders)
例子:
[root@test ~]# fdisk -l /dev/sda
Disk /dev/sda: 322.1 GB, 322122547200 bytes
255 heads, 63 sectors/track, 39162 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000990c6
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 39163 314059776 8e Linux LVM
所以/dev/sda大小为:
255*63*512*39162=322,118,415,360 === 将byte转换为GB,就是322118415360/1000/1000/1000=322.11841536 GB
8225280*39162=322,118,415,360 === 将byte转换为GB,就是322118415360/1000/1000/1000=322.11841536 GB
MBR:占用512byte
其中446byte作为bootloader
剩余64byte作为DPT(disk partation table磁盘分区表)
每个分区占用16byte,因此64/16=4,MRB只能分4个主分区(primary,P)。
通过建立拓展分区后(extend,E),在拓展分区上再建立逻辑分区(logical,L)几乎可以实现无限制分区。
最后2byte是校验位:55aa
GPT:可以分区128个主分区,且支持2TB以上的独立分区。
其他
磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。
通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。
https://blog.csdn.net/HandsomeHong/article/details/123101771
这篇文章扇区哪里讲得不完全正确,因为她只说到了旧的扇区划分方式,新的扇区划分都是同密度的,所以外圈扇区比内圈扇区多,每个扇区的密度都是一样,而不是像旧的方式,外圈扇区密度小,内圈扇区密度大。
https://cloud.tencent.com/developer/article/1999925
本文来自博客园,作者:蕝戀,转载请注明原文链接:https://www.cnblogs.com/juelian/p/17560181.html