磁盘扇区、IO块、inode、文件、目录、硬链接与软链接到底是什么?

磁盘扇区、IO块、inode、文件、目录、硬链接与软链接到底是什么?,第1张

磁盘扇区、IO块、inode、文件、目录、硬链接与软链接到底是什么?

自己理解了一下,记录一下备忘。

1、扇区

扇区是磁盘盘片上的一个物理划分,是真真实实存在看得见摸得着的东西。

我们先来看看如何查看一个磁盘的一些信息,可以使用fdisk -l命令查看。我这里有多块盘,但我只截图了一个在这里展示,如图所示,我截取的这块盘为/dev/sda。

看红框所示,Unit是单元的意思,sector是扇区的意思。即磁盘谨桐的存储单元是扇区液竖。

从图中第一行还可以看到这块盘的大小为599.6G,总共有1171062784个扇区。

从第二行可以看到每个扇区的大小为512bytes。

从第三行可以看到扇区的逻辑大小为512bytes,物理大小为512bytes。

从上图的帮助文档来看,扇区的逻辑大小可以修改,最小为512bytes,最大为4096bytes。(不同的系统,扇区的大小不一样)

除了扇区,磁盘还有哪些物理部件?

2、IO块(磁盘块)

我们平时常说磁盘块,可能会以为它是磁盘的一个物理分区,其实不是的。

扇区是磁盘存闹晌大储的最小单元。往大了说,还有磁道、盘片等。

那既然磁盘块不是磁盘的物理分区,那么它是啥呀?

我们或许都有这样一个常识认知,就是磁盘的IO速率是非常慢的,如果在读取数据的时候,先读取了一个扇区的数据,发送给上层应用后,又返回来读下一个扇区,再发送给上层应用,如此循环反复,上层应用需要与磁盘进行多次交互,这就很浪费时间了;

所以就引入了磁盘块这么一个概念,它在逻辑层面将多个连续的扇区当作一个整体,然后在读取数据的时候以逻辑层面上的磁盘块为单位,将磁盘块所包含的扇区的数据都一次性读出来发给上层应用。

所以我们要区分开扇区、磁盘块这些概念所对应的对象是不同的:

扇区对应的是硬件层面,它是磁盘面的区域划分,是一个真真实实存在的物理部件;

而磁盘块对应的是软件层面,它在逻辑层面将多个连续的扇区当作一个整体。

比如磁盘扇区大小一般为512字节,而块大小一般为4096字节,那么每一个块就记录着连续的8个扇区;数据不是存在块里的,而是存储在扇区,而块记录哪些扇区是属于自己的。

如何查看一个IO块的大小:

1)在root用户下,执行tune2fs -l /dev/sda | grep "Block Size"

3、inode

每个文件都有数据以及元数据,数据就是文件内容了,它存储在磁盘的数据区;

而文件元数据包括下图这些项:

文件大小、文件块信息、一个块的大小、文件类型(普通文件、目录还是符号链接)、设备号、索引节点编号、硬链接数、文件的访问时间、文件内容的修改时间、文件属性的修改时间

每个文件都会对应一个inode,而每个inode都有唯一一个编号,如何查看文件的inode编号呢?

1)可以使用stat filename来查看

2)或者切换到文件所在目录后,使用ll -i命令来查看,得到的结果中第一列即为文件的inode编号。

我们刚才说到每个索引节点(inode)都有一个唯一的编号,这个编号在每个磁盘上都是有限的,当inode编号分配完了之后,就不能再创建新文件了;

因为文件都需要对应一个唯一的inode,而每个inode又需要对应唯一的编号,而编号又是有限的,所以当分配完了之后,就没法创建inode了,也就没法创建文件了。

有时候可能会发现这样的现象:就是我们想要创建一个新文件,但是发现创建不了了。

于是我们需要排查问题,怎么排查呢?

首先我们先看下是不是磁盘写满了,使用df -hl查看磁盘的使用率,如果达到了100%,那说明盘写满了,我们需要删除些东西以释放存储空间;

但是如果我们查看了磁盘使用率之后,发现不是磁盘满了,磁盘还有很多空闲的空间,那该怎么办?

可以联想到我们上面说过的,看下inode编号是不是用完了,即看下inode编号的使用率?

可以使用df -i来看下磁盘inode编号的使用率,如果发现是inode编号的使用率达到了100%了,那还是得删除些文件以释放占用的inode编号。

