文件系统详解以及修复

虚拟磁盘分为: 
kvm  :  vda(虚拟化磁盘)    openstack底层虚拟化是kvm   现在的红帽底层也是用的kvm(因为被红帽收购了)
xen   :  xvda       cloustack(被openstack淘汰了)底层虚拟化是xen      已经被kvm淘汰

块设备
IDE设备  :  /dev/hda,/dev/hdb
SATA/SAS/USB设备   :  /dev/sda ,/dev/sdb
virtio-blk超虚拟化存储(部分虚拟机)   :  /dev/vda,/dev/vdb
NVMe设备(ssd)  :   /dev/nvme0,/dev/nvme1
逻辑卷  :  /dev/mapper/*


分区: 将硬盘的整体存储空间划分成多个独立的区域
格式化文件系统 : 按照要求创建出一个文件系统结构
文件系统类型: 
1、本地文件系统 : ext2,ext3,ext4(小文件用的比较多),xfs(一般大文件用)  
2、网络文件系统 : NFS,CIFS 
3、集群文件系统 : GFS,GFS2
4、分布式文件系统 : CEPH
5、光盘  : iso9660

日志文件系统   :     先做,就是先把要做的事情记录在日志中,如果断电,导致进行的操作中断,重启后日志会自动检测事情的完成进度,会继续完成,目的是防止数据丢失


inode(相当于文件的编号或者叫身份证件号,用ll  -i)  :   在同一个文件系统中,如果是两个文件是相同inode,则它们为同一个文件

目录作用  :  用于存放文件和inode的关系


注意   :   每个文件系统都有自己的inode,不能跨文件系统


磁盘格式化后会分成两个区域,一个是数据区,用来存放数据的,一个是inode区(inode table ),用来存放文件元信息的区域,可通过inode编号,查询inode table可知道对应文件的元数据信息


元数据   :  大小,时间戳,权限.....(描述文件特征的系统数据,也可称为档案),元数据被删除了, 数据就会被损坏,恢复元数据,数据才能恢复(数据恢复的本质),一个元数据(metadata)占256字节
数据   :  文件的内容(data),数据要是被删除了,元数据也会被删除

dh  -h  :  查看block可用的大小
dh  -i  :  查看inode可用的空间
lsblk   :  查看block块(默认占4k)

给磁盘分区完之后需要先格式化,再挂载
mkfs.ext4    /dev/nvme0n2p1


tune2fs  -l    /dev/nvme0n2p1   查看文件系统的元数据,其中uuid是文件系统的唯一标识符,Reserved block count(保留块大小,给root使用)
dumpe2fs  /dev/nvme0n2p1  查看文件系统的元数据,包含组的信息(里面包含superblock的位置),文件系统的元数据存放在superblock里面,文件系统读写都需要汇总给超级块,第一个是主要的superblock,其他都是备份superblock
fsck(ext4文件系统用fsck) -v /dev/nvme0n2p1  修复文件系统,当fsck无法修复时需要用e2fsck
e2fsck -b(指定superblock的位置) 819200 /dev/nvme0n2p1  指定备份的superblock恢复,如果fsck无法修复元数据,用e2fsck修复时,不记得superblock的位置,可以挂载一个相同大小的分区,用dumpe2fs查看superblock的位置,因为superblock的位置都是指定好的,正常生产环境下,不会所有的superblock都损坏,试每一个superblock的位置可以尝试修复
想要指定损坏superblock可以用dd  if=/dev/zero  of=/dev/分区(切记,不是磁盘)  bs=4k   count=1 ,注意dd太大会不好修复,superblock损坏太多可以修复到正常环境,但是里面的数据会丢失,损坏后需要先用umount  /dev/nvme0n2p1卸载分区,再进行修复,修复完之后需要重新挂载,能挂在上就基本上能使用了

xfs_repair(xfs文件系统用xfs)


在inode table中还有一个重要的叫指针,在linux中系统查找文件过程是,先在inode table中找到inode,然后inode指向指针,指针再指向block块(data表)
文件名---------->inode  :  目录中的记录
删除文件时会收回inode, 当有硬链接时,需要删除到文件的硬链接为0才会收回inode,否则有几个inode都会占用inode

17460844 drwxr-xr-x. 2 root root      6 Aug 31 22:08  Documents
其中的2为硬链接的数量,为0时才会收回inode


cp和inode的关系
1、分配一个新的inode,并添加到inode表中,包括快捷方式也会占用一个inode
2、在目标目录下分配新的inode和文件名的对应关系

mv
同一个文件系统内 :  原目录下的对应关系删除,在目标目录下创建新的对应关系,元数据和数据没有发生变化

不同文件系统(就是分区)之间移动  :  cp + rm(先把文件复制到不同文件系统下,把源文件删除,不是原来的文件了,元数据发生改变) 


rm和inode关系
1.每执行一次rm,链接数减去1
2.当链接数为非0时,元数据不变,数据也不变;仅仅是删除目录下文件名和inode的对应关系
3.当链接数位0时,inode回收,元数据删除,数据没有被移除,但是block标记为可用


硬链接:
多个文件名指向同一个inode
rm会减少文件的链接数,知道文件的链接数变为0,文件才会被移除
不能跨文件系统
ln   源文件  目标链接文件

软链接
一个文件指向另一个文件,是两个不同的文件,软连接不能跨文件系统
ln   -s    pass源文件     /root/haha/caonima目标链接文件  :   创建软链接(注意是文件到文件),若源文件不存在,也会成功,但是会一直闪,说明没有源文件,且链接文件权限都是777
17459360 lrwxrwxrwx. 1 root root 4 Nov 26 21:30 caonima -> pass 把caonima文件链接到pass,pass经过系统会改变,只需要找到caonima就可以
其中4为软链接的字符串长度


查看文件系统使用情况
baobab图形工具查看文件系统使用情况
df查看已挂载的文件系统使用情况
-h:查看文件系统的使用情况,单位换算为M和G等,单位默认是k
-i:查看inode使用情况
-T:查看文件系统类型
du查看目录的大小
-h:查看文件系统的使用情况,单位换算为M和G等,单位默认是k
-s:查看目录汇总的大小

压缩:
gzip/gunzip  
bzip2/bunzip2
xz/unxz

打包:
    tar 管理打包文件
        -c: 创建打包
        -v:查看过程
        -x:抽取文件
        -f:指定打包后的文件名
        -C:指定抽取文件到哪个目录
        -t:列出打包文件里面的文件名

        -z: gzip
        -j:bzip2
        -J: xz
 

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

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

相关文章

File chooser dialog can only be shown with a user activation.

使用vue开发时,通过ref通过“this.refs.[name].$el.click()”触发按钮时提示“File chooser dialog can only be shown with a user activation.”,按钮不能触发,网上解决办法是“dispatchEvent(new MouseEvent(click))”代替“$el.click()”…

[NAND Flash 6.1] 怎么看时序图 | 从时序理解嵌入式 NAND Read 源码实现

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 前言 每次看到NAND 说明书都脑袋大, 时序图看了脑壳就疼。时序图怎么看呢? 本文就和大家一起学习下。 前置知识基础 在读本文之前,你需要至少了解 你手上…

【STM32F103】继电器的用法

前言 因为最近用到了继电器&#xff0c;所以稍微记录一下继电器的用法。 如果我们需要点亮一个LED灯的时候&#xff0c;我们只需要用单片机的GPIO口去输出高低电平驱动就行。 但是我们需要通过单片机去控制大电压器件的开关的时候&#xff0c;我们就不能简简单单地用一个GPI…

linux Tcp总结

Tcp连接建立时的影响因素 在Client发出SYN后&#xff0c;如果过了1秒 &#xff0c;还没有收到Server的响应&#xff0c;那么就会进行第一次重传&#xff1b;如果经过2s的时间还没有收到Server的响应&#xff0c;就会进行第二次重传&#xff1b;一直重传tcp_syn_retries次。 对…

策略模式-实践

俗话说&#xff1a;条条大路通罗马。在很多情况下&#xff0c;实现某个目标的途径不止一条&#xff0c;例如我们在外出 旅游时可以选择多种不同的出行方式&#xff0c;如骑自行车、坐汽车、坐火车或者坐飞机&#xff0c;可根据实 际情况&#xff08;目的地、旅游预算、旅游时间…

星河璀璨:飞桨星河文心SDK与Gurdance珠联璧合让大模型更像人!

星河璀璨&#xff1a;飞桨星河文心SDK与Gurdance珠联璧合让大模型更像人&#xff01; 本项目效果惊艳&#xff0c;可以在AIStudio星河社区一键运行 只需要在cpu基础版下运行&#xff0c;妈妈再也不怕我的算力不够了&#xff01; 1、引言 2023年8月22日&#xff0c;百度董事…

3.14.1 函数对象 Page139~141

28行&#xff0c;doggie是一个类型为Dog的对象&#xff0c;而“()”是它的一个成员函数&#xff0c;doggie()实际上是doggie.operator() "operator()"既然是函数&#xff0c;那就可以有参数&#xff0c;也可以有返回值 运行结果为&#xff1a;

分布式系统中常用锁的概念及应用场景

在分布式系统中&#xff0c;存在多种锁用于实现并发控制和数据一致性。以下是一些常见的分布式锁及其概念及应用场景&#xff1a; 互斥锁&#xff08;Mutex Lock&#xff09;&#xff1a; 概念&#xff1a; 互斥锁是最基本的分布式锁&#xff0c;用于确保在同一时间只有一个节点…

新微信公众号没有留言功能, 你们怎么破?

为什么公众号没有留言功能&#xff1f;从2018年2月开始&#xff0c;新注册的微信公众号取消了留言功能&#xff0c;原因是为了规避一些营销号通过虚假留言骗取读者信任。不过大部分公众号运营者对TX此举感到失望&#xff0c;一方面大片的留言就像店前排队的顾客&#xff0c;能体…

Codeforces Round 880 (Div. 2)(VP-13,寒假加训)

VP时间 A. 计数器 比较c[i]与c[i1] 1.ac B. 数学&#xff1f; 好贪 让&#xff08;n-1&#xff09;个人都拿g/2(向上取整)-1&#xff0c;这样每个人都拿不到 或者全部人都拿g/2(向上取整)-1,省的是g/2-1,综合一下还是ans 最后一个人拿完全部 1.wa2 2.wa2 3,.wa2 …

PLC、工业设备如何远程访问?贝锐蒲公英云智慧组网实现数据互通

在工业4.0时代&#xff0c;工业数字化的核心在于数据的互联互通&#xff0c;而在整个工业数字化、智能化的过程中&#xff0c;往往面临数据采集困难、设备运行情况难以知晓、部署管理难度大、后期维护成本高等问题。 显然&#xff0c;PLC设备在整个工业数字化进程中扮演的角色…

Invalid GeoJSON data provided to function st_geomfromgeojson

场景: 在往mysql表中字段是GEOMETRY类型存数据的时候遇到了了标题的问题 SQL如下: SELECT ST_GeomFromGeoJSON({"type":"MultiPolygon", "coordinates": [[[[113.404943, 23.172859], [113.40675, 23.172847], [113.406783, 23.171849], [113.40…

freertos任务管理器,任务监控

freertos提供了类似于windows的任务管理器功能&#xff0c;具体地如下&#xff1a; 1、configUSE_TRACE_FACILITY 和 configUSE_TRACE_FACILITY使能置1 2、调用vTaskList&#xff0c;如下&#xff1a; if(idleTaskCounter%84){char printlist[2048];vTaskList(printlist);Prin…

ssm基于Java的药店药品信息管理系统的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;药品信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

11-适配器模式(Adapter)

意图 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 适配器模式属于结构模式。 类适配器模式&#xff08;通过继承的方式实现适配器模式&#xff09; Adapter类&#xff0c;通过继承src类&#xff0…

C语言数据结构(0)——前言

欢迎来到博主的新专栏——C语言与数据结构 博主id&#xff1a;代码小豪 文章目录 为什么学数据结构&#xff1f;关于语言和数据结构让不同的语言使用者能够理解文章的内容观看这个专栏时&#xff0c;需要掌握C语言中的哪些知识 为什么学数据结构&#xff1f; 在前两个专栏当中…

【vue基础语法详细介绍】

vue基础语法详细介绍 1. 基础语法1.1 声明式渲染1.2 条件与循环1.3 事件处理1.4 双向数据绑定1.5 组件化 2. 模板语法2.1 插值2.1.1 文本2.1.2 html2.1.3 属性2.1.4 表达式 2.2 指令2.2.1 核心指令2.2.1.1 v-if |v-else-if|v-else2.2.1.2 v-show2.2.1.3 v-for2.2.1.4 v-on|v-mo…

vulnhub靶场之DC-8

一.环境搭建 1.靶场描述 DC-8 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing. This challenge is a bit of a hybrid between being an actual challenge, and being a "proof of concept&quo…

【技术选型】Doris vs starRocks

比对结论 仅从当前能看到的数据中&#xff0c;相比于doris&#xff0c;starRocks在性能方面具备优势&#xff0c;且更新频率高&#xff08;降低维护成本&#xff09;。 目标诉求 并发性不能太低——相比于clickhouse不到100的QPS支持大表关联——降低数据清洗的压力&#xf…

家用洗地机哪个品牌质量比较好?高配置洗地机推荐

近年来&#xff0c;科技飞速发展&#xff0c;推动了多个新兴行业的崛起&#xff0c;其中洗地机行业也在不断扩大。然而&#xff0c;随着市场的蓬勃发展&#xff0c;洗地机市场的产品质量参差不齐。在众多品牌中&#xff0c;真正致力于深入研究和创新的品牌相对较少。洗地机的问…