磁盘的详细信息
硬盘的内部是金属盘片,将圆形的盘片划分成若干个扇形区域,这就是扇区。
若干个扇区就组成整个盘片。为什么要分扇区?是逻辑化数据的需要,能更好的管理硬盘空间。
以盘片中心为圆心,把盘片分成若干个同心圆,那每一个划分圆的“线条”,就称为磁道。
硬盘内的盘片有两个面,都可以储存数据,而硬盘内的盘片往往不止一张,
常见的有两张,那么,两张盘片中相同位置的磁道,就组成一个“柱面”,盘片中有多少个磁道,就有多少个柱面。
盘片两面都能存数据,要读取它,必须有磁头,所以,每一个面,都有一个磁头,一张盘片就有两个磁头。
硬盘的存储容量=磁头数×磁道(柱面)数×每道扇区数×每道扇区字节数。
磁道从外向内自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设置小:效率低,利用率高。