会不会有人有疑问?为什么磁盘空间还有这么多,inode编号就用完了?

这大概率是创建的小文件太多了,你想啊,每个文件都要对应一个inode编号,inode编号是有限的,虽然磁盘空间也有限,但是如果文件系统中是以小文件居多,每个文件就占那么点空间,inode编号的消耗速率大于磁盘空间的消耗速率,这就极有可能出现上述inode编号用完了,但是磁盘空间还剩余很多的情况。

4、文件与目录

在linux系统中,一切皆文件。

在linux中怎么判断是文件还是目录呢?

1)通过ll命令判断:

如果开头是d,那就是目录(d即directory的缩写),如果开头是-,那就是普通文件。

2)通过stat命令判断:

5、硬链接与软链接

当我们创建一个文件时,该文件的文件名其实就是一个硬链接,一个文件至少有一个硬链接,但是一个硬链接不可以指向多个文件。

硬链接有什么作用:文件系统通过硬链接可以找到inode编号,进而找到inode,通过获取inode里存储的文件元数据可以读取到磁盘中存储的文件数据。

怎么查看文件的硬链接数呢?

1)通过ll查看:

第二列即为硬链接数

有没有注意到,普通文件的硬链接数与目录的硬链接数是不一样的,普通文件只有一个硬链接,而目录则有两个,这是为什么?

因为对于目录文件而言,除了可以通过目录名获取到文件的inode之外,还可以通过.(点号)获取,因为点号表示当前目录。

所以我们看到目录的硬链接数是2个。

2)还可以通过stat查看文件的硬链接数:

软链接是什么?软链接其实是一个独立的文件(分类为符号链接),它有自己的inode,它的inode里存储的是它所指向的文件的信息;由于软链接与它指向的文件是两个独立的文件,所以删除软链接并不会影响它指向的文件。

通过ln -s 123 softlink123建立一个软链接指向文件123

通过stat softlink123可以看到该文件是一个符号链接,即软链接,它有自己的inode,所以它是一个独立的文件,由于它的inode里存储的是它指向的文件的信息,所以通过软链接softlink123也可以读取到文件123的数据

可以看到通过硬链接和软链接读取到的文件内容是一样的

DIskGenius软件可以直接清除分区或磁盘任意扇区上的数据。被清除扇区上的文件数据将无法通过任何软件恢复。今天我给大家分享一下DiskGenius清除扇区竖中兄数据方法,有需要的朋友快来看看吧!

要执行此功能,请先选择要清除扇区的分区或磁盘,然后点击“工具-清除扇区数据”菜单项,程序d出下列余袭对话框:

在此对话框中,可以设置下列选项:

更改要清除的分区或磁盘。

指定要清除的扇区范围。如果选择了清除分区扇区,扇区号是指相对于分区开始的扇区号。

指定用于填充的字符。

点击“清除”按钮以执行清除扇区的功能。软件会显示下列警告信息:

请认真阅读提示信息,如果真的要清除扇区数据,请在第一个提示对话框上点击“清除”,在第二个提示上培谈点击“确定”。软件将开始执行清除扇区 *** 作。

 扇区是计算机硬盘中无法写入数据的地方,几乎所有的硬盘都有一些坏扇区。 [编辑本段]坏扇区有两种类型: 一种为硬盘格式化时由于磨损而产生的软损坏扇区。可将它们标记出来或通过再次格式化来修复。记住,如果格式化硬盘将完全丢失全部数据。 另一种是无法修复的物理损坏。数据将永远无法写入到这种扇区中。如果硬盘中有这种坏扇区,这块硬盘就快寿终正寝了。 硬盘被分割为以扇区为单位的存储单元用于存储数据。每个硬盘都有成千上万的扇区。硬盘在存储数据前,其中的坏扇区被标记出来以使计猜蠢算机不在这些扇区中写入数据。为避免由于坏扇区而造成损失,应该每隔6个月进行一次检测,同时,应避免硬盘受到撞击或颠簸。如果有一些连续茄拍的坏扇区,则表示硬盘磨损得已经很厉害颤兆羡了。如果坏扇区的数量增长很快,最好将全部数据备份并严密地监视其工作情况,这也许是更换硬盘的时候了。 因此,对付坏扇区最好的方法是将它们做出标记,这样可避免引起麻烦。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12292864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存