day25 文件的磁盘的管理2

news/2025/3/11 16:43:57/文章来源:https://www.cnblogs.com/yangzaikai/p/18765468

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编号,发现不够用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/897322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习时序数据处理的综述笔记

Deep Learning for Sensor-based Human Activity Recognition Deep Learning for Sensor-based Human Activity Recognition: Overview, Challenges, and Opportunities: ACM Computing Surveys: Vol 54, No 4 进入WHAR后一直苦于找不带一个明确的问题。经帅气师兄推荐看一下这…

多合一控制器IPU

经纬恒润高压多合一控制器将新能源汽车中多个动力系统相关模块进行整合,如:整车控制器VCU、电池管理系统BMS等。这种集成化设计旨在减少整车控制器数量,减轻重量,降低成本,提高可靠性及空间利用率。 经纬恒润高压多合一控制器将新能源汽车中多个动力系统相关模块进行…

【第一篇】如何优雅使用多功能调试器上的EEPROM

EEPROMEEPROM是一种带电可擦的可编程只读存储器,相较于FLASH来说,EEPROM的寿命更长,写入数据之前不需要先进行擦写操作。目前市面上常见的eeprom的型号多为at24cxx,其中有02,04,08,16,32等等。在多功能调试器上加入EEPROM的目的:主要是起一个学习作用,因为在多功能调…

linux 中 awk命令利用数组对指定列去重复

001、实例如下:(base) [b20223040323@admin2 test]$ ls a.txt (base) [b20223040323@admin2 test]$ cat a.txt ## 测试数据, 第一列又两类重复 aa 11 bb 89 aa 77 kk 66 aa 88 kk 99 (base) [b20223040323@admin2 test]$ awk …

No.54 ES6---class类

一、class的基本语法ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。 通过 cass 关键字,可以定义类。 基本上,ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向…

Bat脚本启动本地Kafka

一:功能介绍本地启动Kafka,当需要测试多个Kafka Broker时使用脚本启动多个实例二:使用介绍编写 bat 文件,将下述代码填入保存,注意路径配置@echo off @REM 声明 UTF-8 编码,避免乱码问题 chcp 65001 setlocal enabledelayedexpansion @REM 代表脚本启动的当前路径,如上…

Pwnable_orw

题源题解 保护只开启了栈保护 分析 进入ida分析 main函数如下seccomp (Secure Computing Mode)是一种 Linux 内核安全机制,它可以 限制进程可执行的系统调用(syscall),用于减少攻击面,提高程序安全性。使用seccomp-tools查看允许调用的函数,即orw(open,read,write) sec…

日期类、Date、Calendar、IO 流、File

DAY9.2 Java核心基础 日期类 java对日期使用提供了良好的封装,包括java.util.Date和java.util.Calender Date Date类使用比较简单,直接通过构造函数实例化对象接口,Date对象标识当前的系统时间,默认的格式并不是我们所熟悉的,一般我们需要对他进行格式化处理,将日常的展现…

深入String、StringBuffer、String 实例化有两种方式、String、StringBuffer常用方法

DAY9.1 Java核心基础 String String 开发使用的频率高 String 实例化有两种方式1、直接赋值 String str1 ="Word";2、通过构造函数创建对象 String str2 =new String("Word");字符串对象底层的基本数据类型是char 比如Word,是char[] str ={W,o,r,d}; 两种…

File类、字节字符流、InputStream和FileReader、OutputStream和FileWriter区别

DAY10.1 Java核心基础 File类 使用该类的构造函数可以创建一个对文件对象表示一个物理资源 File类常用方法方法 描述public File(String pathname) 根据路径创建对象public String getName() 获取文件名public String getParent() 获取文件所在的目录public File getParentFile…

FreeBSD 13.5 正式版发布 - 高性能开源 Unix 系统

FreeBSD 13.5 正式版发布 - 高性能开源 Unix 系统FreeBSD 13.5 正式版发布 - 高性能开源 Unix 系统 The Power To Serve 请访问原文链接:https://sysin.org/blog/freebsd-13/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgFreeBSD 13.5-RELEASE 公告 日期:202…

FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板

FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板 The Power To Serve 请访问原文链接:https://sysin.org/blog/freebsd-13-ovf/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org2025 年 3 月 11 日,F…