day25 文件的磁盘的管理2

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-root
       xfs                        cc212631-4730-46e9-ad82-b7f6d6d45f08   /
  └─centos-swap
       swap                       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编号,发现不够用了

posted @ 2025-03-11 16:43  国家一级冲浪yzk  阅读(8)  评论(0)    收藏  举报