day25 磁盘的管理2
1.mount
命令的挂载的实践
[root@linux-yzk ~]# lsblk
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 618705ba-57dd-4f80-9f4f-918f71d201ff /boot
└─sda2 LVM2_membe BWi4TT-AiPC-bvD8-kyVv-OxAw-U5TG-wwdfVc ├─centos-rootxfs cc212631-4730-46e9-ad82-b7f6d6d45f08 /└─centos-swapswap a319f4e7-3ca1-43d8-ae36-46ace4fd451a [SWAP]
sdb
├─sdb1 xfs 897d51f6-4b3a-4a7f-b1b6-52d942bfa8c2
├─sdb2
└─sdb5 xfs 2465d6bc-126a-46f8-813d-37031395e879
sdc
sr0 iso9660 CentOS 7 x86_64 2022-07-26-15-09-17-00
[root@linux-yzk ~]# mount -o ro /dev/sdb1 /data
[root@linux-yzk ~]#
[root@linux-yzk ~]#
[root@linux-yzk ~]# cat /data/shell
cat: /data/shell: 没有那个文件或目录
[root@linux-yzk ~]# ll /data
总用量 0
[root@linux-yzk ~]# touch /data/shell
touch: 无法创建"/data/shell": 只读文件系统
[root@linux-yzk ~]#
2.inode block 硬链接
3.什么是inode
linux的文件名,其实是分为了【元数据】+【文件内容】,两部分。
# 每一个文件都有一个号码,操作系统用inode号码来识别不同的文件[root@linux-yzk ~]# ll -i /opt/
总用量 0
52022893 drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@linux-yzk ~]#
4.为什么要设计inode
理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
5.inode 存储的内容
*文件的字节数*文件的拥有者*文件的读写,执行的权限* 文件的时间戳 ctime 指的是inode上一次的变动的时间 ,
mtime 指的是文件内容的变动的时间 ,
atime 指的是文件上一次打开的时间*连接数 即有多少文件指向这个inode*文件数block 的位置
用stat 命令去查看文件的具体inode信息
[root@linux-yzk opt]# stat rh/文件:"rh/"大小:6 块:0 IO 块:4096 目录
设备:fd00h/64768d Inode:52022893 硬链接:2
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:usr_t:s0
最近访问:2025-02-28 19:30:32.370269549 +0800
最近更改:2018-10-31 03:17:56.000000000 +0800
最近改动:2024-12-17 00:05:39.030031336 +0800
创建时间:-
[root@linux-yzk opt]#
简单来说,文件夹就是方便的记忆没然后通过这个文件名,找到对应的文件的inode号。
inode号就是记录文件数据所处的block位置,最终访问到数据
6.什么是block
block 是Linux实际存储的空间,是8个连续的扇区
单个文件需要用多个block来存储1block = 4kb
7.删除文件的原理
8.软连接就是windows 下的快捷的方式
创建软连接 ln -s 创建软连接
~>
当你访问软连接文件,其实是访问到源文件的路径
~>
访问源文件的inode ls -i file name
~>
inode找到block ,访问到数据
9.硬链接
硬链接,就是一个数据(block),被多个inode号的文件的指向
就好比超市有好多个大门,但是都能进入到这个超市。。。
- 注意,大坑,硬链接,不得跨分区设置(inode号,是基于分区来创建)
10.查看分区的inode和block数量(xfs_info)
inode和block的数量,是在你mkfs创建文件系统的时候,就已经确定好了
ext4的文件系统,查看文件系统信息的命令,dumpe2fs
xfs文件系统,查看文件系统信息的命令,xfs_info
[root@linux-yzk /]# xfs_info /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@linux-yzk /]#
11.inode的作用
[yuchao-linux01 root /opt]$df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 8910848 129697 8781151 2% /
devtmpfs 995986 426 995560 1% /dev
tmpfs 999042 1 999041 1% /dev/shm
tmpfs 999042 1317 997725 1% /run
tmpfs 999042 16 999026 1% /sys/fs/cgroup
/dev/sda1 524288 327 523961 1% /boot
tmpfs 999042 1 999041 1% /run/user/0
/dev/sdc1 10485248 3 10485245 1% /opt/my_sdc
df -h
查看磁盘block空间的使用情况,如果看到分区快满了,可以去删除大容量的文件df -i
inode存储文件属性的
当你机器上有大量的无用的小文件,空文件,白白消耗inode数量查看磁盘分区inode空间的使用情况,如果可用的不多的,删除大量的4kb小文件即可,因为它们真用了太多的无效inode编号,应该留给别人用。明明 df -h看到磁盘还是有空间,但是写入数据,系统提示你
no space for disk,你虽然还有block空间可以存数据
但是你的inode数量肯定是没了touch 创建新文件,想分配inode编号,发现不够用了