linux下的文件系统详解

磁盘的详细信息

硬盘的内部是金属盘片,将圆形的盘片划分成若干个扇形区域,这就是扇区。
若干个扇区就组成整个盘片。为什么要分扇区?是逻辑化数据的需要,能更好的管理硬盘空间。 
以盘片中心为圆心,把盘片分成若干个同心圆,那每一个划分圆的“线条”,就称为磁道。
硬盘内的盘片有两个面,都可以储存数据,而硬盘内的盘片往往不止一张,
常见的有两张,那么,两张盘片中相同位置的磁道,就组成一个“柱面”,盘片中有多少个磁道,就有多少个柱面。
盘片两面都能存数据,要读取它,必须有磁头,所以,每一个面,都有一个磁头,一张盘片就有两个磁头。
硬盘的存储容量=磁头数×磁道(柱面)数×每道扇区数×每道扇区字节数。
磁道从外向内自0开始顺序进行编号,各个磁道上的扇区数是在硬盘格式化时确定的。 
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 
ZBR区位记录:每一个磁道的扇区的数量不同,因为他们的扇区相同。所以外部磁道有更大的空间来区分扇区。
磁盘内部是存在空气的,不然有空气过滤器干啥?
外部磁道比内部磁道的读取更快。
簇和块的概念相同。都是由多个扇区构成的,表示文件系统一次读取内容的大小。

查看簇的大小(块):

在这里插入图片描述

查看系统的语言,并修改。

[root@break ~]# echo $LANG
zh_CN.utf-8
[root@break ~]# LANG="en_US.UTF8"
[root@break ~]# echo $LANG
en_US.UTF8

文件系统的介绍

Linux文件系统由三部分组成 : 文件名,inode,block
Linux文件系统: ext3,ext4,xfs
windows文件系统: FAT32,NTFS

inode包含文件的元信息,具体来说有以下内容:
  * 文件的字节数
  * 文件拥有者的User ID
  * 文件的Group ID
  * 文件的读、写、执行权限
  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
  * 链接数,即有多少文件名指向这个inode
  * 文件数据block的位置

文件的inode信息查看。
在这里插入图片描述
模拟黑客的入侵,防止用户使用find / -mtime查看木马文件。

[root@break ~]# stat a.txt
  文件:"a.txt"
  大小:50        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:18990389    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-03-27 23:01:56.669309395 +0800
最近更改:2019-03-27 23:01:51.093152629 +0800
最近改动:2019-03-27 23:01:51.093152629 +0800
创建时间:-
[root@break ~]# ll -i a.txt 
18990389 -rw-r--r--. 1 root root 50 3月  27 23:01 a.txt
[root@break ~]# date -s "13:42"
2019年 03月 31日 星期日 13:42:00 CST
[root@break ~]# vim a.txt
[root@break ~]# stat a.txt
  文件:"a.txt"
  大小:62        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:18984824    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-03-31 13:42:13.007418896 +0800
最近更改:2019-03-31 13:42:13.007418896 +0800
最近改动:2019-03-31 13:42:13.009418961 +0800
创建时间:-
[root@break ~]# chmod +x a.txt 
[root@break ~]# stat a.txt 
  文件:"a.txt"
  大小:62        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:18984824    硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-03-31 13:42:13.007418896 +0800
最近更改:2019-03-31 13:42:13.007418896 +0800
最近改动:2019-03-31 13:42:45.818462783 +0800
创建时间:-

inode知识点

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。
一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。
举例:
inode节点的总数,在格式化时就给定,假定在一块1GB的硬盘中,每个inode节点的大小为128字节,
每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
计算过程:
1G的磁盘可以存储inode的个数为:1GB/1KB=2的20次方
inode的总大小:2的20次方乘以128字节=128*2的20次方=128MB。
1GB=1000MB
linux下用户打开文件的3步过程:
1os找到文件名对应的inode号码。
2通过inode号码,得到inode信息。
3根据inode信息,找到block的内容。

查看inode的3种方式:

[root@break ~]# ls -i a.txt
18984824 a.txt
[root@break ~]# df -i 
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 5242880  149478 5093402       3% /
devtmpfs                 249478     455  249023       1% /dev
tmpfs                    253771       1  253770       1% /dev/shm
tmpfs                    253771     975  252796       1% /run
tmpfs                    253771      16  253755       1% /sys/fs/cgroup
/dev/sr0                      0       0       0        - /mnt
/dev/sda1                102400     326  102074       1% /boot
tmpfs                    253771       9  253762       1% /run/user/42
tmpfs                    253771       1  253770       1% /run/user/0
[root@break ~]# stat a.txt
  文件:"a.txt"
  大小:62        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:18984824    硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-03-31 13:42:13.007418896 +0800
最近更改:2019-03-31 13:42:13.007418896 +0800
最近改动:2019-03-31 13:42:45.818462783 +0800
创建时间:-

为什么每次修改完服务器的配置文件之后,都需要重新加载一下配置文件呢?
真正的原因是:每一次修改配置文件,都会导致配置文件的inode改变,所以需要重新读取。

在这里插入图片描述
 1. 有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。
  2. 移动文件或重命名文件,只是改变文件名,不影响inode号码。
  在这里插入图片描述
  3. 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。

block知识点

block 是真正存储数据的地方。
block是 文件系统 中最小的存储单位
扇区 是 磁盘 中最小的存储单位

文件系统的知识要点:

硬盘的结构:ZBR 区位记录
inode(inode表中主要看inode号)
inode号唯一标识一个文件(一个文件系统里面)
inode用完了,文件就不能创建了。
inode数据量设置大一些:可以创建多个文件。占用空间比较大
inode数据量设置小一些:可以创建很少文件。占用空间比较小

block
block设置大:效率高,利用率低。
block设置小:效率低,利用率高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值