Linux的磁盘与文件系统(1)-------inode,block,df和du,软硬链接

原创 2018年04月16日 17:33:09
inode : 记录文件的属性,一个文件占用一个inode
block  : 实际记录文件的内容,若是文件太大时,会占用多个block。
Superblock : 就是记录整个filesystem相关信息的地方。


data block 就是用来放置文件内容数据地方。
在Ext2文件系统中所支持的block大小就有1k,2k,4k三种。
在格式化时,block的大小就已经固定了。而且每一个block都会有编号,以方便inode的记录。

superblock记录的信息主要有:
•block 与inode的总量
•未使用与已使用的inode/ block 数量
•block 与inode的大小(block 为1, 2, 4K,inode为128 bytes)
•filesystem的挂载时间、最近一次写入数据的时间、最近一次检验磁盘(fsck) 的时间等文件系统的相关信息
•一个valid bit 数值,若此文件系统已被挂载,则valid bit 为0 ,若未被挂载,则valid bit 为1


block bitmap 记录的是使用与未使用的block 号码,至于inodebitmap 则是记录使用与未使用的inode号码!


磁盘的目录和容量

我们知道磁盘的整理数据就是在superblock中,但是每个个别文件的容量则是在inode中记载的。

df    :    列出文件系统的整体磁盘使用量
du   :    评估文件系统的磁盘使用量(常用在推估目录所占容量)

df中要记住的几个常用选项
-h    : 用人们常见的方式显示大小。比如10M,10G,10T.





du   

-a   :  列出所有的文件和目录容量
-h   :       以人们易读的容量格式显示
-s    :       列出总量,而不列出每个个别的目录占用容量
-k    :       以kbytes 列出容量显示






ln
在Linux 底下的链接有两种,一种是类似Windows 的快捷方式功能的文件,可以让你快速的链接到目标文件(或目录);另一种则是透过文件系统的inode连结来产生新档名,而不是产生新文件!这种称为实体链接(hard link)。

Hard Link (实体链接, 硬链接或实际链接)
•每个文件都会占用一个inode,文件内容由inode的记录来指向;
•想要读取该文件,必须要经过目录记录的文件名来指向到正确的inode号码才能读取。


所以简单的说:hard link 只是在某个目录下新增一笔档名链接到某inode号码的关联记录而已。

,假设我系统有个crontab他是/etc/crontab的实体链接,也就是说这两个档名连结到同一inode,自然这两个文件名的所有相关信息都会一模一样(除了文件名之外)。实际的情况可以如下所示:




实体链接不能够跨Filesystem,不能link目录。

Symbolic Link (符号链接,亦即是快捷方式)
Symbolic link 就是在创建一个独立的文件,而这个文件会让数据的读取指向他link 的那个文件的档名!由于只是利用文件来做为指向的动作,所以,当来源档被删除之后,symbolic link 的文件会『开不了』,会一直说『无法开启某文件!』。实际上就是找不到原始『档名』而已啦!





关于目录的链接数量
如果创建目录时,他默认的link 数量会是多少?让我们来想一想,一个『空目录』里面至少会存在些什么?
存在. 与.. 这两个目录,那么,当我们创建一个新目录名称为/tmp/testing 时,基本上会有三个东西,那就是:
n/tmp/testing
n/tmp/testing/.
n/tmp/testing/..
而其中/tmp/testing 与/tmp/testing/. 其实是一样的!都代表该目录,而/tmp/testing/.. 则代表/tmp这个目录,所以说,当我们创建一个新的目录时,新的目录的link 数为2 ,而上一级目录的link 数则会添加1。




版权声明: https://blog.csdn.net/lvxiaojiahuo/article/details/79963634

linux超级块和inode 详解 和 df 、du 命令详解与环境变量

一、inode块,Unix文件的核心。   首先需要明白的是,在Unix操作系统中的任何资源都被当作文件来管理。如目录、光驱、终端设备等等,都被当作是一种文件。从这方面来说,Unix操作系统中的所有的...
  • yuyi_000
  • yuyi_000
  • 2016-05-22 00:36:45
  • 2365

df和du磁盘空间不一致

背景最近在服务器上部署了一套服务,服务运行过程中不小心把日志文件给删除了,测试了一下没有影响服务的正常运行,而且没有日志后处理的操作就不以为意的扔那了,但不经意间也埋下了一个巨大的坑。收到服务器磁盘报...
  • ice_actor
  • ice_actor
  • 2016-03-18 19:13:27
  • 1022

Linux服务器使用df和du查看磁盘大小不一致的问题和解决办法

Linux服务器,使用df -h查看文件系统使用率,可以看到/dev/xvdb1磁盘占用了约27G,挂载目录为/opt。 但进入到opt目录中执行:du -sh ,显示空间总占用量约2.4G,即...
  • lufeisan
  • lufeisan
  • 2016-11-13 15:50:02
  • 1382

文件系统(ext2) inode、block、superblock概念整理

文件系统:一个可被挂载的数据称为文件系统,每个操作系统可以使用的文件系统并不一样,windows98是FAT或者FAT16文件系统,而windows2000以后有了NTFS文件系统,linux是ext...
  • belen_xue
  • belen_xue
  • 2016-06-04 21:24:02
  • 1666

df和du显示的磁盘空间使用情况不一致的原因及处理

在Linux下查看磁盘空间使用情况,最常使用的就是du和df了。然而两者还是有很大区别的,有时候其输出结果甚至非常悬殊。 本文将介绍以下内容:如何记忆这两个命令,df 和du 的工作原理,du和df不...
  • sch0120
  • sch0120
  • 2015-11-26 13:27:39
  • 2087

Linux学习笔记_系统分区信息,磁盘空间及inode占用查看(df,fdisk)

需求:查看系统分区表信息,磁盘空间及inode占用
  • liubaiye
  • liubaiye
  • 2017-08-18 14:00:45
  • 800

df、du、fdisk:Linux磁盘管理三板斧的使用心得

源地址 1.df df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。 df命令各个选项的含义如下: -a:显示...
  • hello_qingwen
  • hello_qingwen
  • 2014-04-25 17:35:09
  • 1450

Linux inode 索引节点已满导致服务无法开启的详细解决方法

理解inode http://www.ruanyifeng.com/blog/2011/12/inode.html inode耗尽无法新建文件 http://blog.csdn.net/iefr...
  • u012730333
  • u012730333
  • 2016-01-07 15:25:27
  • 676

Linux文件系统代码学习笔记--磁盘格式化&block分配

第一部分——准备知识磁盘格式化这一步骤到底做了什么? 为了读懂代码,首先先掌握几个知识点。memcpy函数void * __cdecl memcpy(_Out_writes_bytes_all_(...
  • qq_24421591
  • qq_24421591
  • 2015-12-06 10:17:41
  • 1370

Linux文件系统的简单操作 - df, du, ln

现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的。 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个命令: df...
  • zyq522376829
  • zyq522376829
  • 2015-08-03 14:36:37
  • 1074
收藏助手
不良信息举报
您举报文章:Linux的磁盘与文件系统(1)-------inode,block,df和du,软硬链接
举报原因:
原因补充:

(最多只允许输入30个字)