硬盘结构

我们这此写的是机械硬盘。来看看构成把,磁盘结构由盘片(Platters,有磁性),轴,马达,磁头(Heads)组成。硬盘数据存贮在盘片(Platters)中。

磁头
由磁头(读写头)读写数据。每个盘(碟)片(一般4个盘片)都有两面,因此也会相对应每盘片有2个磁头(0-7面共8面可用,双面进行存贮数据)。

platters.png

当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道-A(Track,以轴为中心组成的同心圆),数据就存在两条线之间,整圈磁道分为多段每段叫扇区-C(Sector),不同盘片上相同编号的磁道组成柱面-B(Cylinder扇面),D:簇(扇区组)。

盘片是高速旋转时,磁头伸缩(悬浮在盘片上)读取数据,在旋转同时读取AB两个数据时,磁头不一定就刚好停在A,那么就要等待下一圈,这叫磁盘延时(寻道时间or寻址时间)。那盘片旋转越快磁盘延时就越小,读取数据越快,一般台式机7200/S,笔记本5400/S。

Platter-structure.png

运行状态

MBR(Master Boot Record)

主引导记录,位于0磁道0柱面1扇区,共512Byte,由三部分组成,第一部分446Byte的boot loader(启动加载器,存放引导代码),第二部分64Byte的磁盘分区表(每个分区占据16字节),第三部分2Byte的magic number(检查MBR是否有效)。

在存贮数据的时候,一般把经常读取的数据放到最外围磁道,

磁盘分区表共64字节,每个分区占据16字节,主分区:主分区+扩展分区只能 <=4,扩展分区:占用16字节空间,并且值能有一个,扩展分区是一个指针,指向磁盘另外的位置,不能直接存储数据,如果要想存储数据,需在扩展分区上建立逻辑分区,逻辑分区可以有多个。

低级格式化:
高级格式化:

文件系统:可以理解成一种软件。

block,inode,super block和链接文件

block:block是记录文件内容的那个区域(位置),ext3文件系统中每个block默认大小4K

文件系统:软件(XFS,NTFS,FAT,EXT3,EXT4等),存贮数据或文件的一种格式,文件系统不存在分区之上,它位于磁盘的某一个位置。文件系统把分区分割成两部分,第一部分存放元数据(metadata),另一部分存放真实数据。元数据和数据本身没有关系,包括的是数据属性,比如数据归属,数据权限,数据时间戳。这块区域叫inode(index node),这些信息也在元数据中占据空间大小,它不包括文件名,每个block都有对应的inode,同一个inode可以指向多个文件。

磁盘工作原理:存贮数据的时候会对每一个block进行扫描,如果数据量大了速度就非常慢。在元数据区域内有一个block bitmap区域,用于标记block是否被使用,使用了把某一位标记成1(不是整个数据块),没使用标记成0,这样就不用去遍历数据块了。

super block(超级块):管理元数据区域内的其他区域

删除文件:把数据对应的inode和block变成0,实际数据并没删除,但原有inode和block被覆盖或使用了则无法恢复。
新建文件:寻找一个没被使用过的inode值和block,把数据填充进来(占位),block会准备多于实际情况所占用的block,防止磁盘碎片的产生(碎片会使硬盘执行能够降低计算机速度的额外工作。)。
复制文件:建立新文件
移动文件:改变inode和block的值,不对数据操作。

链接文件:分为软连接(符号链接)与硬链接(hard links)
语法:ln [options] src_file des_file

-s    #创建软连接,不加选项为硬链接
-v    #显示详细过程

先touch一个文件1.txt,可以看到默认硬链接次数为1,inode是16797806。用ln给1.txt做个硬链接。

hard-link01.PNG

做硬链接过程中不会对数据进行改变,硬链接过后操作A.txt就相当于操作1.txt,当然操作1.txt也是同理(它们inode相同)。如果你不小心删掉了1.txt源文件也没事,目标文件A.txt还在(还有其他文件指向那个inode,inode存在,block也就存在)。inode还是一样(指向同一个节点)硬链接次数为2,硬链接的目标文件不会占用磁盘空间,硬链接有限制:不能跨文件系统(指向一个inode节点),只能对文件链接不能链接目录。

hard-link02.PNG

来看看软连接

软连接时要记得要使用绝对路径,源文件1.txt与目标文件f.txt的inode不一样,所以当你删除f.txt时源文件不会受影响。还有2个地方要注意,第一个是目标文件大小这里的大小是指向的是源文件路径字符个数,第二个是目标文件权限它的权限居然是777,要注意这个应当是源文件的权限。软连接可以跨文件系统建立,可以为文件或目录建立。再来看一种情况没有源文件,下图是删除源文件后的样子。

symbolic

这里f.txt指向的源文件不存在,它会闪烁。我们随便拿一个文件过来命名为1.txt作为源文件顶替一下。

symbolic-link02.gif

现在恢复正常了,说明软连接只要路径文件名存在就行,并不区分具体文件内容。

symbolic-link03.png

参考链接

标签: none

讨论讨论讨论!